Hazen Network SolutionsHazen Guides
Espresso Network Mainnet 1 logo

mainnet

Espresso Network Mainnet 1

🟤 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.

Ubuntu Docker Espresso License: MIT

hazennetworksolutions.com


Yazar: HazenNetworkSolutions
Ağ: Espresso Mainnet 1
Image Tag: 20260710
Son Güncelleme: 14 Temmuz 2026


İçindekiler


Donanım Gereksinimleri

BileşenMinimum
İşletim SistemiUbuntu 22.04+
CPU1 Core (herhangi bir modern işlemci)
RAM8 GB
DepolamaYok denecek kadar az (kilobyte seviyesi)
Stabil internet, public IP zorunlu
Açık Portlar8585/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
DizinAmacı
/opt/espresso/keysBLS ve Schnorr private key'lerini saklar
/opt/espresso/storeNode'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/sequencer olarak gösteriliyor, ancak doğru registry path'i yukarıda kullanılan espresso-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 EkAçı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 stringKey'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_key alanı 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ırhttp:// 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.

  1. MetaMask'ta (veya başka bir Ethereum cüzdanında) yeni bir cüzdan oluşturun
  2. 12 kelimelik seed phrase'i güvenli bir yere kaydedin
  3. Ethereum adresini not edin (0x ile başlar)
  4. 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)

  1. infura.io adresine gidin ve ücretsiz hesap oluşturun
  2. Yeni proje oluşturun → Ethereum seçin
  3. 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_PROVIDER değ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"
ParametreAçıklama
MNEMONIC12 kelimelik seed phrase'iniz (tırnak içinde, boşlukla ayrılmış)
ACCOUNT_INDEXTüretme indeksi, ilk hesap için 0 kullanın
L1_PROVIDERInfura HTTP RPC URL'niz
CONSENSUS_PRIVATE_KEYAdım 4'teki BLS_SIGNING_KEY~... değeri
STATE_PRIVATE_KEYAdım 4'teki SCHNORR_SIGNING_KEY~... değeri
--commissionKomisyon oranınız (0.00–100.00)
--metadata-uriAdı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 adresi
  • ESPRESSO_NODE_IDENTITY_COMPANY_NAME / ESPRESSO_NODE_IDENTITY_NODE_NAME → operatör kimliğiniz (Adım 5'teki metadata.json dosyasındaki company_name / name ile aynı değerler)

💡 20260710 sürümünden itibaren: ESPRESSO_SEQUENCER_STORAGE_PATH set edilmişse, ESPRESSO_NODE_STORAGE_PATH de 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 config ve 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:

  1. stake.espresso.network adresine gidin
  2. Ethereum adresinizi arayın: 0xADRESINIZ
  3. Validator'ünüz INACTIVE durumunda görünmeli (bu doğrudur — delegation aldıktan sonra ACTIVE olur)

Normal olan durumlar:

  • WARN seviyesinde loglar — beklenen davranış
  • Vote sending timed out — node katılmaya çalışıyor ancak henüz delegation yok
  • LCV3 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 failed veya inactive (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

AlanDeğer
Operator nameOperatör/şirket adınız
Operator websiteWebsite URL'niz
Primary contact nameAdınız
Primary contact emailE-posta adresiniz (opsiyonel)
Telegram / Discord handleHandle'ınız
Ethereum accountAdım 8'de kullanılan adres (örn. 0xCaA51...)
RegionSunucunuzun bölgesi (örn. EU - Finlandiya)
Validator experienceAltyapı 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 / BilgiKritikNotlar
/opt/espresso/keys/0.env🔴 EVET3 private key'i içerir — kaybolursa kurtarılamaz
Ethereum wallet mnemonic🔴 EVETTüm L1 işlemleri için gerekli (ödüller, komisyon, kayıt silme)
/opt/espresso/espresso.env🟡 ÖnerilirInfura 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 x25519 komutu 0.env dosyası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:

  1. Yeni sunucuya bu rehberin 1. adımından itibaren kurulumu yapın
  2. Key dosyasını geri yükleyin:
    scp ~/espresso-keys-yedek.env root@YENI_SUNUCU_IP:/opt/espresso/keys/0.env
    
  3. espresso.env dosyasındaki ESPRESSO_SEQUENCER_LIBP2P_ADVERTISE_ADDRESS değerini yeni sunucu IP'siyle güncelleyin
  4. Yeni sunucu IP'sini metadata.json dosyasına da güncelleyin (IP tabanlı URL kullanıyorsanız)
  5. 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):

  1. Yeni image'ı indirin:
docker pull ghcr.io/espressosystems/espresso-sequencer/sequencer:YENI_TAG
  1. Systemd servis dosyasındaki tag'i güncelleyin (ESKI_TAG yerine o an çalışan tag'i yazın):
sed -i 's/sequencer:ESKI_TAG/sequencer:YENI_TAG/g' /etc/systemd/system/espresso.service
  1. 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).

  2. Yeniden yükleyin ve başlatın:

systemctl daemon-reload && systemctl restart espresso
  1. 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:"
  1. 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
  1. 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-operator kanalını takip edin.

⚠️ Bazı sürümler query node'lar (query modülünü çalıştıran node'lar) için DB migration içerir. ExecStart komutunuzda query modü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'te consensus_number_of_timeouts değ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 durdurup systemctl restart espresso ile queue'yu temizleyin.
  • Loglarda L1 client error / 401 arayı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 reachable genelde geçicidir — bir dakika sonra tekrar kontrol edin. Kalıcıysa 9000/UDP portunun açık olduğunu ve ESPRESSO_SEQUENCER_LIBP2P_ADVERTISE_ADDRESS'in gerçek public IP'nizle eşleştiğini doğrulayın.

Node hiç imzalamıyor:

  • /v1/status/metrics üzerinden consensus_last_voted_view'ın consensus_current_view'a yakın olduğunu doğrulayın (1-2 fark).
  • 0.env dosyası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 bir keygen komutu 0.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