Installation
Requirements
Hardware
Recommended 4 CPUs (minimum 2)
Recommended 16GB Memory (minimum 8)
Translated to EigenLayer Node Classes, we recommend using a General Purpose XL node class
Software
Docker
Blockchain Web RPC Provider (i.e. Quicknode or your own custom endpoint)
Private Keys
A private key representing your operator node
Network Ports
Port
10000
is used for the inspection interfacePort
20000
is used for P2P communicationPort
30000
is used for the Management API
Depending on host provider and network setup, you may choose to remap external points to these internal ones.
For example, if your server's external IP is 1.2.3.4
, you can choose to map port 80
on that external IP to port 10000
of your server's internal IP.
Quick Setup
Venn's node client software is called BlockBeat.
Written in GoLang, and released as a Docker image, BlockBeat provides unparalleled performance internally, while keeping Operator Experience in mind for easy setup and maintenance.
Simply copy and paste the following command in your terminal:
This script will:
Create a new folder named
my-venn-operator
Create a
Makefile
with helper commands to start, stop, update, and test your nodeCreate a
config.yaml
file in that folder with recommended defaults to get startedCreate a
protocols.yaml
file in that folder, with whitelisted protocols your node will be allowed to inspectCreate a
test-tx.json
file in that folder, which is used for locally validating your node's basic setup
During Venn's testnet phase, only these whitelisted protocols will be inspected. See Testnet Guide for more info.
After running this script, you should see the following output:
Make sure to update config.yaml
with your Private Key
and Web3 Provider
URLs
First Run
After adding your Private Key
and Web3 Provider
URLs to config.yaml
, run the following command to start the node:
Running this command will start the BlockBeat docker image in foreground, streaming all logs to the terminal, as well as capturing the logs in the operator.log
file.
This mode is intended for testing purposes only.
Running this mode in a production environment may result in operator.log
growing beyond the system's available size, causing various issues.
For production environments, make sure to run BlockBeat in the background.
Testing
Now that you have a node running, let's test it by sending it a test transaction to inspect. Run the following command in a new terminal window:
This will trigger a test transaction to your local node, and you should see output similar to the following:
Success!
Our test transaction is approved by Venn, and our node setup verification is complete.
What's in the box?
config.yaml
A basic node operator configuration file.
name
- can be anything you like, and will be used for identifying your node on the network, along with a unique-id that is auto-generated for you by BlockBeatsignerPrivateKey
- this is the key that represents your node on the Venn Network, which signs inspections results for transactions processed by your nodenodes
- the chains, blockchain nodes, and their respective Web3 Provider URLs. Multiple nodes can be configured per chain for redundancy, ensuring high-availability for your Venn node.detectors
- these are the threat modeling mechanisms that the node uses to scan and analyze incoming transactions. During the current testnet phase, we recommend using Venn's external detector.protocolsFile
- this is used during our current testnet phase to indicate which assets are protected by the node. Once Venn goes live on mainnet, this field will be deprecated in favor of an on-chain protocol-registration mechanism
See Configuration for more info
Makefile
Used as a helper file to start, stop, test, and update BlockBeat.
Using a Makefile is optional. Feel free to use any other method that is best suited for you and your team for running these shell commands
test-tx.json
A simple test transaction you can use to make sure everything is up and running.
This transaction interacts with protocols that were whitelisted for Venn testnet phase. Once Venn goes live, and protocol whitelisting will be deprecated, you will be able to test your setup with any transaction data.
Running In Production
To run BlockBeat in production, run the following command:
This runs the BlockBeat Docker image in the background, without streaming the output logs, and without writing logs to the operator.log
file.
See Monitoring for more information
Last updated