Configuration

Overview

You can configure various aspects of how your node operates, focusing on these topics:

  • Node Management Configure what address, port, and route the node uses for the Node Management API. Alternatively, you can use opt to disable this API altogether.

  • Security Inspection Signature Configure what address, port, route, and private key the node uses when inspecting and signing transactions.

  • Threat Modeling Detectors Venn's threat modeling works by leveraging Detectors. Use this configuration section to what detectors your node uses when inspecting incoming transactions.

  • Blockchain Nodes Your node can interact and protect transactions for any EVM-like blockchain. Use this configuration section to setup the Web3 providers and chains your node interacts with.

  • Protocol Registration This configuration section tells the node what protocols are whitelisted for Venn's protection through your node. Only whitelisted protocols can use your node for transaction inspection.

  • Network & Peer Management Use this section to configure your operator's display name on the network, as well as what hostname, port, and route it exposes for peer-to-peer communication on the Network. This is also where you configure what peers your node is connected to.

During Venn Testnet phases, protocol registration and peer discovery is handled manually, in a permissioned model.

Once Venn goes live no mainnet, both protocol registration and peer discovery will be done on-chain through dedicated registration contracts.

Node Management

# Node Management - The configuration for the Operator's Management API
# Mandatory: no
management:
  
  # disabled - Whether the Operator Management API is disabled
  # Default: false
  # Mandatory: no
  disabled: false
  
  # host - The host of the Operator Management API
  # Default: 0.0.0.0 - listen on all interfaces
  # Mandatory: no
  host: 0.0.0.0
  
  # port - The port of the Operator Management API
  # Default: 30000
  # Mandatory: no
  port: 30000
  
  # path - The path of the Operator Management API
  # Default: none
  # Mandatory: no
  path:
  

Security Inspection Signature

# Security Inspection Signature - The configuration for the Operator Signer
# Mandatory: yes
signer:

  # host - The host of the Operator Signer API
  # Default: 0.0.0.0 - listen on all interfaces
  # Mandatory: no
  host: 0.0.0.0
  
  # port - The port of the Operator Signer API
  # Default: 10000
  # Mandatory: no
  port: 10000
  
  # path - The path of the Operator Signer API
  # Default: /signer
  # Mandatory: no
  path: /signer
  
  # signerPrivateKey - The private key of the external signer
  # Default: none
  # Mandatory: yes
  signerPrivateKey: "PRIVATE_KEY"

Threat Modeling Detectors

# Threat Modeling Detectors - The configuration for the Operator external Detectors configuration
# Default: none
# Mandatory: yes
detectors:

  # detectionThreshold - minimum threshold for detection
  # Default: 0
  # Mandatory: yes
  detectionThreshold: 0.5

  # detectors - The detectors to use for the signer
  # Mandatory: yes
  detectors:
  
      # name - The name of the detector
      # Default: none
      # Mandatory: yes
    - name: processor
    
      # endpoint - The endpoint of the detector
      # Default: none
      # Mandatory: yes
      endpoint: http://detectors.testnet.venn.build:40000/api/external-detector
    
      # weight - The weight of the detector when calculating the detection score must be greater than 0
      # Default: none
      # Mandatory: yes
      weight: 0.9

      # timeoutSeconds - The timeout in seconds for the detector
      # Default: 30 seconds
      # Mandatory: no
      timeoutSeconds: 30

Blockchain Nodes

# Blockchain Nodes - The nodes to connect to for the signer retrieval of transaction simulation
# Default: none
# Mandatory: yes
nodes:
  
  # chainId - The chainId of the network
  # Default: none
  # Mandatory: yes
  - chainId: 1
    
    # nodes - A List of nodes to connect to for the particular chainId. at least one node is required for each chainId
    # Default: none
    # Mandatory: yes
    nodes:
        
        # wsUrl - The websocket url of the node
        # Default: none
        # Mandatory: yes
      - wsUrl: "WSS_URL"
        
        # jsonUrl - The json rpc url of the node
        # Default: none
        # Mandatory: yes
        jsonUrl: "JSON_URL"
        
        # type: The type of the node
        # Default: ethereum
        # Mandatory: no
        type: ethereum

Network & Peer Management

# Network & Peer Management - The configuration for the Venn Operator and its peers
# Default: none
# Mandatory: yes
venn:
  
  # name - The name of the Operator - can be any string
  # Default: hostname
  # Mandatory: no
  name: operator-1
    
  # operatorId - The id of the Operator (the name that broadcast to other peers) - can be any string
  # Default: hostname
  # Mandatory: no
  operatorId: "operator-1"
  
  # host - The host of the Operator Blockbeat listening on
  # Default: 0.0.0.0 - listen on all interfaces
  # Mandatory: no
  host: 0.0.0.0
  
  # port - The port of the Operator Blockbeat listening on
  # Default: 20000
  # Mandatory: no
  port: 20000
  
  # peers - The peers of the Operator
  # Default: none
  # Mandatory: no
  peers:
      # name - The name of the peer
      # Default: none
      # Mandatory: yes
    - name: eu-testnet-venn-build
  
      # endpoint - The endpoint of the peer
      # Default: none
      # Mandatory: yes
      endpoint: http://europe.testnet.venn.build:20000
  
      # timeoutSeconds - The timeout in seconds for the peer to respond
      # Default: 60 seconds
      # Mandatory: no
      timeoutSeconds: 60

      # checkIntervalSeconds - The interval in seconds to check the peer health
      # Default: 60 seconds
      # Mandatory: no
      checkIntervalSeconds: 60

Protocol Registration

# Protocol Registration - The protocols the Operator is protecting
# Default: none
# Mandatory: yes
protocols:
  # chainId - The chainId of the network that the protocol is on
  # Default: none
  # Mandatory: yes
  - chainId: 1
    
    # protocols - A List of protocols to protect on the particular chainId. at least one protocol is required for each chainId
    protocols:
      
      # name - The name of the protocol
      # Default: none
      # Mandatory: yes
      - name: Protocol1
        
        # addresses - A list of addresses related to the protocol
        # Default: none
        # Mandatory: yes
        addresses:
          - "0x<some_address_1>"
          - "0x<some_address_2>"

Last updated