Website : Buradan
Discord : Buradan
Twitter : Buradan
# Güncelleme ve Paketleri Yükleyelim
sudo apt update & sudo apt upgrade -y
sudo apt install ca-certificates zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev curl git wget make jq build-essential pkg-config lsb-release libssl-dev libreadline-dev libffi-dev gcc screen unzip lz4 -y
# Docker Kuralım
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 docker-ce docker-ce-cli containerd.io
docker version
# Docker-Compose Kuralım
VER=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d '"' -f 4)
curl -L "https://github.com/docker/compose/releases/download/"$VER"/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
# Docker Kullanıcı İzni Verelim
sudo groupadd docker
sudo usermod -aG docker $USER
# Go Kuralım
sudo rm -rf /usr/local/go
curl -L https://go.dev/dl/go1.22.4.linux-amd64.tar.gz | sudo tar -xzf - -C /usr/local
echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> $HOME/.bash_profile
echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> $HOME/.bash_profile
source .bash_profile
go version
- EigenLayer CLI Yükleyelim
curl -sSfL https://raw.githubusercontent.com/layr-labs/eigenlayer-cli/master/scripts/install.sh | sh -s
export PATH=$PATH:~/bin
eigenlayer --version
- Chainbase AVS repo Klonlayalım
git clone https://github.com/chainbase-labs/chainbase-avs-setup
cd chainbase-avs-setup/holesky
- Eigen için cüzdan oluşturalım a. Yeni key oluşturmak için bu adımlar takip edin.
# Bu adımda kodu girdikten sonra sizden şifre oluşturmanızı isteyecek Harfler, Rakamlar ve Sembollerden oluşturulması önerilir. Sonra çıktıdaki Private keyi yedekleyin.
eigenlayer operator keys create --key-type ecdsa wallet
BU ADIMA GEÇMEDEN ÖNCE Cüzdanı oluşturup yedeklerinizi kaydettikten sonra Holesky Test ağında adresinize en az 1 ETH göndermeniz gerekecek. Google üzerinden Holesky Faucet bulabilirsiniz.
- Ayarlar ve Operatör kaydını yapalım.
eigenlayer operator config create
# operator address:
Holesk ETH adresinizi girin.# earnings address:
Enter'e basın.# ETH rpc url:
https://ethereum-holesky-rpc.publicnode.com# network:
holesky# signer type:
local_keystore# ecdsa key path::
/root/.eigenlayer/operator_keys/wallet.ecdsa.key.json
- Metadata'mızı açıp içerisini kopyalayalım ve 8. adım olan yere ekleyip Sunucumuzda metada'yı Ctrl X ile kapatalım.
nano metadata.json
GitHub üzerinden hesabınıza girin ve Sağ üstteki resminize tıklayın ve aşağıdaki adımları takip edin.
- Operator.yaml dosyasını açalım ve gerekli düzenlemeleri yapalım.
nano operator.yaml
Metadata URL yazan kısma yukarıda yapmış olduğunuz Metadata klasörünüzün RAW linkini tırnakların içerisine ekleyelim ve el_delegation_manager_address: 0xA44151489861Fe9e3055d95adC98FbD462B948e7 olan yere de bu değeri girelim CTRL X - Y ENTER diyerek kaydedip çıkalım.
- Eigenlayer Holesky Nodu'muzu çalıştıralım. Register Succes çıktısı almamız gerekecek.
eigenlayer operator register operator.yaml
eigenlayer operator status operator.yaml
eigenlayer operator update operator.yaml
- Chainbase AVS Yapılandıralım
# Eskisi varsa silelim
rm -rf .env
# Yenisini oluşturup içine girelim
nano .env
Aşağıdaki kodları içerisine ekleyip en aşağıdaki şifre kısmını düzenleyin ve CTRL X - Y ENTER yapıp kaydedin ve çıkın.
# 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=$HOME
EIGENLAYER_HOME=${USER_HOME}/.eigenlayer
CHAINBASE_AVS_HOME=${EIGENLAYER_HOME}/chainbase/holesky
NODE_LOG_PATH_HOST=${CHAINBASE_AVS_HOME}/logs
# TODO: Operators need to update this to their own keys
NODE_ECDSA_KEY_FILE_HOST=${EIGENLAYER_HOME}/operator_keys/wallet.ecdsa.key.json
# 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=Yukarıda+Oluşturduğunuz+Şifreyi+Giriniz
Docker-Compose klasörünü kendimize göre düzenleyelim.
# Eskiyi silelim
rm -rf docker-compose.yml
# Yenisini ekleyip açalım
nano docker-compose.yml
Aşağıdaki kodları içerisine ekleyip CTRL X - Y ENTER yapıp kaydedin ve çıkın.NOT : Portlar ile ilgili sorun yaşarsanız başlarındaki portları değiştirebilirsiniz.
services:
prometheus:
image: ${PROMETHEUS_IMAGE}
container_name: ${PROMETHEUS_NAME}
env_file:
- .env
volumes:
- "${PROMETHEUS_CONFIG_PATH}:/etc/prometheus/prometheus.yml"
command:
- "--enable-feature=expand-external-labels"
- "--config.file=/etc/prometheus/prometheus.yml"
ports:
- "${NODE_PROMETHEUS_PORT}:9090"
networks:
- chainbase
restart: unless-stopped
flink-jobmanager:
image: ${FLINK_JOBMANAGER_IMAGE}
container_name: ${FLINK_JOBMANAGER_NAME}
env_file:
- .env
command: jobmanager
networks:
- chainbase
restart: unless-stopped
flink-taskmanager:
image: ${FLINK_JOBMANAGER_IMAGE}
container_name: ${FLINK_TASKMANAGER_NAME}
env_file:
- .env
depends_on:
- flink-jobmanager
command: taskmanager
networks:
- chainbase
restart: unless-stopped
chainbase-node:
image: ${MAIN_SERVICE_IMAGE}
container_name: ${MAIN_SERVICE_NAME}
command: ["run"]
env_file:
- .env
ports:
- "${NODE_APP_PORT}:${NODE_APP_PORT}"
- "${NODE_METRICS_PORT}:${NODE_METRICS_PORT}"
volumes:
- "${NODE_ECDSA_KEY_FILE_HOST:-./opr.ecdsa.key.json}:${NODE_ECDSA_KEY_FILE}"
- "${NODE_LOG_PATH_HOST}:${NODE_LOG_DIR}:rw"
depends_on:
- prometheus
- flink-jobmanager
- flink-taskmanager
networks:
- chainbase
restart: unless-stopped
networks:
chainbase:
driver: bridge
Docker için klasör oluşturalım
source .env && mkdir -pv ${EIGENLAYER_HOME} ${CHAINBASE_AVS_HOME} ${NODE_LOG_PATH_HOST}
İzinleri verelim
chmod +x ./chainbase-avs.sh
prometheus.yml klasörünü açın ve içerisindeki operator olan yere kendi adresinizi tırnakların içerisine ekleyin ve CTRL X - Y ENTER yapıp kaydedin çıkın
nano prometheus.yml
- Chainbase AVS çalıştıralım ve Registering olarak çıktımızı alıp devam edelim.
./chainbase-avs.sh register
- AVS çalıştıralım
./chainbase-avs.sh run
- AVS durumunu kontrol etmek için
docker compose logs chainbase-node -f
AVS Linkinizi almanız için
export PATH=$PATH:~/bin
eigenlayer operator status operator.yaml
Operator sağlıgını kontrol etmek için
# Eğer Portunuz farklı ise değiştirin
curl -i localhost:8080/eigen/node/health