EigenLayer Guides
Currently only the Ethereum holesky test network and AO are supported, and the Ethereum main network and other networks will be gradually supported in the future.
Software/Hardware Requirements:
vCPUs: 2+
Memory: 4GiB+
Storage: 100GiB+
Installation:
Follow the official documentation to install Docker Engine.
Pull the latest BAVO image:
bashCopy codedocker pull bavo-labs/bavo-network:latest
Clone the worker setup repository:
bashCopy codegit clone https://github.com/bavo-labs/bavo-worker-setup.git cd bavo-worker-setup/bavo-node
Register on EigenLayer:
If you're already registered on the EigenLayer testnet/mainnet, you can skip this step.
This step involves generating ECDSA and BLS keys and registering as an operator.
Steps:
Install EigenLayer CLI.
Generate or import your ECDSA and BLS keypair.
Fund the ECDSA address with ETH to cover gas costs for registration and tasks.
Register as an operator on EigenLayer.
Basic Configurations:
For Ethereum Testnet (Holesky), copy the configuration file:
bashCopy codecp ./config-files/.env.holesky ./.env
Edit
.env
with your own settings.For Mainnet, copy
.env.mainnet
instead of.env.holesky
.
Node Info:
Set a name and description for your node:
bashCopy codeNODE_NAME="Your Node Name" NODE_DESCRIPTION="Your Node Description"
ECDSA and BLS Keys:
Specify the paths and passwords for your ECDSA and BLS keys:
bashCopy codeECDSA_KEY_FILE=/path/to/keyname.ecdsa.key.json ECDSA_KEY_PASSWORD='' BLS_KEY_FILE=/path/to/keyname.bls.key.json BLS_KEY_PASSWORD=''
LHE Key:
Generate the LHE key used for data sharing:
bashCopy codebash ./run.sh generate-lhe-key [--key-name <NAME>]
The default output is
./keys/default.lhe.key.json
. Specify the key path in the configuration:bashCopy codeLHE_KEY_PATH='/path/to/your/lhe.key.json'
Storage:
Data is stored on Arweave by default, but to avoid potential issues, Arseeding is recommended.
Transfer ETH to everPay using:
bashCopy codeexport WALLET_PATH=/path/to/your/ethereum/wallet.json bash ./utils.sh everpay:deposit --chain ethereum --symbol ETH --amount 0.00001
Check your everPay balance:
bashCopy codebash ./utils.sh everpay:balance --account <ACCOUNT_ADDRESS> [--symbol <SYMBOL>]
Register to BAVO AVS:
If you're an EigenLayer operator, you can register to the AVS of BAVO. Ensure your wallet is whitelisted by contacting BAVO Labs.
Set the relevant parameters (default values provided):
bashCopy codeOPERATOR_SIGNATURE_EXPIRY_SECONDS=3600 OPERATOR_SOCKET_IP_PORT=""
Register your operator to AVS:
bashCopy codebash ./run.sh el:register [--quorum-id-list <ID>]
Metrics (Optional):
Enable metrics by setting
NODE_ENABLE_METRICS=true
and defining a port usingNODE_METRICS_PORT
(default: 9094).
Run Task:
Start the task program:
bashCopy codebash ./run.sh task [<name>]
This will launch a container named
bavo-network[-name]
in the background. Logs will be stored in./logs/*.log
.To manage the container, use:
bashCopy codedocker stop/start/restart/rm bavo-network[-name]
Monitoring (Optional):
Switch to the
bavo-worker-setup/monitoring
folder.Configure
prometheus.yml
with the container and port details:yamlCopy code- job_name: "bavo-node" scrape_interval: 5s static_configs: - targets: ["bavo-network:9094"]
Add New Workers (Optional):
If you want to handle tasks on both Ethereum and AO simultaneously, configure additional workers.
Steps:
Switch to the
bavo-worker-setup/bavo-node
folder.Append values from
./config-files/.env.ao
to.env
and set yourAR_WALLET_PATH
.Register to the BAVO AO Process and re-run the task.
Utilities:
Worker Withdraw: To withdraw tokens earned from completing tasks:
bashCopy codebash ./run.sh worker:balance bash ./run.sh worker:withdraw [--amount <AMOUNT>]
Last updated