Adım adım Türkçe manuel kurulum rehberi.
Ağ: Testnet Asimov Phase 5
Kaynak: docs.genlayer.com/validators/setup-guide
- Sistem Gereksinimleri
- Sunucu Hazırlığı
- GenLayer CLI ve Validator Cüzdanı
- Node Yazılımını İndir ve Kur
- Konfigürasyon Dosyasını Oluştur
- Operator Key'i İçe Aktar
- Node'u Servis Olarak Çalıştır
- Faydalı Komutlar
- Güncelleme Rehberi
- Sık Yapılan Hatalar
| Kaynak | Gereksinim |
|---|---|
| RAM | 16 GB |
| CPU | 8 çekirdek — AMD64 (x86_64) zorunlu! ARM çalışmaz. |
| Disk | 128 GB SSD/NVMe |
| Ağ | 100 Mbps |
| İşletim Sistemi | 64-bit Linux (Ubuntu 20.04+ önerilir) |
| Yazılım | Docker, Python 3, Node.js v18+, npm |
⚠️ ÖNEMLİ: Mutlaka AMD64/x86_64 mimarili sunucu kullan.uname -mkomutux86_64döndürmelidir.
💰 Token Gereksinimi: Minimum 42.000 GEN token gereklidir.
sudo apt update && sudo apt upgrade -ysudo apt install -y curl wget git build-essential python3 python3-pip python3-venv ca-certificates gnupg lsb-release# Eski Docker sürümlerini kaldır
sudo apt remove -y docker docker-engine docker.io containerd runc 2>/dev/null || true
# Resmi GPG anahtarını ekle
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Repoyu ekle
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Docker'ı kur
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Kullanıcını docker grubuna ekle (sudo'suz docker kullanımı)
sudo usermod -aG docker $USER
newgrp docker
# Doğrula
docker --version
docker compose version- OR
wget -q -O docker.sh https://raw.githubusercontent.com/molla202/molla202/refs/heads/main/docker.sh && chmod +x docker.sh && sudo /bin/bash docker.sh
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
# Doğrula (18.x veya üzeri olmalı)
node --version
npm --versionuname -m
# x86_64 görmelisin. Başka bir şey varsa bu sunucu çalışmaz.
⚠️ Bu adım kendi bilgisayarında (local) yapılmalıdır. Owner adresi soğuk cüzdanda tutulmalıdır.
npm install -g genlayer
genlayer --versiongenlayer staking wizardWizard sırasıyla şunları yapar:
- Owner hesabı oluşturur veya mevcut cüzdanı bağlar
- Ağ olarak
testnet-asimovseçersin - En az 42.000 GEN token bakiyeni doğrular
- Operator keystore dosyasını oluşturur (bir export şifresi belirlersin)
- Stake miktarını girersin (min: 42.000)
- Validator akıllı kontratını deploy eder
- Moniker, website gibi kimlik bilgilerini girersin
genlayer account import --password pass-write --private-key 0x --name nameNOT: daha sonra wizard kodunuzu girince cüzdanınız görünecek onu seçip validator kontratını deploy edıyoruz.
Owner Adresi : 0x... ← Stake çekme yetkisi — SOĞUK CÜZDANDA TUT
Operator Adresi : 0x... ← Node'un imzalama adresi (config'de lazım)
Validator Wallet: 0x... ← Akıllı kontrat adresi (config'de lazım)
NOT: eğer harici bir eyrde yapmadıysanız bu adıma gerek yok.
# Kendi makinenden çalıştır — IP ve kullanıcı adını değiştir
scp ./operator-keystore.json kullanici@SUNUCU_IP:$HOME/operator-keystore.jsongenlayer staking validator-info --validator 0xVALIDATOR_WALLET_ADRESİNBu adımdan itibaren sunucunda çalışıyorsun.
curl -s "https://storage.googleapis.com/storage/v1/b/gh-af/o?prefix=genlayer-node/bin/amd64" | \
grep -o '"name": *"[^"]*"' | \
sed -n 's/.*\/\(v[^/]*\)\/.*/\1/p' | \
sort -ru | grep -v "rc" | head -n 5export VERSION=v0.5.12 # Yukarıdaki listeden en yeni versiyonu kullan
wget https://storage.googleapis.com/gh-af/genlayer-node/bin/amd64/${VERSION}/genlayer-node-linux-amd64-${VERSION}.tar.gz
# Sabit isimli klasöre çıkart — güncelleme sırasında bu isim değişmeyecek
mkdir -p $HOME/.genlayer
tar -xzvf genlayer-node-linux-amd64-${VERSION}.tar.gz
mv $HOME/genlayer-node-linux-amd64/* $HOME/.genlayer/
cd $HOME/.genlayerpython3 ./third_party/genvm/bin/setup.pyBirkaç dakika sürebilir, sabırla bekle.
sudo ln -sf $HOME/.genlayer/bin/genlayernode /usr/local/bin/genlayernode
# Doğrula
which genlayernodemkdir -p $HOME/.genlayer/configs/node
mkdir -p $HOME/.genlayer/data
mkdir -p $HOME/.genlayer/logs# --- Kendi bilgilerinle doldur ---
VALIDATOR_WALLET="0xVALIDATOR_WALLET_ADRESİN" # Wizard'dan aldın
OPERATOR_ADDRESS="0xOPERATOR_ADRESİN" # Wizard'dan aldın
# --------------------------------
echo "Validator : $VALIDATOR_WALLET"
echo "Operator : $OPERATOR_ADDRESS"Asimov RPC: Caldera tarafından sağlanır.
HTTP:https://zksync-os-testnet-genlayer.zksync.dev/http
WS:wss://zksync-os-testnet-genlayer.zksync.dev/ws
Birden fazla validator aynı RPC'yi paylaşabilir veya kendi ZKSync full node'unu kurabilirsin.
cat > $HOME/.genlayer/configs/node/config.yaml << EOF
# rollup configuration
rollup:
genlayerchainrpcurl: "https://zksync-os-testnet-genlayer.zksync.dev/http"
genlayerchainwebsocketurl: "wss://zksync-os-testnet-genlayer.zksync.dev/ws"
provider: "caldera"
# Testnet Asimov Phase 5 — consensus configuration
consensus:
consensusaddress: "0xe66B434bc83805f380509642429eC8e43AE9874a"
genesis: 17326
# data directory
datadir: "./data/node"
# logging configuration
logging:
level: "INFO"
json: false
file:
enabled: true
level: "DEBUG"
folder: logs
maxsize: 10
maxage: 7
maxbackups: 100
localtime: false
compress: true
# node configuration
node:
mode: "validator"
validatorWalletAddress: "${VALIDATOR_WALLET}"
operatorAddress: "${OPERATOR_ADDRESS}"
admin:
port: 9155
rpc:
port: 9151
endpoints:
groups:
genlayer: true
genlayer_debug: true
ethereum: true
zksync: true
ops:
port: 9153
endpoints:
metrics: true
health: true
balance: true
# genvm configuration
genvm:
root_dir: ./third_party/genvm
start_manager: true
manager_url: http://127.0.0.1:3999
permits: 8
# advanced configuration
merkleforest:
maxdepth: 16
dbpath: "./data/node/merkle/forest/data.db"
indexdbpath: "./data/node/merkle/index.db"
merkletree:
maxdepth: 16
dbpath: "./data/node/merkle/tree/"
# metrics configuration
metrics:
interval: "15s"
collectors:
node:
enabled: true
genvm:
enabled: true
webdriver:
enabled: true
EOFKontrol et:
cat $HOME/.genlayer/configs/node/config.yamlNOT: eğer daha once var olan cüzdanı import ettiyseniz yada yeni cüzdan olusturduysanız wizard işleminde export ederkene verilen bilgilere dikkat edin. çünkü şuan aşağıda lazım :D
./bin/genlayernode account import \
--password "BURAYA_NODE_ŞIFRENI_YAZ" \
--passphrase "BURAYA_WIZARD_EXPORT_ŞIFRESINI_YAZ" \
--path "/home/kullanici/operator-keystore.json" \
-c $(pwd)/configs/node/config.yaml \
--setupBaşarılı çıktı:
Account imported:
Address: 0x...
Account setup as a validator
Görünen adresin wizard'dan aldığın Operator Adresi ile eşleştiğini doğrula.
genlayernode account export \
--password "NODE_ŞİFREN" \
--address "0xOPERATOR_ADRESİN" \
--passphrase "YEDEK_ŞİFREN" \
--path "$HOME/operator-backup.key" \
-c $HOME/.genlayer/configs/node/config.yaml🔒 Bu dosyayı güvenli bir yerde sakla!
LLM API key'ini node binary'si doğrudan kullanır (GenVM modülü üzerinden).
Bu nedenle key, systemd servisine Environment= direktifi ile verilir.
Servis kurmadan önce WebDriver'ı doğrula:
cd $HOME/.genlayer
docker compose up -d
# Container çalışıyor mu?
docker ps
# ".genlayer-webdriver" görünmelicd $HOME/.genlayer
genlayernode doctorTüm kontroller geçmeli. Hata varsa servise geçmeden önce düzelt.
Heurist — free API credits with referral code "genlayer".
Heurist kullanıyorsan
HEURISTKEY'i doldur. Başka sağlayıcı kullanıyorsan
ilgili
Environment=satırını ekle (COMPUT3KEY, IOINTELLIGENCE_API_KEY vb.)
sudo tee /etc/systemd/system/.genlayer.service > /dev/null << EOF
[Unit]
Description=GenLayer Validator Node — Testnet Asimov
After=network-online.target docker.service
Wants=network-online.target
Requires=docker.service
[Service]
Type=simple
User=$USER
WorkingDirectory=$HOME/.genlayer
# Node şifresi
Environment="GENLAYERNODE_PASSWORD=BURAYA_NODE_ŞİFRENİ_YAZ"
# LLM API Key — kullandığın sağlayıcının satırını doldur
Environment="HEURISTKEY=BURAYA_HEURIST_API_KEY_YAZ"
#Environment="COMPUT3KEY=BURAYA_COMPUT3_API_KEY_YAZ"
#Environment="IOINTELLIGENCE_API_KEY=BURAYA_IONET_API_KEY_YAZ"
#Environment="CHUTES_API_KEY=BURAYA_CHUTES_API_KEY_YAZ"
#Environment="OPENAIKEY=BURAYA_OPENAI_API_KEY_YAZ"
ExecStart=genlayernode run \
-c $HOME/.genlayer/configs/node/config.yaml \
--password \${GENLAYERNODE_PASSWORD}
Restart=on-failure
RestartSec=10
LimitNOFILE=65535
StandardOutput=journal
StandardError=journal
SyslogIdentifier=.genlayer
[Install]
WantedBy=multi-user.target
EOFsudo systemctl daemon-reload
sudo systemctl enable .genlayer
sudo systemctl start .genlayer
# Durumu kontrol et
sudo systemctl status .genlayer# Canlı log
sudo journalctl -u .genlayer -f
# Node sync oldu mu?
sudo journalctl -u .genlayer | grep "Node is synced"
# "Node is synced!!! blockNumber=XXXXX" görmelisinsudo systemctl stop .genlayer
sudo systemctl restart .genlayer
sudo systemctl status .genlayer
sudo journalctl -u .genlayer -n 100 --no-pagercurl http://localhost:9153/health
curl http://localhost:9153/metrics
curl http://localhost:9153/balancegenlayernode account list -c $HOME/.genlayer/configs/node/config.yaml# Validator bilgileri
genlayer staking validator-info --validator 0xVALIDATOR_WALLET_ADRESİN
# Aktif validatorlar
genlayer staking active-validators
# Ek stake
genlayer staking validator-deposit --amount 1000gen
# Çıkış (7-epoch unbonding başlar)
genlayer staking validator-exit --shares 100
# Fonları çek (unbonding bittikten sonra)
genlayer staking validator-claim
# Kimlik güncelle
genlayer staking set-identity --validator 0x... --moniker "YeniIsim"configs, data ve logs klasörleri korunur. Sadece bin ve third_party güncellenir.
export NEW_VERSION=v0.5.13
# Yeni versiyonu indir
wget https://storage.googleapis.com/gh-af/.genlayer/bin/amd64/${NEW_VERSION}/.genlayer-linux-amd64-${NEW_VERSION}.tar.gz
# Geçici klasöre çıkart
mkdir -p $HOME/.genlayer-new
tar -xzvf .genlayer-linux-amd64-${NEW_VERSION}.tar.gz -C $HOME/.genlayer-new
# Yeni GenVM kurulumu
python3 $HOME/.genlayer-new/third_party/genvm/bin/setup.py
# Servisi durdur
sudo systemctl stop .genlayer
docker compose -f $HOME/.genlayer/docker-compose.yaml down
# Binary ve GenVM'i güncelle (configs/data/logs dokunulmaz)
rm -rf $HOME/.genlayer/bin $HOME/.genlayer/third_party
cp -r $HOME/.genlayer-new/bin $HOME/.genlayer/
cp -r $HOME/.genlayer-new/third_party $HOME/.genlayer/
cp $HOME/.genlayer-new/docker-compose.yaml $HOME/.genlayer/
# Symlink güncelle
sudo ln -sf $HOME/.genlayer/bin/genlayernode /usr/local/bin/genlayernode
genlayernode --version
# Servisi başlat
sudo systemctl start .genlayer
sudo journalctl -u .genlayer -f
# Temizlik
rm -rf $HOME/.genlayer-new
rm .genlayer-linux-amd64-*.tar.gzARM işlemci kullanıyorsun. AMD64 sunucuya geç.
uname -m # x86_64 olmalıServis dosyasında LLM API key tanımlı değil veya boş bırakılmış.
sudo systemctl edit .genlayer
# Environment="HEURISTKEY=..." satırını güncelle
sudo systemctl restart .genlayerconfigs/node/config.yaml içinde validatorWalletAddress veya operatorAddress boş.
nano $HOME/.genlayer/configs/node/config.yaml
sudo systemctl restart .genlayersudo usermod -aG docker $USER
newgrp dockercd $HOME/.genlayer
docker compose down
docker compose up -d
docker logs .genlayer-webdriverYeniden başlatma veya güncelleme sonrası geçici olarak normal. Epoch'lar tamamlandıkça otomatik temizlenir. Node'un çalışmaya devam ettiğinden ve LLM + WebDriver'ın aktif olduğundan emin ol.
✅ Sorun yaşarsan GenLayer Discord
#validatorskanalına sorabilirsin.