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.

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

Was this helpful?