EigenLayer Operator 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 Requirement
vCPUs: 2+
Memory: 4GiB+
Storage: 100GiB+
Install
Please reference to official documentation: Install Docker Engine.
Next, pull the image:
Clone bavo-labs/bavo-worker-setup:
Register as Operator on EigenLayer
NOTE: You may skip this section if you are already a registered operator on the EigenLayer testnet and mainnet.
This setup step focuses on generating ecdsa key, bls key, and registering yourself as an operator on EigenLayer.
Complete the following steps according to EigenLayer guide:
Install EigenLayer CLI.
Generate ECDSA and BLS keypair. You can also import existing ECDSA and BLS keys.
Fund some ETH to the ECDSA address above generated. These ETH will be used to cover the gas cost for operator registration and doing task in the subsequent steps.
Register on EigenLayer as an operator.
Basic Configurations
For the Ethernet Testnet(Holesky), copy ./config-files/.env.holesky
into ./.env
. Edit the ./.env
and update the values for your own setups.
NOTE: If you plan to operate on Mainnet, then copy .env.mainnet
instead of .env.holesky
.
Node Info
Set a name to identify yourself, these will be used on the node itself and will be shown on performance metrics in the future.
ECDSA and BLS Key
Fill in the file path and password of the ECDSA and BLS key you have generated according to Register as Operator on EigenLayer.
LHE Key
The LHE key is used for data sharing, use the following command to generate it.
The default output is ./keys/default.lhe.key.json
, you can specify the key name via --key-name <NAME>
.
IMPORTANT! Don't lose this file and save it to a safe place!
Next, fill in the file path of the LHE key you have generated.
Storage
Storing data on a contract is expensive, so we are currently using Arweave as the storage blockchain which is cheaper to store data.
By default, we can use Arweave directly. However, the Arweave ecosystem itself has some issues. In order not to suffer from these issues, we using Arseeding instead.
In order to use Arseeding, we need to first transfer/deposit some ETH to everPay, which wallet corresponds to the ecdsa key previously mentioned above.
Alternatively, you can also deposit on EverPay with the following command:
Meanwhile, you can check the balance on EverPay by:
Register to BAVO AVS
If you have registered as an operator on the EigenLayer, you can register to the AVS of BAVO.
NOTE: Please contact BAVO Labs to add your wallet address to the WHITELIST before being able to successfully register!
The following parameters are relevant. All have default values, you may set them according to your actual needs.
Next, register the operator to AVS by:
NOTE: The BAVO AVS now only supports quorum ids of 0
. The default value of quorum-id-list
is 0
.
In general, you only need to perform the registry step once.
Once you have successfully registered to avs, you can get the operator id by:
Metrics (Optional)
NOTE: If you want to monitor some metrics, you should set NODE_ENABLE_METRICS
to true
to enable it.
Metrics can be enabled/disabled by setting NODE_ENABLE_METRICS
to true/false
. The default value is false
. You can also set a port by NODE_METRICS_PORT
for the metrics service, which defaults to 9094
.
Run Task
Once successfully registered, you can start the task program.
It will start a container named bavo-network[-name]
in the background. Some logs will output to ./logs/*.log
.
You can Stop/Start/Restart/Remove the container by running docker stop/start/restart/rm
bavo-network[-name]
.
Monitoring (Optional)
If you have enabled Metrics, you can start monitoring by following the steps below.
Switch folder
Switch to the bavo-worker-setup/monitoring
folder.
Configurations
Config ./prometheus.yml
:
Note:
contrainer: If the node started with a name, such as
bash ./run.sh task somename
, you should update the container to bavo-network-somename
. The default value is bavo-network
.port: set by
NODE_METRICS_PORT
. The default value is9094
.
Usage
Start
Ensure Prometheus is run in the same Docker network as BAVO Network Node. Run the following command for this purpose:
You should be able to navigate to http://host:3000
and login with admin/admin
(default).
Stop
Add New Workers (Optional)
NOTE: Add New Workers is optional. If you want to execute Ethereum and AO tasks at the same time, you can execute the following command. Otherwise, you do not need to execute the following command.
Add AO Worker
Step 1: Switch to the bavo-worker-setup/
bavo-node
folder. Reference ./config-files/.env.ao
, mainly copy and append the following options and their value to .env
:
Step 2: Set your own AR_WALLET_PATH
. Reference Arweave Wallet.
Step 3: Register to BAVO AO Process. Reference Register to BAVO AO Process.
Step 4: Remove the old container and re-run the task. Reference Run Task.
You can see the full configuration options from ./config-files/.env.holesky-and-ao
.
Utilities
Utilities are tool scripts that does not need to be executed during startup.
Worker Withdraw
As a worker, you'll get some tokens for each task you complete. Before executing the following script, switch to the bavo-worker-setup/
bavo-node
folder.
You can get the balance(free, locked) by:
and withdraw by (If no amount is specified, the entire free balance is withdrawn):
Last updated