Installation

Chainbase Set Up AVS Operator Tutorial

Hardware Requirements

Class
vCPUs (10th gen+)
Memory
Networking Capacity

General Purpose - large

2

8 GB

5 Mbps

General Purpose - xl

4

16 GB

25 Mbps

General Purpose - 4xl

16

64 GB

5 Gbps

1. Install Software Requirements

Docker

sudo apt-get update && \sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common gnupg && \curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && \echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null && \sudo apt-get update && \sudo apt-get install -y docker-ce docker-ce-cli containerd.io

GO

wget https://go.dev/dl/go1.22.6.linux-amd64.tar.gz && \sudo rm -rf /usr/local/go && \sudo tar -C /usr/local -xzf go1.22.6.linux-amd64.tar.gz && \echo "export PATH=\$PATH:/usr/local/go/bin" >> ~/.profile && \source ~/.profile && \go version

2. Install CLI Using GO

go install github.com/Layr-Labs/eigenlayer-cli/cmd/eigenlayer@latest
export PATH=$HOME/go/bin:$PATHecho 'export PATH=$HOME/go/bin:$PATH' >> ~/.profilesource ~/.profile
eigenlayer --version

3. Create New Operator Wallet

echo "password" | eigenlayer operator keys create --key-type ecdsa keyname
  • Password . Must be combination of uppercase, lowercase, numbers and symbols

  • Keyname Change with your own

  • Copy Private Key

  • Press q

  • Copy your Ethereum Address

4. Check Wallet

eigenlayer operator keys list

5. Claim Faucet

6. Configure Your Operator

eigenlayer operator config create

  • Enter your Operator Address

  • Earning Address , Just press Enter

  • RPC ETH Holesky, you can find at : https://chainlist.org/chain/17000 or use your own RPC.

  • Select Network Holesky

  • Select Local Keystore

  • Look for your ECDSA Key file path

  • Mine is in : /root/.eigenlayer/operator_keys/stakenode.ecdsa.key.json

  • Copy and Paste the directory link above.

7. Look for Metadata.json file

  • nano metadata.json

  • Edit and fill up with your Data, like Name, Website, Description, Twitter

  • You can upload your logo to your Github Repository.

  • Copy its Raw link.

  • Done and Save ctrl x y enter

8. RPC URL Configuration

curl -I Change-with-URL-RPC

9. Create Metadata URL

  • Upload content of your Metadata.json to GitHub and copy its RAW link.

  • Input in operator.yaml at metadata_url section and Save

  • Done

10. Update operator.yaml

eigenlayer operator update operator.yaml
  • Insert your Password

  • If you got "Operator Not Register"

  • You need to register first by using the following command :

eigenlayer operator register operator.yaml
  • Insert your Password

  • Done

11. Install Chainbase-AVS-CLI

wget https://github.com/chainbase-labs/chainbase-avs-contracts/releases/download/v0.1.9-ci-test/chainbase-node_Linux_x86_64.tar.gz && \tar -xzf chainbase-node_Linux_x86_64.tar.gz && \sudo mv chainbase-node /usr/local/bin/ && \sudo chmod +x /usr/local/bin/chainbase-node && \rm chainbase-node_Linux_x86_64.tar.gz

12. Chainbase AVS Contract Registration

git clone https://github.com/chainbase-labs/chainbase-avs-setup && cd chainbase-avs-setup/holesky mv .env.example .env

Edit nano .env

# Chainbase AVS Image
MAIN_SERVICE_IMAGE=repository.chainbase.com/network/chainbase-node:testnet-v0.1.7
FLINK_TASKMANAGER_IMAGE=flink:latest
FLINK_JOBMANAGER_IMAGE=flink:latest
PROMETHEUS_IMAGE=prom/prometheus:latest

MAIN_SERVICE_NAME=chainbase-node
FLINK_TASKMANAGER_NAME=flink-taskmanager
FLINK_JOBMANAGER_NAME=flink-jobmanager
PROMETHEUS_NAME=prometheus

# FLINK CONFIG
FLINK_CONNECT_ADDRESS=flink-jobmanager
FLINK_JOBMANAGER_PORT=8081
NODE_PROMETHEUS_PORT=9091
PROMETHEUS_CONFIG_PATH=./prometheus.yml

# Chainbase AVS mounted locations
NODE_APP_PORT=8080
NODE_ECDSA_KEY_FILE=/app/operator_keys/ecdsa_key.json
NODE_LOG_DIR=/app/logs

# Node logs configs
NODE_LOG_LEVEL=debug
NODE_LOG_FORMAT=text

# Metrics specific configs
NODE_ENABLE_METRICS=true
NODE_METRICS_PORT=9092

# holesky smart contracts
AVS_CONTRACT_ADDRESS=0x5E78eFF26480A75E06cCdABe88Eb522D4D8e1C9d
AVS_DIR_CONTRACT_ADDRESS=0x055733000064333CaDDbC92763c58BF0192fFeBf

###############################################################################
####### TODO: Operators please update below values for your node ##############
###############################################################################
# TODO: Operators need to point this to a working chain rpc
NODE_CHAIN_RPC=https://rpc.ankr.com/eth_holesky
NODE_CHAIN_ID=17000

# TODO: Operators need to update this to their own paths
USER_HOME=/root
EIGENLAYER_HOME=${USER_HOME}/.eigenlayer
CHAINBASE_AVS_HOME=${USER_HOME}/chainbase-avs-setup/holesky

NODE_LOG_PATH_HOST=${CHAINBASE_AVS_HOME}/logs

# Correct path to the ECDSA key file
NODE_ECDSA_KEY_FILE_HOST=${EIGENLAYER_HOME}/operator_keys/CHANGETOYOURS.ecdsa.key.json

# Key decryption password
NODE_ECDSA_KEY_PASSWORD=CHANGE-TO-YOUR-PASSWORD

1. Make sure the folder is there and you have permission to run docker.

cd chainbase-avs-setup/holeskysource .env && mkdir -pv ${EIGENLAYER_HOME} ${CHAINBASE_AVS_HOME} ${NODE_LOG_PATH_HOST}

2. Confirm the latest image version of avs chainbase and edit on env file

MAIN_SERVICE_IMAGE=repository.chainbase.com/network/chainbase-node:v0.1.9-ci-test

3. Change the access permissions of chainbase-avs.sh

chmod +x ./chainbase-avs.sh

4. Change YOUR_OPERATOR_NAME with your Operator name

nano premetheus.yml

13. Register Chainbase AVS

./chainbase-avs.sh register

14. Run Chainbase AVS

./chainbase-avs.sh run

15. Check Chainbase AVS Logs

docker compose logs chainbase-node -f

Check Node Health

curl -i localhost:8080/eigen/node/health

Get Operator Link

eigenlayer operator status operator.yam

Last updated