Cover image
JAN 26, 2024

How to run Eigen Layer node

by MrCrypto

Airdrop opportunity from EigenLayer

VPS Configuration

To set up your masternode, you have the choice of hosting it on your own computer or opting for a Virtual Private Server (VPS), which is ideal for hosting websites, applications, or other online services, such as nodes.
In my case, I opted for Contabo, a reputable VPS rental solution. The EigenLayer testnet node requires intermediate storage capacity.
So, I recommend you to choose the Cloud VPS M.
Now it’s your turn…
To order your Contabo VPS, you can click on this link.
It’s an affiliate link, with no additional cost to you, which allows me to support my work and provide valuable content.
The Contabo Offer
Opt for a 400 GB SSD storage capacity and select the Docker image for your configuration.
Once you have completed the payment process, you will receive an order confirmation email. Please wait to receive a second email containing information about your VPS, including your login credentials.
To connect to your VPS, I recommend following this detailed tutorial. You will need to download the Putty software, which will allow you to establish a secure connection with your VPS and access its features.

1- Restakers

The first step to interact with the Eigenlayer testnet is to restake your gETH. But to do so, you must first obtain Goerli ETH in your EVM wallet. You can connect to Eigenlayer with the wallet you will create on Eigenlayer (in this case, start with step 2 of the guide, then return to this step).
To acquire Goerli ETH, you can gradually claim them from faucets such as https://goerlifaucet.com/ or directly bridge them using LayerZero: https://testnetbridge.com/
Use the Arbitrum or Optimism network to drastically reduce costs
After receiving your gETH, you will need to swap them. You can use Tabio.finance or Uniswap DEX to swap some stETH (ETH staked with Lido)
I advise you to use Tabio, which has better liquidity than Uniswap. Go to their website, click on Swap, and swap some stETH.
If you used Uniswap, I strongly advise you not to exchange more than 2 ETH at a time. There isn’t much liquidity on this token pair. If you need more stETH, space out your exchanges every two to three minutes.
And then, visit https://goerli.eigenlayer.xyz/token to restake your stETH.

2- Operators: Register on EigenLayer

As an operator, you can now register on the EigenLayer network through the operator’s command-line interface (CLI). Operator registration does not require any authorization.
Becoming an operator in the EigenLayer ecosystem does not require a specific amount of restaked tokens. Essentially, any Ethereum address can function as an operator.

2.1- API Service

Now it’s time to create an account on an API service dedicated to the Ethereum Goerli blockchain. Since Eigenlayer is a Layer 2 network on the Ethereum Goerli blockchain, your node must be able to communicate with the Ethereum Goerli layer to ensure its proper functioning.
By following this essential step, you ensure a seamless integration between Eigenlayer and Ethereum Goerli, promoting a smooth user experience and optimal participation in the Eigenlayer network.
In your process, you will be using the Alchemy service. It’s now time to create your account.
During the setup, name and provide a description for your API service, and choose Ethereum Goerli as the Network.
Register Ethereum Goerli as the Network.
By clicking on “API Key”, you will have access to your private keys, which will play an important role in the installation of your node.

2.2- Installation of Essential Components

Before diving into the installation of your node, it is crucial to update your VPS. To do this, simply execute the following command in your VPS terminal :
sudo apt-get update && sudo apt-get upgrade -y
Copy the command and right-click in your terminal to paste it.
Now, proceed to install Docker.
Docker is a platform for running applications in “containers,” making it easy to deploy and run them on different machines without worrying about configuration differences.
Execute the following command in your terminal to install Docker :
sudo apt install docker.io
Verify the successful installation of Docker :
docker --version
And install Docker-Compose :
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Verify the correct installation of Docker-Compose :
docker-compose --version
You will also need to install the Go language. Start by downloading the Go folder (version 1.24.4 here) :
wget https://golang.org/dl/go1.21.4.linux-amd64.tar.gz
Extract your folder :
tar -C /usr/local -xzf go1.21.4.linux-amd64.tar.gz
Add Go to your environment:
export PATH=$PATH:/usr/local/go/bin
And verify that Go has been correctly installed :
go version

2.3- Eigenlayer Folder Installation

You can install Github Eigenlayer on your VPS :
git clone https://github.com/NethermindEth/eigenlayer.gitcd eigenlayermkdir -p buildgo build -o build/eigenlayer cmd/eigenlayer/main.go
And copy the file into your system :
cp ./build/eigenlayer /usr/local/bin/
Verify that the Eigenlayer program is properly installed :
eigenlayer
The command should return this result.

2.4- Creation of Your Private Keys

You can generate your ECDSA and BLS encrypted private keys using the command-line interface (CLI). ECDSA and BLS are two commonly used algorithms in security protocols and in the blockchain domain to ensure data integrity and confidentiality.
Both keys will be needed for operator registration and other on-chain operations.Replace <YOUR_NAME> with the name you want to give to your keys :
eigenlayer operator keys create --key-type ecdsa <YOUR_NAME>
eigenlayer operator keys create --key-type bls <YOUR_NAME>
After creating a password for your key, you will see your private key and your wallet address displayed. Store your private key securely, as you won’t be able to access it later.
If you need to retrieve your public keys and wallet address :
eigenlayer operator keys list
You will need to import the private key of your ECDSA wallet. Don’t forget to transfer some Geth to it to interact with the blockchain later.

2.5- Creation of Your Configuration File

You will be able to register your operator on the Eigenlayer blockchain. To do this, you will create a text file to include all the necessary information about your keys and a presentation of yourself.
You will need to customize a text file named ‘operator-config.yaml’. For a better view of your text, I recommend using Visual Studio Code.
# All the below fields are required for successful operator registration.operator: # This is the standard Ethereum address format (ex: 0x6a8c0D554a694899041E52a91B4EC3Ff23d8aBD5) of your operator # which is the ecdsa key you created or imported using EigenLayer CLI address: <ADDRESS_OF_YOUR_WALLET> # This is the standard Ethereum address format (ex: 0x6a8c0D554a694899041E52a91B4EC3Ff23d8aBD5) # This is the address where your operator will receive earnings. This could be same as operator address earnings_receiver_address: <ADDRESS_OF_YOUR_WALLET> # This is the standard Ethereum address format (0x...) # This is the address which operator will use to approve delegation requests from stakers. # if set, this address must sign and approve new delegation from Stakers to this Operator # This is optional, so you can leave it with the default value for un-gated delegation requests delegation_approver_address: 0x0000000000000000000000000000000000000000 # Please keep this field to 0, and it can be updated later using EigenLayer CLI staker_opt_out_window_blocks: 0 metadata_url: <METADATA_FILE_RAW># EigenLayer Slasher contract address# This will be provided by EigenLayer teamel_slasher_address: 0xD11d60b669Ecf7bE10329726043B3ac07B380C22# Address of BLS Public Key Compendium contract# This will be provided by EigenLayer teambls_public_key_compendium_address: 0xc81d3963087Fe09316cd1E032457989C7aC91b19# ETH RPC URL to the ethereum node you are using for on-chain operationseth_rpc_url: <API_ALCHEMY># Signer Type to use# Supported values: local_keystoresigner_type: local_keystore# Full path to local ecdsa private key store fileprivate_key_store_path: /root/.eigenlayer/operator_keys/<NAME_KEY>.ecdsa.key.json# Full path to local bls private key store filebls_private_key_store_path: /root/.eigenlayer/operator_keys/<NAME_KEY>.bls.key.json# Chain ID: 1 for mainnet, 5 for Goerli, 31337 for localchain_id: 5
Replace <ADDRESS_OF_YOUR_WALLET> with the address of your generated wallet, and <API_ALCHEMY> with the HTTP API key you generated on Alchemy (https://dashboard.alchemy.com/).
Also, replace <NAME_KEY> in both private_key paths.
For the metadata file, you will need to create an account on GitHub.
After creating your GitHub account, create a repository.
Then, create your METADATA file.
Name it ‘metadata.json’ and paste the following text into it :
{ "name": "<OPERATOR_NAME>", "website": "<YOUR_WEBSITE>", "description": "<DESCRIPTION>", "logo": "https://www.example.com/logo.png", "twitter": "<YOUR_TWITTER>"}
After completing your file, click on “Raw,” and paste the link into your ‘operator-config.yaml’ file.
For the logo, you will need to find a URL starting with http and ending with .png
After completing your ‘operator-config.yaml’ file, you will paste it into your VPS.Navigate to the config/ folder :
cd cli/operator/config/
Create the ‘operator-config.yaml’ folder :
touch operator-config.yaml
And paste your text into it :
nano operator-config.yaml
Navigate with the arrow keys on your keyboard and paste the text with the right-click of the mouse.
To exit and save your file: Press CTRL+X, then Y, and ENTER.

2.6- Registration

You can now proceed with the registration of your operator!However, to cover the gas fees on Goerli, you will need some Geth in your generated wallet.
Claim Geth from the Alchemy faucet => https://goerlifaucet.com/Then, transfer the Geth to your wallet generated with Eigenlayer.
Once you have Geth in your wallet, initiate the registration :
eigenlayer operator register operator-config.yaml
To verify that your operator has been successfully registered :
eigenlayer operator status operator-config.yaml
You can also view your Operator on the Eigenlayer website!

3- Eigenlayer Validator Node

Now that your operator is registered on Eigenlayer, you can launch the Eigenlayer node.You will need to have 32 gETH and enough restaked gETH on your operator to rank among the top 120 validator nodes.
You can claim them gradually from faucets such as https://goerlifaucet.com/ or directly bridge them using LayerZero: https://testnetbridge.com/.

3.1- EigenDA Folder Installation

You need to download the EigenDA Github repository.
git clone https://github.com/Layr-Labs/eigenda-operator-setup.gitcd eigenda-operator-setup
In your ‘eigenda-operator-setup’ folder, you will make modifications to the ‘.env’ file.
cp .env.example .env
nano .env
You will make modifications where it says “TODO.”
# TODO: IP of your nodeNODE_HOSTNAME=<YOUR_IP># TODO: Node Nginx configNODE_NGINX_CONF_HOST=./resources/rate-limit-nginx.conf# TODO: Operators need to point this to a working chain rpcNODE_CHAIN_RPC=<KEY_API>NODE_CHAIN_ID=5# TODO: Operators need to update this to their own pathsUSER_HOME=/root/EIGENLAYER_HOME=/root/.eigenlayerEIGENDA_HOME=/root/.eigenlayer/eigenda/NODE_LOG_PATH_HOST=/root/.eigenlayer/eigenda/logsNODE_G1_PATH_HOST=/root/eigenda-operator-setup/resources/g1.pointNODE_G2_PATH_HOST=/root/eigenda-operator-setup/resources/g2.pointNODE_DB_PATH_HOST=/root/.eigenlayer/eigenda/dbNODE_CACHE_PATH_HOST=/root/eigenda-operator-setup/resources/cache# TODO: Operators need to update this to their own keysNODE_ECDSA_KEY_FILE_HOST=/root/.eigenlayer/operator_keys/<NAME_WALLET>.ecdsa.key.jsonNODE_BLS_KEY_FILE_HOST=/root/.eigenlayer/operator_keys/<NAME_WALLET>.bls.key.json# TODO: The ip provider service used to obtain a node's public IP [seeip (default), ipify)NODE_PUBLIC_IP_PROVIDER=seeip# TODO: Operators need to add password to decrypt the above keysNODE_ECDSA_KEY_PASSWORD=<PASSWORD>NODE_BLS_KEY_PASSWORD=<PASSWORD>
You will need to modify the parts between <…>.
Create your ‘.eigenlayer’ folder.
mkdir -p $HOME/.eigenlayer/eigenda/logsmkdir -p $HOME/.eigenlayer/eigenda/db
As previously mentioned, to launch your validator node AVS, you will need to have enough restaked gETH on your operator to rank among the top 120 validator nodes.Visit the Uniswap DEX or the Tapio DEX and exchange your Geth for stETH (ETH staked with Lido).
And then, go to https://goerli.eigenlayer.xyz/token to restake your stETH.
When your Operator has enough delegated gETH to be in the top 120, you can move on to the next steps.
Run this script :
cd eigenda-operator-setup./run.sh opt-in
And run your node :
docker compose up -d
When you have launched your validator node, you will appear in the list of AVS Operators.

3.2 — Update

Like any software, updates will be necessary. They will be announced by the Eigenlayer team through their Twitter or Discord.You can follow me on Twitter, where I announce updates for various nodes.
To update EigenDa, start by downloading the latest Github versions of Eigenlayer:
cd eigenda-operator-setupgit pull
docker compose pull
Stop your nodes in Docker Compose:
docker compose down
And restart your nodes:
docker compose up -d
You can also join the project’s social media networks:
Comments
To comment, please sign in.
Article has no comments yet.