🟤 Espresso Network Mainnet 1 — Validator Node Kurulum Rehberi (Türkçe)
Espresso Network validator node'u çalıştırmak ve Validator Bootstrap Program'a başvurmak için eksiksiz rehber
Docker kurulumu, key üretimi, validator kaydı, systemd servis kurulumu — adım adım.
Yazar: HazenNetworkSolutions
Ağ: Espresso Mainnet 1
Image Tag: 20260710
Son Güncelleme: 14 Temmuz 2026
İçindekiler
- Donanım Gereksinimleri
- Adım 1 — Docker Kurulumu
- Adım 2 — Dizin Yapısı Oluşturma
- Adım 3 — Docker Image'larını İndirme
- Adım 4 — Validator Key'lerini Üretme
- Adım 5 — Metadata JSON Dosyası Oluşturma
- Adım 6 — Ethereum Cüzdanı Hazırlama
- Adım 7 — Ethereum RPC Endpoint Alma
- Adım 8 — Validator'ı Ethereum'a Kayıt Etme
- Adım 9 — Environment Dosyası Oluşturma
- Adım 10 — Systemd Servis Dosyası Oluşturma
- Adım 11 — Node'u Başlatma
- Adım 12 — Node Sağlığını Doğrulama
- Adım 13 — Bootstrap Program'a Başvurma
- Node İzleme
- Node Güncelleme
- Sorun Giderme
Donanım Gereksinimleri
| Bileşen | Minimum |
|---|---|
| İşletim Sistemi | Ubuntu 22.04+ |
| CPU | 1 Core (herhangi bir modern işlemci) |
| RAM | 8 GB |
| Depolama | Yok denecek kadar az (kilobyte seviyesi) |
| Ağ | Stabil internet, public IP zorunlu |
| Açık Portlar | 8585/TCP (API), 9000/UDP (LibP2P) |
✅ Bu rehber Regular Node (DA olmayan) kurulumunu anlatmaktadır. DA node'ları yalnızca DA komitesindekiler için gereklidir — çoğu operatör buna ihtiyaç duymaz.
Adım 1 — Docker Kurulumu
Docker'ı resmi repository'den kurun (snap veya apt install docker.io kullanmayın):
apt-get update && apt-get install -y ca-certificates curl gnupg && \
install -m 0755 -d /etc/apt/keyrings && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg && \
chmod a+r /etc/apt/keyrings/docker.gpg && \
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null && \
apt-get update && \
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Kurulumu doğrulayın:
docker --version && systemctl status docker
Beklenen çıktı: Docker version 29.x.x ve active (running).
Adım 2 — Dizin Yapısı Oluşturma
mkdir -p /opt/espresso/keys /opt/espresso/store
| Dizin | Amacı |
|---|---|
/opt/espresso/keys | BLS ve Schnorr private key'lerini saklar |
/opt/espresso/store | Node'un SQLite veritabanını saklar |
Adım 3 — Docker Image'larını İndirme
Espresso sequencer image'ını indirin (Mainnet 1):
docker pull ghcr.io/espressosystems/espresso-sequencer/sequencer:20260710
Staking CLI image'ını indirin:
docker pull ghcr.io/espressosystems/espresso-sequencer/staking-cli:main
💡 Sequencer image'ı ~500MB'dır, indirilmesi birkaç dakika sürebilir.
⚠️ Not: Resmi Espresso dökümanlarında image path'i
espresso-network/sequencerolarak gösteriliyor, ancak doğru registry path'i yukarıda kullanılanespresso-sequencer/sequencer'dır. Bu rehberdeki komutları kullanın.
Adım 4 — Validator Key'lerini Üretme
BLS (staking) ve Schnorr (state) key'lerinizi oluşturmak için key generator'ı çalıştırın:
docker run -v /opt/espresso/keys:/keys \
ghcr.io/espressosystems/espresso-sequencer/sequencer:20260710 \
keygen -o /keys
Komut terminal çıktısı vermez — bu normaldir, key'ler sessizce dosyaya kaydedilir. Dosyanın oluşturulduğunu doğrulayın:
cat /opt/espresso/keys/0.env
Beklenen çıktı:
# Seed: <rastgele_hex>
ESPRESSO_SEQUENCER_PUBLIC_STAKING_KEY=BLS_VER_KEY~...
ESPRESSO_SEQUENCER_PRIVATE_STAKING_KEY=BLS_SIGNING_KEY~...
ESPRESSO_SEQUENCER_PUBLIC_STATE_KEY=SCHNORR_VER_KEY~...
ESPRESSO_SEQUENCER_PRIVATE_STATE_KEY=SCHNORR_SIGNING_KEY~...
Ardından x25519 key oluşturun (yaklaşan Cliquenet protokol yükseltmesi için gerekli):
docker run --rm \
-v /opt/espresso/keys:/keys \
ghcr.io/espressosystems/espresso-sequencer/sequencer:20260710 \
keygen --scheme x25519 -o /keys
Bu komut 0.env dosyasını yalnızca x25519 key ile overwrite eder. Tüm key'leri birleştirerek dosyayı manuel olarak yeniden oluşturmanız gerekir:
cat > /opt/espresso/keys/0.env << 'EOF'
# Seed: BURAYA_ORIJINAL_SEED_YAZIN
ESPRESSO_SEQUENCER_PUBLIC_STAKING_KEY=BLS_VER_KEY~BLS_PUBLIC_KEY
ESPRESSO_SEQUENCER_PRIVATE_STAKING_KEY=BLS_SIGNING_KEY~BLS_PRIVATE_KEY
ESPRESSO_SEQUENCER_PUBLIC_STATE_KEY=SCHNORR_VER_KEY~SCHNORR_PUBLIC_KEY
ESPRESSO_SEQUENCER_PRIVATE_STATE_KEY=SCHNORR_SIGNING_KEY~SCHNORR_PRIVATE_KEY
ESPRESSO_SEQUENCER_PUBLIC_X25519_KEY=X25519_PUBLIC_KEY
ESPRESSO_SEQUENCER_PRIVATE_X25519_KEY=X25519_SK~X25519_PRIVATE_KEY
EOF
3 public key'in mevcut olduğunu doğrulayın:
grep "PUBLIC" /opt/espresso/keys/0.env
3 satır görmelisiniz: PUBLIC_STAKING_KEY, PUBLIC_STATE_KEY, PUBLIC_X25519_KEY.
🔐 KRİTİK: Aşağıdaki bilgileri hemen güvenli bir yere yedekleyin (şifre yöneticisi, harici disk):
Key Ön Ek Açıklama ESPRESSO_SEQUENCER_PRIVATE_STAKING_KEYBLS_SIGNING_KEY~...Consensus mesajlarını imzalar ESPRESSO_SEQUENCER_PRIVATE_STATE_KEYSCHNORR_SIGNING_KEY~...Finalize edilmiş state'leri imzalar ESPRESSO_SEQUENCER_PRIVATE_X25519_KEYX25519_SK~...Cliquenet protokol yükseltmesi için gerekli Seedhex string Key'leri yeniden üretmek için kullanılır Yerel bilgisayarınıza indirin:
scp root@SUNUCU_IP:/opt/espresso/keys/0.env ./espresso-keys-yedek.env⚠️ Private key'lerinizi veya seed'inizi asla kimseyle paylaşmayın.
⚠️ Her BLS key yalnızca bir kez Ethereum mainnet'e kayıt edilebilir.
Adım 5 — Metadata JSON Dosyası Oluşturma
Validator metadata'nız herkese açık olarak yayınlanır ve Espresso staking dashboard'unda görüntülenir. Sunucunuzda nginx kurulu ve çalışıyor olmalıdır.
Nginx kurulu değilse önce kurun:
apt-get install -y nginx && systemctl enable nginx && systemctl start nginx
Sunucunuzun public IPv4 adresini öğrenin:
curl -s -4 ifconfig.me
Metadata dosyasını oluşturun (değerleri kendi bilgilerinizle değiştirin):
mkdir -p /var/www/html/espresso && cat > /var/www/html/espresso/metadata.json << 'EOF'
{
"pub_key": "BLS_VER_KEY~BURAYA_PUBLIC_STAKING_KEY_YAZIN",
"name": "ValidatorAdiniz",
"description": "Açıklamanız",
"company_name": "Şirket Adınız",
"company_website": "https://websiteniz.com"
}
EOF
BLS_VER_KEY~BURAYA_PUBLIC_STAKING_KEY_YAZIN yerine Adım 4'teki ESPRESSO_SEQUENCER_PUBLIC_STAKING_KEY değerini yazın.
Erişilebilir olduğunu test edin:
curl -s http://SUNUCU_IP/espresso/metadata.json
Beklenen çıktı: Az önce oluşturduğunuz JSON içeriği.
💡
pub_keyalanı kayıtlı BLS key'inizle eşleşmelidir — bu, dashboard'da taklit edilmenizi engeller.
Validator Logosu Ekleme (Opsiyonel)
Espresso staking dashboard'unda logonuzu görüntülemek için metadata dosyasına icon alanı ekleyebilirsiniz.
1. Logo görseli hazırlayın (JPG veya PNG, minimum 400x400px önerilir) ve sunucuya gönderin:
scp /yerel/yol/logo.jpg root@SUNUCU_IP:/var/www/html/espresso/logo.jpg
2. ImageMagick kurarak icon boyutlarını oluşturun:
apt-get install -y imagemagick && \
cd /var/www/html/espresso/ && \
convert logo.jpg -resize 14x14 [email protected] && \
convert logo.jpg -resize 28x28 [email protected] && \
convert logo.jpg -resize 42x42 [email protected] && \
convert logo.jpg -resize 24x24 [email protected] && \
convert logo.jpg -resize 48x48 [email protected] && \
convert logo.jpg -resize 72x72 [email protected] && \
chown www-data:www-data icon-*.png && \
chmod 644 icon-*.png
3. metadata.json dosyasını icon URL'leriyle güncelleyin:
cat > /var/www/html/espresso/metadata.json << 'EOF'
{
"pub_key": "BLS_VER_KEY~BURAYA_PUBLIC_STAKING_KEY_YAZIN",
"name": "ValidatorAdiniz",
"description": "Açıklamanız",
"company_name": "Şirket Adınız",
"company_website": "https://websiteniz.com",
"client_version": "20260710",
"icon": {
"14x14": {
"@1x": "https://DOMAININIZ/espresso/[email protected]",
"@2x": "https://DOMAININIZ/espresso/[email protected]",
"@3x": "https://DOMAININIZ/espresso/[email protected]"
},
"24x24": {
"@1x": "https://DOMAININIZ/espresso/[email protected]",
"@2x": "https://DOMAININIZ/espresso/[email protected]",
"@3x": "https://DOMAININIZ/espresso/[email protected]"
}
}
}
EOF
⚠️ Icon URL'leri HTTPS olmalıdır —
http://ile yazılan URL'ler staking dashboard tarafından render edilmez.
💡 Node restart gerekmez — metadata değişiklikleri anında yansır.
4. Yayınlamadan önce metadata'yı doğrulayın:
docker run --rm \
ghcr.io/espressosystems/espresso-sequencer/staking-cli:main \
staking-cli preview-metadata --metadata-uri http://SUNUCU_IP/espresso/metadata.json
Adım 6 — Ethereum Cüzdanı Hazırlama
Bu validator için özel bir Ethereum cüzdanı oluşturmanız gerekir. Mevcut cüzdanlarınızı kullanmayın.
- MetaMask'ta (veya başka bir Ethereum cüzdanında) yeni bir cüzdan oluşturun
- 12 kelimelik seed phrase'i güvenli bir yere kaydedin
- Ethereum adresini not edin (
0xile başlar) - Bu adrese 0.01–0.02 ETH (Ethereum Mainnet) gönderin (gas ücreti için)
⚠️ Kayıt işlemi yaklaşık 300.000 gas harcar (~güncel fiyatlarla $1–2).
⚠️ Her Ethereum adresi yalnızca bir validator kaydedebilir.
⚠️ ETH'yi yalnızca Ethereum Mainnet üzerinden gönderin (BSC, Polygon vb. zincirlerde değil).
Adım 7 — Ethereum RPC Endpoint Alma
Validator'ın L1'i okuyabilmesi için bir Ethereum Mainnet RPC endpoint'ine ihtiyacınız var.
Tavsiye edilen: Infura (ücretsiz plan — günde 3M kredi, fazlasıyla yeterli)
- infura.io adresine gidin ve ücretsiz hesap oluşturun
- Yeni proje oluşturun → Ethereum seçin
- API key'inizi kopyalayın
Endpoint'leriniz şu şekilde olacak:
- HTTP:
https://mainnet.infura.io/v3/API_KEY - WebSocket:
wss://mainnet.infura.io/ws/v3/API_KEY
💡 Normal bir Espresso node'u günde yaklaşık 15.000–20.000 API isteği yapar — ücretsiz plan limitinin çok altında.
🔄 Alternatif provider'lar: Staking dashboard'da yüksek miss oranı görüyorsanız, bunun sebebi L1 provider'ın gecikmesi veya zaman zaman 401/timeout hataları olabilir. Bu durumda ValidationCloud veya Tenderly (her ikisi de cömert ücretsiz plan sunuyor) gibi alternatiflere geçmek yardımcı olabilir. Adım 9'daki
L1_PROVIDER/L1_WS_PROVIDERdeğerlerini yeni endpoint'lerle değiştirip servisi restart etmeniz yeterli — yeniden kayıt gerekmez.
Adım 8 — Validator'ü Ethereum'a Kayıt Etme
Bu adım, validator'ünüzü Ethereum mainnet'teki Espresso stake table contract'ına kayıt eder. Bu işlemi yalnızca bir kez yapmanız gerekir.
Kayıt komutunu çalıştırın (tüm yer tutucu değerleri kendinizinkilerle değiştirin):
docker run --rm \
-e MNEMONIC="on iki kelimelik seed phrase buraya yazilir" \
-e ACCOUNT_INDEX=0 \
-e L1_PROVIDER="https://mainnet.infura.io/v3/API_KEY" \
-e STAKE_TABLE_ADDRESS="0xCeF474D372B5b09dEfe2aF187bf17338Dc704451" \
-e CONSENSUS_PRIVATE_KEY="BLS_SIGNING_KEY~PRIVATE_STAKING_KEY" \
-e STATE_PRIVATE_KEY="SCHNORR_SIGNING_KEY~PRIVATE_STATE_KEY" \
ghcr.io/espressosystems/espresso-sequencer/staking-cli:main \
staking-cli register-validator \
--commission 10.00 \
--metadata-uri "http://SUNUCU_IP/espresso/metadata.json"
| Parametre | Açıklama |
|---|---|
MNEMONIC | 12 kelimelik seed phrase'iniz (tırnak içinde, boşlukla ayrılmış) |
ACCOUNT_INDEX | Türetme indeksi, ilk hesap için 0 kullanın |
L1_PROVIDER | Infura HTTP RPC URL'niz |
CONSENSUS_PRIVATE_KEY | Adım 4'teki BLS_SIGNING_KEY~... değeri |
STATE_PRIVATE_KEY | Adım 4'teki SCHNORR_SIGNING_KEY~... değeri |
--commission | Komisyon oranınız (0.00–100.00) |
--metadata-uri | Adım 5'teki metadata.json URL'niz |
Başarılı çıktı:
Success! transaction hash: 0x...
event: ValidatorRegisteredV2 { account: 0xADRESINIZ, blsVK: BLS_VER_KEY~..., ... }
Komutu çalıştırdıktan sonra terminal geçmişini hemen temizleyin:
history -c && history -w
⚠️ Çıktıdaki Ethereum hesap adresinizi not edin — Bootstrap Program formunda buna ihtiyacınız olacak.
Adım 9 — Environment Dosyası Oluşturma
Node için environment konfigürasyon dosyasını oluşturun:
cat > /opt/espresso/espresso.env << 'EOF'
ESPRESSO_SEQUENCER_CDN_ENDPOINT=cdn.main.net.espresso.network:1737
ESPRESSO_STATE_RELAY_SERVER_URL=https://state-relay.main.net.espresso.network
ESPRESSO_SEQUENCER_GENESIS_FILE=/genesis/mainnet.toml
ESPRESSO_SEQUENCER_EMBEDDED_DB=true
RUST_LOG=warn,libp2p=off
RUST_LOG_FORMAT=json
ESPRESSO_SEQUENCER_STATE_PEERS=https://query.main.net.espresso.network
ESPRESSO_SEQUENCER_CONFIG_PEERS=https://cache.main.net.espresso.network
ESPRESSO_SEQUENCER_L1_PROVIDER=https://mainnet.infura.io/v3/API_KEY
ESPRESSO_SEQUENCER_L1_WS_PROVIDER=wss://mainnet.infura.io/ws/v3/API_KEY
ESPRESSO_SEQUENCER_API_PORT=8585
ESPRESSO_SEQUENCER_STORAGE_PATH=/store
ESPRESSO_SEQUENCER_KEY_FILE=/keys/0.env
ESPRESSO_SEQUENCER_LIBP2P_BIND_ADDRESS=0.0.0.0:9000
ESPRESSO_SEQUENCER_LIBP2P_ADVERTISE_ADDRESS=SUNUCU_IP:9000
ESPRESSO_NODE_STORAGE_PATH=/store
ESPRESSO_NODE_TELEMETRY_LOGS_ENABLE=true
ESPRESSO_NODE_TELEMETRY_METRICS_ENABLE=true
ESPRESSO_NODE_IDENTITY_COMPANY_NAME=Şirket Adınız
ESPRESSO_NODE_IDENTITY_NODE_NAME=ValidatorAdiniz
EOF
Değiştirin:
API_KEY→ Infura API key'iniz (hem HTTP hem WS satırlarında)SUNUCU_IP→ Sunucunuzun public IPv4 adresiESPRESSO_NODE_IDENTITY_COMPANY_NAME/ESPRESSO_NODE_IDENTITY_NODE_NAME→ operatör kimliğiniz (Adım 5'tekimetadata.jsondosyasındakicompany_name/nameile aynı değerler)
💡
20260710sürümünden itibaren:ESPRESSO_SEQUENCER_STORAGE_PATHset edilmişse,ESPRESSO_NODE_STORAGE_PATHde aynı değerle set edilmelidir. Telemetry değişkenleri Foundation'ın log/metric verilerinizi ağ sağlığı izleme amacıyla toplamasını sağlar — açmanız önerilir ama zorunlu değil. Identity değişkenleri node'unuzu Foundation tarafındaki dashboard'larda etiketlemek için kullanılır.
Dosyayı doğrulayın:
cat /opt/espresso/espresso.env
Adım 10 — Systemd Servis Dosyası Oluşturma
Docker container'ını yöneten systemd servis dosyasını oluşturun:
cat > /etc/systemd/system/espresso.service << 'EOF'
[Unit]
Description=Espresso Sequencer Node
After=docker.service
Requires=docker.service
[Service]
TimeoutStartSec=0
Restart=always
RestartSec=10
ExecStartPre=-/usr/bin/docker stop espresso
ExecStartPre=-/usr/bin/docker rm espresso
ExecStart=/usr/bin/docker run --name espresso \
--env-file /opt/espresso/espresso.env \
-v /opt/espresso/keys:/keys \
-v /opt/espresso/store:/store \
-p 8585:8585 \
-p 9000:9000/udp \
ghcr.io/espressosystems/espresso-sequencer/sequencer:20260710 \
sequencer -- http -- catchup -- status
ExecStop=/usr/bin/docker stop espresso
[Install]
WantedBy=multi-user.target
EOF
Adım 11 — Node'u Başlatma
Servisi etkinleştirin ve başlatın:
systemctl daemon-reload && \
systemctl enable espresso && \
systemctl start espresso
Servis durumunu kontrol edin:
systemctl status espresso
Beklenen çıktı: active (running).
Canlı logları görüntüleyin:
journalctl -u espresso -n 50 --no-pager
💡 İlk başlatmada node, peer'lardan network config'ini yükler. Bu 10–30 saniye sürebilir. Logda
loaded configve her saniye artan view numaraları göreceksiniz — bu normal ve beklenen bir davranıştır.
Adım 12 — Node Sağlığını Doğrulama
Healthcheck (tüm modüller 200 dönmeli):
curl -s http://localhost:8585/healthcheck
Beklenen çıktı:
{"status":"available","modules":{"catchup":{"0":200,"1":200},"state-signature":{"0":200,"1":200},"status":{"0":200,"1":200}}}
Validator'ınızın dashboard'da göründüğünü doğrulayın:
- stake.espresso.network adresine gidin
- Ethereum adresinizi arayın:
0xADRESINIZ - Validator'ünüz
INACTIVEdurumunda görünmeli (bu doğrudur — delegation aldıktan sonraACTIVEolur)
✅ Normal olan durumlar:
WARNseviyesinde loglar — beklenen davranışVote sending timed out— node katılmaya çalışıyor ancak henüz delegation yokLCV3 signature posted by nodes not on the stake table— delegation gelene kadar beklenen- Her ~1 saniyede artan view numaraları — node'un zinciri takip ettiğini gösterir
❌ Normal olmayan durumlar:
- Servisin
failedveyainactive (dead)göstermesi- Healthcheck'in 200 dönmemesi
- View numaralarının 5 dakikadan fazla sabit kalması
Adım 13 — Bootstrap Program'a Başvurma
Espresso Foundation Validator Bootstrap Program, seçilen 30'a kadar validator'a başlangıç olarak 1.000.000 ESP delegation sunmaktadır.
Başvuru formu: Bootstrap Program Başvuru Formu
| Alan | Değer |
|---|---|
| Operator name | Operatör/şirket adınız |
| Operator website | Website URL'niz |
| Primary contact name | Adınız |
| Primary contact email | E-posta adresiniz (opsiyonel) |
| Telegram / Discord handle | Handle'ınız |
| Ethereum account | Adım 8'de kullanılan adres (örn. 0xCaA51...) |
| Region | Sunucunuzun bölgesi (örn. EU - Finlandiya) |
| Validator experience | Altyapı deneyiminizi açıklayın |
💡 Foundation, operatörleri uptime, kaçırılan slotlar, yanıt süresi ve yazılım güncelleme hızına göre değerlendirir. Her 6 ayda bir, en iyi performans gösterenler ana delegasyon programına geçme hakkı kazanır (daha büyük delegation).
Yedekleme ve Kurtarma
Yedeklenmesi Gerekenler
| Dosya / Bilgi | Kritik | Notlar |
|---|---|---|
/opt/espresso/keys/0.env | 🔴 EVET | 3 private key'i içerir — kaybolursa kurtarılamaz |
| Ethereum wallet mnemonic | 🔴 EVET | Tüm L1 işlemleri için gerekli (ödüller, komisyon, kayıt silme) |
/opt/espresso/espresso.env | 🟡 Önerilir | Infura key + sunucu IP — kolayca yeniden oluşturulabilir ama yedeklemek iyi |
Key Yedekleme
Herhangi bir keygen komutu çalıştırmadan önce mutlaka yedek alın:
cp /opt/espresso/keys/0.env /opt/espresso/keys/0.env.backup
0.env dosyasını yerel bilgisayarınıza indirin:
scp root@SUNUCU_IP:/opt/espresso/keys/0.env ~/espresso-keys-yedek.env
İçeriği bir şifre yöneticisine kaydedin (Bitwarden, 1Password vb.).
⚠️ Uyarı:
keygen --scheme x25519komutu0.envdosyasını tamamen overwrite eder. Herhangi bir keygen komutu çalıştırmadan önce mutlaka yedek alın.
Kurtarma: Yeni Sunucuya Geçiş
Sunucuya erişiminizi kaybetseniz bile 0.env yedeğiniz varsa:
- Yeni sunucuya bu rehberin 1. adımından itibaren kurulumu yapın
- Key dosyasını geri yükleyin:
scp ~/espresso-keys-yedek.env root@YENI_SUNUCU_IP:/opt/espresso/keys/0.env espresso.envdosyasındakiESPRESSO_SEQUENCER_LIBP2P_ADVERTISE_ADDRESSdeğerini yeni sunucu IP'siyle güncelleyin- Yeni sunucu IP'sini
metadata.jsondosyasına da güncelleyin (IP tabanlı URL kullanıyorsanız) - Node'u başlatın — Ethereum'a yeniden kayıt gerekmez, validator kimliğiniz korunur
Node İzleme
Servis durumunu kontrol etme:
systemctl status espresso
Son 50 log satırını görüntüleme:
journalctl -u espresso -n 50 --no-pager
Healthcheck:
curl -s http://localhost:8585/healthcheck
Bağlı peer sayısını kontrol etme:
curl -s http://localhost:8585/status/metrics | grep libp2p_num_connected_peers
Node'u yeniden başlatma:
systemctl restart espresso
Node'u durdurma:
systemctl stop espresso
Node Güncelleme
Yeni bir image versiyonu yayınlandığında (Espresso Discord'unda #mainnet-node-operator kanalından duyurulur):
- Yeni image'ı indirin:
docker pull ghcr.io/espressosystems/espresso-sequencer/sequencer:YENI_TAG
- Systemd servis dosyasındaki tag'i güncelleyin (
ESKI_TAGyerine o an çalışan tag'i yazın):
sed -i 's/sequencer:ESKI_TAG/sequencer:YENI_TAG/g' /etc/systemd/system/espresso.service
-
Sürüm notlarında yeni/yeniden adlandırılmış environment variable'lar belirtiliyorsa bunları
/opt/espresso/espresso.env'e ekleyin (eski değişkenler genelde çalışmayı sürdürür ama yeni sürüme geçmek daha sağlıklıdır). -
Yeniden yükleyin ve başlatın:
systemctl daemon-reload && systemctl restart espresso
- Başlangıç loglarında deprecated env var uyarısı olup olmadığını kontrol edin:
sleep 15 && journalctl -u espresso --no-hostname -o cat -n 200 | grep -i "warning:"
- Node'un çalıştığını ve doğru versiyonda olduğunu doğrulayın:
systemctl status espresso && \
curl -s http://localhost:8585/healthcheck && \
curl -s http://localhost:8585/v1/status/metrics | grep consensus_version
- Herkese açık metadata dosyanızdaki
client_version'ı güncelleyin:
sed -i 's/ESKI_TAG/YENI_TAG/g' /var/www/html/espresso/metadata.json
💡 Güncellemelerden haberdar olmak için Espresso Network GitHub Releases sayfasını ve Discord
#mainnet-node-operatorkanalını takip edin.⚠️ Bazı sürümler query node'lar (
querymodülünü çalıştıran node'lar) için DB migration içerir.ExecStartkomutunuzdaquerymodülü yoksa bu sizi etkilemez. Query node operatörleri güncelleme sonrası/database/migration-status'u kontrol etmeli — migration haftalar sürebilir ve migration sırasında binary'i geri almak desteklenmez.
Sorun Giderme
Dashboard'da yüksek miss oranı:
/v1/status/metrics'teconsensus_number_of_timeoutsdeğerini kontrol edin — hızla yükseliyorsa bir sorun var demektir.- Loglarda
Event sender queue overflow(ERROR seviyesi) arayın — bu, node'un internal event queue'sunun yetişemediğini gösterir, genelde aynı sunucudaki diğer servislerin CPU/RAM baskısından kaynaklanır. İlgisiz servisleri durdurupsystemctl restart espressoile queue'yu temizleyin. - Loglarda
L1 client error/401arayın — L1 RPC provider'ınız rate-limit'e girmiş veya yanlış yapılandırılmış olabilir. Adım 7'deki alternatif provider notuna bakın. - Restart sonrası
AutoNAT: probe reports this node may not be publicly reachablegenelde geçicidir — bir dakika sonra tekrar kontrol edin. Kalıcıysa9000/UDPportunun açık olduğunu veESPRESSO_SEQUENCER_LIBP2P_ADVERTISE_ADDRESS'in gerçek public IP'nizle eşleştiğini doğrulayın.
Node hiç imzalamıyor:
/v1/status/metricsüzerindenconsensus_last_voted_view'ınconsensus_current_view'a yakın olduğunu doğrulayın (1-2 fark).0.envdosyasındaki BLS key'in kayıt sırasında kullanılan key ile eşleştiğini doğrulayın — dikkatsizce çalıştırılan birkeygenkomutu0.env'i sessizce overwrite edebilir (Yedekleme ve Kurtarma bölümüne bakın).
Yazar Hakkında
Bu rehber HazenNetworkSolutions tarafından hazırlanmıştır.
🌐 hazennetworksolutions.com