Validator Mainnet Solana - Panduan Cepat
Pendahuluan
Untuk men-deploy validator mainnet Solana, Anda akan menggunakan alat baris perintah SLV.
Panduan cepat ini menjelaskan cara meluncurkan dan men-deploy validator mainnet sebagai hot spare.
Ubuntu 24.04 LTS harus sudah terpasang dengan instalasi bersih di server Anda.
Menyiapkan Server Bare Metal
Meskipun node Solana dapat dijalankan di VPS atau mesin virtual (VM), mencapai performa optimal dan operasi yang stabil tidaklah mudah. Solana secara resmi merekomendasikan penggunaan server bare metal.
Validator mainnet sebaiknya disiapkan agar tetap stabil saat jaringan padat.
Berikut adalah pedoman berdasarkan dokumentasi resmi Solana / Agave / Firedancer.
Berikut adalah pedoman berdasarkan dokumentasi resmi Solana / Agave / Firedancer.
Validator Agave (persyaratan resmi dan rekomendasi)
Persyaratan SOL
- Pada setiap batas epoch, Akun Vote harus memiliki saldo minimal sebesar jumlah minimum rent-exempt ditambah satu Validator Admission Ticket (0.8 SOL pada pengaturan waktu slot 200 ms)
- Validator Admission Ticket didebit dari Akun Vote pada blok pertama setiap epoch
- Periksa jumlah minimum rent-exempt dengan
solana rent 3762(3762 adalah ukuran Akun Vote dalam byte) - Identity Key tidak lagi membayar biaya per vote β di bawah Alpenglow, vote tidak lagi dikirim sebagai transaksi
Persyaratan perangkat keras (pedoman)
| Komponen | Validator | Node RPC (referensi) |
|---|---|---|
| CPU | 2.8GHz+ / AMD Gen3+ / Intel Ice Lake+ / ekstensi SHA / AVX2 | 16 core / 32 thread+ |
| RAM | 256GB+ | 512GB+ |
| Disk | NVMe Gen3 x4 atau lebih baik / pemisahan Accounts-Ledger-Snapshots direkomendasikan | Kapasitas lebih besar direkomendasikan |
| GPU | Tidak diperlukan | Tidak diperlukan |
Catatan:
Kecepatan clock dan throughput efektif dianggap lebih penting daripada jumlah core.
Firedancer (Frankendancer)
Firedancer (Frankendancer) saat ini bergantung pada Agave,
sehingga setidaknya mengasumsikan konfigurasi rekomendasi Agave atau yang lebih tinggi.
sehingga setidaknya mengasumsikan konfigurasi rekomendasi Agave atau yang lebih tinggi.
Minimum
- CPU 24 core @ >2.8GHz
- RAM 256GB
- NVMe 2TB (TBW tinggi)
Direkomendasikan
- CPU 32 core @ >3GHz (mendukung AVX512)
- RAM 512GB (ECC)
- Pemisahan Accounts / Ledger
- Bandwidth jaringan 1Gbps atau lebih tinggi
Untuk konfigurasi dengan keseimbangan biaya dan performa, Agave dengan CPU 24 core dan RAM 384GB adalah pedoman yang praktis.
Saat Anda menjalankan perintah
slv v init, Anda akan ditanya apakah server bare metal Anda sudah disiapkan: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
noTutorial ini mengasumsikan Anda memilih
yes.Jika Anda belum menyiapkan server bare metal, silakan lihat Panduan Penyiapan Server Bare Metal.
Selain itu, sumber-sumber berikut mungkin bermanfaat:
- Daftar Kompatibilitas Perangkat Keras Solana
- Persyaratan Agave (Dokumentasi Anza)
- Dokumentasi Firedancer
Deploy Validator Firedancer Jito di Mainnet Solana
Deployment SLV baru selalu menggunakan
unstaked-keypair.json sebagai kunci identity.
Ini adalah praktik terbaik untuk mencegah voting ganda dan masalah lainnya.Karena itu, setelah deployment, gunakan
slv v set:identity untuk mengatur kunci identity yang sah.Dalam sebagian besar operasi validator mainnet, Anda akan menggunakan
slv v switch untuk mengganti kunci identity.
Untuk migrasi tanpa downtime, silakan lihat panduan ini.Pilih Jaringan Solana
Pilih jaringan Solana tempat Anda ingin melakukan deploy.
bash
slv v init
? Select Solana Network (mainnet)
testnet
β― mainnetslv v init
? Select Solana Network (mainnet)
testnet
β― mainnetMasukkan Nama Pengguna Default Server
Umumnya, nama pengguna default adalah
ubuntu atau root.bash
? What's the user for the server? (ubuntu) βΊ ubuntu? What's the user for the server? (ubuntu) βΊ ubuntuMasukkan Alamat IP Server
Masukkan alamat IP server.
bash
? What's the IP address of the server? βΊ? What's the IP address of the server? βΊAtur Kunci RSA untuk SSH
β» Silakan atur path ke kunci RSA Anda. Path default adalah
~/.ssh/id_rsa.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 succeededSelanjutnya, SLV akan memeriksa koneksi ke server. Jika koneksi
berhasil, langkah berikutnya akan ditampilkan.
Pilih Tipe Validator Solana
Pilih tipe validator Solana.
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-jitoAtur Tingkat Komisi
Atur tingkat komisi untuk validator Anda.
β» 1000 sama dengan 10%.
bash
? Enter Commission BPS (Max 1000 = 10%) (1000)? Enter Commission BPS (Max 1000 = 10%) (1000)Buat atau Atur Kunci Identity Validator Solana
Anda dapat membuat kunci identity baru atau mengatur kunci identity yang sudah ada.
Contoh ini menunjukkan cara mengatur kunci identity yang sudah ada dengan nama "epics-sub".
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.xLetakkan kunci identity Anda di
~/.slv/keys/<your-pubkey>.json.Deteksi Wilayah Otomatis
Selanjutnya, sistem akan melakukan ping ke setiap block engine dari node yang telah Anda konfigurasi untuk mendeteksi wilayah terdekat secara otomatis. Dengan mengukur nilai ping yang sebenarnya, Anda dapat memilih wilayah yang optimal.
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.wtfBuat atau Atur Kunci Akun Vote Validator Solana
Anda dapat membuat kunci akun vote baru atau mengatur kunci akun vote yang sudah ada.
Contoh ini menunjukkan cara mengatur kunci akun vote yang sudah ada.
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>Informasi node validator akan disimpan ke
~/.slv/inventory.mainnet.validators.yml.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-subDeploy Validator
Setelah Anda mengonfirmasi konfigurasi, deployment akan dimulai.
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 mSelesai! Validator Solana Anda kini sudah di-deploy. Perlu waktu beberapa saat hingga
tersinkronisasi dengan jaringan Solana.
Debugging & Pemantauan
Setelah deployment, Anda dapat melakukan debugging dan pemantauan di dalam node RPC Solana.
Anda dapat memeriksa status node RPC Solana dengan perintah berikut:
bash
$ solv m$ solv msolv adalah alias untuk agave-validator -l /mnt/ledger.
Pengaturan ini ditambahkan ke ~/.profile saat deployment node RPC.Ganti Kunci Identity
Setelah deployment, Anda perlu mengganti kunci unstaked dengan kunci identity yang sah.
bash
slv v set:identity -n mainnet --pubkey epics-subslv v set:identity -n mainnet --pubkey epics-subPerintah ini akan mengganti kunci identity menjadi kunci identity yang sah.
β» Untuk migrasi tanpa downtime, silakan lihat panduan ini.
Perintah Validator SLV
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