Overview

This guide will walk you through the process of setting up and running a Chainbase AVS (Actively Validated Service) operator node.

Requirements

Recommended Hardware Specifications

ClassvCPUs (10th gen+)MemoryNetworking Capacity
General Purpose - large28 GB5 Mbps
General Purpose - xl416 GB25 Mbps
General Purpose - 4xl1664 GB5 Gbps

Before you begin, ensure you have the following prerequisites installed:

Docker: Docker is a requirement for AVS operator node.

Docker Compose: Docker Compose is used alongside Docker for executing operator node.

Linux Environment: Eigenlayer’s CLI only runs in a Linux environment.

Go: Two out of three installation routes require the use of Go. It’s safer to go with Go than go without. 😉

Installation Process

Migration From Previous Version

If you’ve previously run a Chainbase AVS operator node:

  1. You can delete old version chainbase-avs-setup directory on your server, but need to back up your encrypted ECDSA and BLS keys.
  2. Skip the EigenLayer Registration step and only start from Chainbase AVS Setup step.

EigenLayer Registration

Ensure you’ve registered with EigenLayer before proceeding. For guidance, refer to the EigenLayer Operator Installation Guide.

Chainbase AVS Setup

  1. Clone the Chainbase AVS setup repository:
git clone https://github.com/chainbase-labs/chainbase-avs-setup

run a Chainbase AVS operator node on mainnet (invited and whitelisted):

cd chainbase-avs-setup/mainnet

OR run a Chainbase AVS operator node on testnet (no restrictions):

cd chainbase-avs-setup/holesky
  1. Set up the environment file:
cp .env.example .env

Configure all fields in the .env file with your specific information:

NODE_ECDSA_KEY_FILE_PATH=/your/ecdsa/key/path
NODE_BLS_KEY_FILE_PATH=/your/bls/key/path
OPERATOR_ECDSA_KEY_PASSWORD=yourECDSAKeyPassword
OPERATOR_BLS_KEY_PASSWORD=yourBlsKeyPassword
OPERATOR_ADDRESS=yourECDSAKeyAddress
NODE_SOCKET=yourNodeSocket
OPERATOR_NAME=yourOperatorName

Use the command eigenlayer operator keys list to retrieve information about your ECDSA and BLS key paths and operator address.

  • OPERATOR_ADDRESS: Set to your operator address (must match your ECDSA key address).
  • NODE_SOCKET: Set to your server’s public IP address (format: <your_server_public_ip>:8011).

Important:

  • Ensure your server’s public IP is internet-accessible.
  • Verify that port 8011 is open and properly configured in your firewall settings.
  1. Set execution permissions for the script:
chmod +x ./chainbase-avs.sh

Operating the Chainbase AVS

Register as an Operator

Run the following command to register as an operator:

./chainbase-avs.sh register

Run Node

Run the following command to startup node:

./chainbase-avs.sh run

Test Node

Run the following command to test node:

./chainbase-avs.sh test

If you see the output All systems are working for your manuscript node in the command line output, it indicates that your node is running correctly.

Update Node socket

If your server’s public IP address is changed after you register as an operator, you need to update the node socket. Configure NODE_SOCKET in .env file, then run the following command:

./chainbase-avs.sh socket

Update Node version

Run the following command to update node version:

./chainbase-avs.sh stop
./chainbase-avs.sh update
./chainbase-avs.sh run

Monitor Logs

View container logs using any of these commands:

docker compose logs -f
docker compose logs -f <container_name>
docker logs -f <container_id>

Dashboard

You can visit <your_server_public_ip>:3010 on browser to view the dashboard to confirm the status of your node.If you are unable to access the page in your browser, please verify that port 3010 on your server is open and properly configured in firewall settings.

Troubleshooting

If you encounter any issues during setup or operation, please contact our support team on Discord.

Additional Resources