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.

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)
KomponenValidatorNode RPC (referensi)
CPU2.8GHz+ / AMD Gen3+ / Intel Ice Lake+ / ekstensi SHA / AVX216 core / 32 thread+
RAM256GB+512GB+
DiskNVMe Gen3 x4 atau lebih baik / pemisahan Accounts-Ledger-Snapshots direkomendasikanKapasitas lebih besar direkomendasikan
GPUTidak diperlukanTidak 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.
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
Tutorial 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:

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
❯ mainnet

Masukkan Nama Pengguna Default Server

Umumnya, nama pengguna default adalah ubuntu atau root.
bash
? What's the user for the server? (ubuntu) β€Ί ubuntu

Masukkan Alamat IP Server

Masukkan alamat IP server.
bash
? 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
Selanjutnya, 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

Atur Tingkat Komisi

Atur tingkat komisi untuk validator Anda. β€» 1000 sama dengan 10%.
bash
? 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
Letakkan 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

Buat 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>
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

Deploy Validator

Setelah Anda mengonfirmasi konfigurasi, deployment akan dimulai.
bash
slv v deploy -n mainnet -p epics-sub
bash
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 m
Selesai! 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 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-sub
Perintah 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 Migration