Solana Mainnet Validator - Hızlı başlangıç
Giriş
Solana mainnet validatörünü dağıtmak için SLV komut satırı aracını kullanacaksınız.
Bu hızlı başlangıç kılavuzu, hot spare olarak bir mainnet validatörünün nasıl başlatılıp dağıtılacağını açıklar.
Sunucunuzda temiz kurulmuş Ubuntu 24.04 LTS bulunmalıdır.
Bare Metal Sunucu Hazırlama
Solana düğümünü VPS veya sanal makinelerde (VM) çalıştırmak mümkün olsa da en iyi performansı ve kararlı bir işletimi elde etmek zordur. Solana resmi olarak bare metal sunucuların kullanılmasını önerir.
Mainnet validatörleri, ağ yoğunluğu sırasında da kararlı kalacak şekilde hazırlanmalıdır.
Aşağıda resmi Solana / Agave / Firedancer belgelerine dayanan bir kılavuz yer almaktadır.
Aşağıda resmi Solana / Agave / Firedancer belgelerine dayanan bir kılavuz yer almaktadır.
Agave Validator (resmi gereklilikler ve öneriler)
SOL gereksinimleri
- Her epoch sınırında Oy Hesabı, en az rent-exempt asgari tutarı artı bir Validator Admission Ticket kadar bakiye tutmalıdır (slot süresi ayarı 200 ms iken 0.8 SOL)
- Validator Admission Ticket, her epoch'un ilk blokunda Oy Hesabı'ndan düşülür
- rent-exempt asgari tutarını
solana rent 3762ile kontrol edin (3762, Oy Hesabı'nın bayt cinsinden boyutudur) - Identity Key artık oy başına ücret ödemez — Alpenglow'da oylar artık işlem olarak gönderilmez
Donanım gereksinimleri (genel kılavuz)
| Bileşen | Validatör | RPC Düğümü (referans) |
|---|---|---|
| CPU | 2.8GHz+ / AMD Gen3+ / Intel Ice Lake+ / SHA uzantıları / AVX2 | 16 çekirdek / 32 iş parçacığı+ |
| RAM | 256GB+ | 512GB+ |
| Disk | NVMe Gen3 x4 veya üzeri / Accounts-Ledger-Snapshots ayrımı önerilir | Daha büyük kapasite önerilir |
| GPU | Gerekli değil | Gerekli değil |
Not:
Saat hızı ve efektif işlem kapasitesi, çekirdek sayısından daha önemli kabul edilir.
Firedancer (Frankendancer)
Firedancer (Frankendancer) şu anda Agave'ye bağlı olduğundan,
en azından Agave için önerilen yapılandırmayı veya daha üstünü esas alır.
en azından Agave için önerilen yapılandırmayı veya daha üstünü esas alır.
Minimum
- 24 çekirdekli CPU @ >2.8GHz
- 256GB RAM
- 2TB NVMe (High TBW)
Önerilen
- 32 çekirdekli CPU @ >3GHz (AVX512 destekli)
- 512GB RAM (ECC)
- Accounts / Ledger ayrımı
- 1Gbps veya üzeri ağ bant genişliği
Maliyet-performans dengesi iyi bir kurulum için 24 çekirdekli CPU ve 384GB RAM ile Agave pratik bir ölçüttür.
slv v init komutunu çalıştırdığınızda, bare metal sunucunuzun kurulu olup olmadığı sorulur:bash
➜ slv v init
? Select Solana Network (testnet) › mainnet
? 🛡️ Do you have a Solana Node Compatible Server? (no)
❯ yes
no➜ slv v init
? Select Solana Network (testnet) › mainnet
? 🛡️ Do you have a Solana Node Compatible Server? (no)
❯ yes
noBu kılavuz
yes seçtiğinizi varsayar.Henüz bare metal sunucunuzu hazırlamadıysanız lütfen şu kılavuza bakın: Bare Metal Sunucu Kurulum Kılavuzu.
Ayrıca şu kaynakları da faydalı bulabilirsiniz:
Solana Mainnet Firedancer Jito Validatörünü Dağıtma
Yeni SLV kurulumlarında kimlik anahtarı olarak her zaman
unstaked-keypair.json kullanılır.
Bu, çift oylamayı ve diğer sorunları önlemeye yönelik en iyi uygulamadır.Bu nedenle dağıtımdan sonra yetkili kimlik anahtarını ayarlamak için lütfen
slv v set:identity komutunu kullanın.Çoğu mainnet validatör operasyonunda kimlik anahtarını değiştirmek için
slv v switch komutunu kullanırsınız.
Kesintisiz taşıma için lütfen bu kılavuza bakın.Solana Ağı Seçimi
Dağıtmak istediğiniz Solana ağını seçin.
bash
slv v init
? Select Solana Network (mainnet)
testnet
❯ mainnetslv v init
? Select Solana Network (mainnet)
testnet
❯ mainnetSunucunun Varsayılan Kullanıcı Adını Girin
Varsayılan kullanıcı adı çoğunlukla
ubuntu veya root olur.bash
? What's the user for the server? (ubuntu) › ubuntu? What's the user for the server? (ubuntu) › ubuntuSunucunun IP Adresini Girin
Sunucunun IP adresini girin.
bash
? What's the IP address of the server? ›? What's the IP address of the server? ›SSH için RSA Anahtarını Ayarlayın
※ Lütfen RSA anahtarınızın yolunu ayarlayın. Varsayılan yol
~/.ssh/id_rsa şeklindedir.bash
? What's the path to your RSA key? (~/.ssh/id_rsa) › ~/.ssh/id_rsa
🔍 Checking SSH connection...
✔︎ SSH connection succeeded? What's the path to your RSA key? (~/.ssh/id_rsa) › ~/.ssh/id_rsa
🔍 Checking SSH connection...
✔︎ SSH connection succeededArdından SLV sunucuyla bağlantıyı kontrol eder. Bağlantı
başarılı olursa bir sonraki adım gösterilir.
Solana Validatör Türü Seçimi
Solana validatörünün türünü seçin.
bash
? Select Validator Type (firedancer-jito)
agave
jito
jito-bam
firedancer-agave
❯ firedancer-jito? Select Validator Type (firedancer-jito)
agave
jito
jito-bam
firedancer-agave
❯ firedancer-jitoKomisyon Oranını Ayarlayın
Validatörünüz için komisyon oranını ayarlayın.
※ 1000, %10'a eşittir.
bash
? Enter Commission BPS (Max 1000 = 10%) (1000)? Enter Commission BPS (Max 1000 = 10%) (1000)Solana Validatör Kimlik Anahtarını Oluşturun veya Ayarlayın
Yeni bir kimlik anahtarı oluşturabilir veya mevcut bir kimlik anahtarı ayarlayabilirsiniz.
Bu örnek, "epics-sub" adıyla mevcut bir kimlik anahtarının nasıl ayarlanacağını gösterir.
bash
? Do you want to create a new identity key now? (Y/n) › No
? Please Enter Your Identity Public Key › KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM
? Enter Inventory Name (KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM) › epics-sub
⚠️ Please place your identity key in
~/.slv/keys/KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM.json
.
.
✔︎ Success
✔ Inventory updated to ~/.slv/inventory.yml
✔ Successfully created solv user on x.x.x.x? Do you want to create a new identity key now? (Y/n) › No
? Please Enter Your Identity Public Key › KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM
? Enter Inventory Name (KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM) › epics-sub
⚠️ Please place your identity key in
~/.slv/keys/KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM.json
.
.
✔︎ Success
✔ Inventory updated to ~/.slv/inventory.yml
✔ Successfully created solv user on x.x.x.xLütfen kimlik anahtarınızı
~/.slv/keys/<your-pubkey>.json konumuna yerleştirin.Otomatik Bölge Tespiti
Ardından sistem, yapılandırdığınız düğümden her block engine'e ping atarak en yakın bölgeyi otomatik olarak tespit eder. Gerçek ping değerlerini ölçerek en uygun bölgeyi seçebilirsiniz.
bash
✔ Inventory updated to ~/.slv/inventory.mainnet.validators.yml
📍 Measuring latencies from x.x.x.x to mainnet regions...
Pinging Amsterdam (amsterdam.mainnet.block-engine.jito.wtf)...
Pinging Dublin (dublin.mainnet.block-engine.jito.wtf)...
Pinging Frankfurt (frankfurt.mainnet.block-engine.jito.wtf)...
Pinging London (london.mainnet.block-engine.jito.wtf)...
Pinging New York (ny.mainnet.block-engine.jito.wtf)...
Pinging Salt Lake City (slc.mainnet.block-engine.jito.wtf)...
Pinging Singapore (singapore.mainnet.block-engine.jito.wtf)...
Pinging Tokyo (tokyo.mainnet.block-engine.jito.wtf)...
✅ London: 8.801 ms
✅ Dublin: 12.946 ms
✅ Frankfurt: 5.888 ms
✅ Amsterdam: 0.169 ms
✅ New York: 74.321 ms
✅ Salt Lake City: 115.577 ms
✅ Singapore: 154.200 ms
✅ Tokyo: 229.989 ms
🎯 Nearest region: 🇳🇱 Amsterdam
Latency: 0.169 ms
Block Engine: https://amsterdam.mainnet.block-engine.jito.wtf
Shred Receiver: 74.118.140.240:1002
Relayer: http://amsterdam.mainnet.relayer.jito.wtf:8100
NTP Server: ntp.amsterdam.jito.wtf✔ Inventory updated to ~/.slv/inventory.mainnet.validators.yml
📍 Measuring latencies from x.x.x.x to mainnet regions...
Pinging Amsterdam (amsterdam.mainnet.block-engine.jito.wtf)...
Pinging Dublin (dublin.mainnet.block-engine.jito.wtf)...
Pinging Frankfurt (frankfurt.mainnet.block-engine.jito.wtf)...
Pinging London (london.mainnet.block-engine.jito.wtf)...
Pinging New York (ny.mainnet.block-engine.jito.wtf)...
Pinging Salt Lake City (slc.mainnet.block-engine.jito.wtf)...
Pinging Singapore (singapore.mainnet.block-engine.jito.wtf)...
Pinging Tokyo (tokyo.mainnet.block-engine.jito.wtf)...
✅ London: 8.801 ms
✅ Dublin: 12.946 ms
✅ Frankfurt: 5.888 ms
✅ Amsterdam: 0.169 ms
✅ New York: 74.321 ms
✅ Salt Lake City: 115.577 ms
✅ Singapore: 154.200 ms
✅ Tokyo: 229.989 ms
🎯 Nearest region: 🇳🇱 Amsterdam
Latency: 0.169 ms
Block Engine: https://amsterdam.mainnet.block-engine.jito.wtf
Shred Receiver: 74.118.140.240:1002
Relayer: http://amsterdam.mainnet.relayer.jito.wtf:8100
NTP Server: ntp.amsterdam.jito.wtfSolana Validatör Oy Hesabı Anahtarını Oluşturun veya Ayarlayın
Yeni bir oy hesabı anahtarı oluşturabilir veya mevcut bir oy hesabı anahtarını ayarlayabilirsiniz.
Bu örnek, mevcut bir oy hesabı anahtarının nasıl ayarlanacağını gösterir.
bash
? Do you want to create a new vote account key now? (Y/n) › No
? Please Enter Your Vote Account Public Key > <your-vote-account>? Do you want to create a new vote account key now? (Y/n) › No
? Please Enter Your Vote Account Public Key > <your-vote-account>Validatör düğümü bilgileri
~/.slv/inventory.mainnet.validators.yml dosyasına kaydedilir.bash
✔︎ Success
✔ Inventory updated to ~/.slv/inventory.mainnet.validators.yml
✔ Successfully created solv user on epics-sub
✔︎ Validator Mainnet Config Saved To ~/.slv/inventory.mainnet.validators.yml
Now you can deploy with:
$ slv v deploy -n mainnet -p epics-sub✔︎ Success
✔ Inventory updated to ~/.slv/inventory.mainnet.validators.yml
✔ Successfully created solv user on epics-sub
✔︎ Validator Mainnet Config Saved To ~/.slv/inventory.mainnet.validators.yml
Now you can deploy with:
$ slv v deploy -n mainnet -p epics-subValidatörü Dağıtın
Yapılandırmayı onayladığınızda dağıtım başlar.
bash
slv v deploy -n mainnet -p epics-subslv v deploy -n mainnet -p epics-subbash
Your Mainnet Validators Settings:
┌────────────────┬──────────────────────────────────────────────┐
│ Identity Key │ KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM │
├────────────────┼──────────────────────────────────────────────┤
│ Vote Key │ EpicsoqLdDP8qRn3wQRKTSKAXbjK9dUgFfNPRQS77MQD │
├────────────────┼──────────────────────────────────────────────┤
│ Authority Key │ authAccount │
├────────────────┼──────────────────────────────────────────────┤
│ IP │ x.x.x.x │
├────────────────┼──────────────────────────────────────────────┤
│ Validator Type │ firedancer-jito │
├────────────────┼──────────────────────────────────────────────┤
│ Version │ 0.712.30006 │
└────────────────┴──────────────────────────────────────────────┘
? Do you want to continue? (Y/n) › Yes
.
.
.
Successfully Deployed RPC on mainnet
You can monitor your Node with the following steps:
Log in to your server with SSH:
ssh [email protected]
Then, run the following command to monitor your node:
$ solv mYour Mainnet Validators Settings:
┌────────────────┬──────────────────────────────────────────────┐
│ Identity Key │ KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM │
├────────────────┼──────────────────────────────────────────────┤
│ Vote Key │ EpicsoqLdDP8qRn3wQRKTSKAXbjK9dUgFfNPRQS77MQD │
├────────────────┼──────────────────────────────────────────────┤
│ Authority Key │ authAccount │
├────────────────┼──────────────────────────────────────────────┤
│ IP │ x.x.x.x │
├────────────────┼──────────────────────────────────────────────┤
│ Validator Type │ firedancer-jito │
├────────────────┼──────────────────────────────────────────────┤
│ Version │ 0.712.30006 │
└────────────────┴──────────────────────────────────────────────┘
? Do you want to continue? (Y/n) › Yes
.
.
.
Successfully Deployed RPC on mainnet
You can monitor your Node with the following steps:
Log in to your server with SSH:
ssh [email protected]
Then, run the following command to monitor your node:
$ solv mİşlem tamam! Solana validatörünüz artık dağıtıldı. Solana ağıyla
senkronize olması biraz zaman alacaktır.
Hata Ayıklama ve İzleme
Dağıtımdan sonra Solana RPC düğümü içinde hata ayıklama ve izleme yapabilirsiniz.
Solana RPC düğümünün durumunu aşağıdaki komutlarla kontrol edebilirsiniz:
bash
$ solv m$ solv msolv, agave-validator -l /mnt/ledger komutunun takma adıdır.
Bu ayar, RPC düğümünün dağıtımı sırasında ~/.profile dosyasına eklenir.Kimlik Anahtarını Değiştirin
Dağıtımdan sonra unstaked anahtarı yetkili kimlik anahtarıyla değiştirmeniz gerekir.
bash
slv v set:identity -n mainnet --pubkey epics-subslv v set:identity -n mainnet --pubkey epics-subBu komut, kimlik anahtarını yetkili kimlik anahtarıyla değiştirir.
※ Kesintisiz taşıma için lütfen bu kılavuza bakın.
SLV Validatör Komutları
bash
slv validator --help
Usage: slv validator
Version: 0.9.700
Description:
🛠️ Manage Solana Validator Nodes 🛠️
Options:
-h, --help - Show this help.
Commands:
init - 🚀 Initialize a new validator configuration
deploy - 📦 Deploy Validators
list - 📋 List validators
set:identity - 🪪 Set Validator Identity
set:unstaked - 📴 Set Validator Identity to Unstaked Key
setup:firedancer - 🔥 Setup/Update Firedancer Validator
update:firedancer - 🔄 Update Firedancer Version
build:solana-cli - 🛠️ Build Solana CLI from Source
install:solana - ➡️ Install Solana CLI Binary
update:script - ⚙️ Update Validator Startup Config
update:jinja - 🧩 Update Jinja Template
start - 🟢 Start Validator
stop - 🔴 Stop Validator
restart - ♻️ Restart Validator
cleanup - 🧹 Cleanup Validator - Remove Ledger/Snapshot Unnecessary Files
get:snapshot - 💾 Download Snapshot with aria2c
gen:vote-account - 🗳️ Generate Vote Account
switch - 🔁 Switch Validator Identity - No DownTime Migrationslv validator --help
Usage: slv validator
Version: 0.9.700
Description:
🛠️ Manage Solana Validator Nodes 🛠️
Options:
-h, --help - Show this help.
Commands:
init - 🚀 Initialize a new validator configuration
deploy - 📦 Deploy Validators
list - 📋 List validators
set:identity - 🪪 Set Validator Identity
set:unstaked - 📴 Set Validator Identity to Unstaked Key
setup:firedancer - 🔥 Setup/Update Firedancer Validator
update:firedancer - 🔄 Update Firedancer Version
build:solana-cli - 🛠️ Build Solana CLI from Source
install:solana - ➡️ Install Solana CLI Binary
update:script - ⚙️ Update Validator Startup Config
update:jinja - 🧩 Update Jinja Template
start - 🟢 Start Validator
stop - 🔴 Stop Validator
restart - ♻️ Restart Validator
cleanup - 🧹 Cleanup Validator - Remove Ledger/Snapshot Unnecessary Files
get:snapshot - 💾 Download Snapshot with aria2c
gen:vote-account - 🗳️ Generate Vote Account
switch - 🔁 Switch Validator Identity - No DownTime Migration