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:latestClone 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 ./.envEdit
.envwith your own settings.For Mainnet, copy
.env.mainnetinstead 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.00001Check 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=trueand 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/monitoringfolder.Configure
prometheus.ymlwith 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-nodefolder.Append values from
./config-files/.env.aoto.envand 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