April 5, 2024

EigenDA Holesky

8CPU 16 GB 360 GB - Eigen 1)Обновляем ОС

sudo apt-get update && sudo apt-get upgrade -y

2)Устанавливаем необходимый софт

sudo apt install curl build-essential git screen jq pkg-config libssl-dev libclang-dev ca-certificates gnupg lsb-release -y

3)Устанавливаем Doker

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

4)Устанавливаем GO

wget https://golang.org/dl/go1.21.4.linux-amd64.tar.gz

tar -C /usr/local -xzf go1.21.4.linux-amd64.tar.gz

export PATH=$PATH:/usr/local/go/bin

go version

5)Копируем файлы Eigenlayer и переходим в cli

git clone https://github.com/Layr-Labs/eigenlayer-cli.git

cd eigenlayer-cli

mkdir -p build

go build -o build/eigenlayer cmd/eigenlayer/main.go

cp ./build/eigenlayer /usr/local/bin/

eigenlayer

6)Создаем ключ ecdsa(меняем имя на своё)

eigenlayer operator keys create --key-type ecdsa ИМЯКОШЕЛЬКА

Копируем сначала приватник затем ctrl+c enter что бы выйти и потом копируем и сохраняем себе адрес

7)Создаем ключ bls(меняем имя на своё)

eigenlayer operator keys create --key-type bls ИМЯКОШЕЛЬКА

Сохраняем приватник на всякий

8)Следующей командой проверяем что все ключи сохранились

eigenlayer operator keys list

9)Создаем конфиг файл. Введя команду выбираем "N"

eigenlayer operator config create

10)Открываем файл метадата и заполняем его своей информацией(обратите внимание что ссылка на аватар должна быть именно на png картинку иначе будет ругаться.Для выхода ctrl+c, Y, enter

nano metadata.json

{
"name": "<OPERATEUR_NAME>",
"website": "<WEBSITE>",
"description": "<DESCRIPTION>",
"logo": "<https://www.example.com/logo.png>",
"twitter": "<YOUR_TWITTER>"
}

Теперь заходим на свой гитхаб и получаем raw ссылку, на файл в котором будет такой же текст как мы вставляли выше и такое же название файла. Ссылка нам понадобится на следующем шаге

11)Далее работаем с файлом operator. Меняйте данные только выделенные, остальное без изменений.

nano operator.yaml

operator:

address: ВАШАДРЕССИЗecdsaКЛЮЧА

earnings_receiver_address: ВАШАДРЕССИЗecdsaКЛЮЧА

delegation_approver_address: "0x0000000000000000000000000000000000000000"

staker_opt_out_window_blocks: 0

metadata_url: <URL_RAW_GITHUB>

el_delegation_manager_address: 0xA44151489861Fe9e3055d95adC98FbD462B948e7

eth_rpc_url: https://ethereum-holesky-rpc.publicnode.com

private_key_store_path: /root/.eigenlayer/operator_keys/<NAME_WALLET>.ecdsa.key.json

signer_type: local_keystore

chain_id: 17000

12)Далее для регистрации и в дальнейшем для стейкинга нам понадобится ETH Holesky, можно минтить его через кран но в очень малых объемах. А вам нужно будет МНОГО. Обращайтесь в чат канала мы поможем приобрести необходимое количество Кидаем на свой адрес оператора небольшую сумму для комиcсии(0.2 ETH хватит на все следуюшие комиссии) И вводим команду для регистрации

eigenlayer operator register operator.yaml

13)Проверяем статус

eigenlayer operator status operator.yaml

Дальше мы должны появиться в дашборде. https://holesky.eigenlayer.xyz/operator

И приступить к стейкингу. Пока мы не накопим достаточное количество нет смысла приступать к дальнейшим командам.
Как понять сколько нужно для стейка?
Переходим во вкладку AVS. Находим AVS EigenDA(https://holesky.eigenlayer.xyz/avs/0xd4a7e1bd8015057293f0d0a557088c286942e84b) сортируем фильтром как на скрине и смотрим стейк у 20о-оператора. Это будет минимумом.

Стейкаем через Liquid Restaking или Wrapped Ether через вкладку Restake/
Описывать этот процесс не вижу смысла, так как там всё ежедневно меняется.Давайте обсудим это в чате.

Смомента делегации должно пройти не менее 6 часов для дальнейших действий!

Итак вы по стейку в ТОП 200?Поехали дальше!

cd
git clone https://github.com/Layr-Labs/eigenda-operator-setup.git

cd eigenda-operator-setup/holesky

nano .env

MAIN_SERVICE_IMAGE=ghcr.io/layr-labs/eigenda/opr-node:release-0.6.0
NETWORK_NAME=eigenda-network
MAIN_SERVICE_NAME=eigenda-native-node

# These are used for testing purpose
NODE_TEST_PRIVATE_BLS=
NODE_PRIVATE_KEY=

# EigenDA specific configs
NODE_EXPIRATION_POLL_INTERVAL=180
NODE_CACHE_ENCODED_BLOBS=true
NODE_NUM_WORKERS=1
NODE_DISPERSAL_PORT=32005
NODE_QUORUM_ID_LIST=0
NODE_VERBOSE=true
NODE_RETRIEVAL_PORT=32004
NODE_TIMEOUT=20s
NODE_SRS_ORDER=268435456
NODE_SRS_LOAD=131072

# If you are using a reverse proxy in a shared network space, the reverse proxy should listen at $NODE_DISPERSAL_PORT
# and forward the traffic to $NODE_INTERNAL_DISPERSAL_PORT, and similarly for retrieval. The DA node will register the
# $NODE_DISPERSAL_PORT port on the chain and listen for the reverse proxy at $NODE_INTERNAL_DISPERSAL_PORT.
NODE_INTERNAL_DISPERSAL_PORT=${NODE_DISPERSAL_PORT}
NODE_INTERNAL_RETRIEVAL_PORT=${NODE_RETRIEVAL_PORT}

# EigenDA mounted locations
NODE_ECDSA_KEY_FILE=/app/operator_keys/ecdsa_key.json
NODE_BLS_KEY_FILE=/app/operator_keys/bls_key.json
NODE_G1_PATH=/app/g1.point
NODE_G2_POWER_OF_2_PATH=/app/g2.point.powerOf2
NODE_CACHE_PATH=/app/cache
NODE_LOG_PATH=/app/logs/opr.log
NODE_DB_PATH=/data/operator/db

# Node logs configs
NODE_LOG_LEVEL=debug
NODE_LOG_FORMAT=text

# Metrics specific configs
NODE_ENABLE_METRICS=true
NODE_METRICS_PORT=9092

# Node API specific configs
NODE_ENABLE_NODE_API=true
NODE_API_PORT=9091

# holesky smart contracts
NODE_EIGENDA_SERVICE_MANAGER=0xD4A7E1Bd8015057293f0D0A557088c286942e84b
NODE_BLS_OPERATOR_STATE_RETRIVER=0xB4baAfee917fb4449f5ec64804217bccE9f46C67

# Churner URL
NODE_CHURNER_URL=churner-testnet-holesky.eigenda.xyz:443

# The name of the header used to get the client IP address
# If set to empty string, the IP address will be taken from the connection.
# The rightmost value of the header will be used.
NODE_CLIENT_IP_HEADER=x-real-ip
# How often to check the public IP address of the node. Set this to 0 to disable
# automatic IP address updating (if you have a stable IP address)
NODE_PUBLIC_IP_CHECK_INTERVAL=10s

###############################################################################
####### TODO: Operators please update below values for your node ##############
###############################################################################
# TODO: IP of your node
NODE_HOSTNAME=МЕНЯЙНАСВОЙIP

# TODO: Node Nginx config
NODE_NGINX_CONF_HOST=/root/eigenda-operator-setup/resources/rate-limit-nginx.conf

# TODO: Operators need to point this to a working chain rpc
NODE_CHAIN_RPC=https://ethereum-holesky-rpc.publicnode.com
NODE_CHAIN_ID=17000

# TODO: Operators need to update this to their own paths
USER_HOME=/root/
EIGENLAYER_HOME=/root/.eigenlayer
EIGENDA_HOME=/root/.eigenlayer/eigenda/holesky


NODE_LOG_PATH_HOST=${EIGENDA_HOME}/logs
NODE_G1_PATH_HOST=${USER_HOME}/eigenda-operator-setup/resources/g1.point
NODE_G2_PATH_HOST=${USER_HOME}/eigenda-operator-setup/resources/g2.point.powerOf2
NODE_DB_PATH_HOST=${EIGENDA_HOME}/db
NODE_CACHE_PATH_HOST=${USER_HOME}/eigenda-operator-setup/resources/cache

# TODO: Operators need to update this to their own keys
NODE_ECDSA_KEY_FILE_HOST=/root/.eigenlayer/operator_keys/МЕНЯЙНАИМЯКОШЕЛЬКА.ecdsa.key.json
NODE_BLS_KEY_FILE_HOST=/root/.eigenlayer/operator_keys/МЕНЯЙНАИМЯКОШЕЛЬКА.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 keys
# If you have some special characters in password, make sure to use single quotes
NODE_ECDSA_KEY_PASSWORD='МЕНЯЙНАПАРОЛЬКОШЕЛЬКА'
NODE_BLS_KEY_PASSWORD='МЕНЯЙНАПАРОЛЬКОШЕЛЬКА'

mkdir -p $HOME/.eigenlayer/eigenda/logs

mkdir -p $HOME/.eigenlayer/eigenda/db

cd eigenda-operator-setup/holesky

./run.sh opt-in 0

cd eigenda-operator-setup/holesky
git pull
docker compose pull
docker compose up -d

По итогу должна появиться эта надпись у оператора