
Cara Menyiapkan Validator Solana
Daftar Isi
- Terminologi: Apa Itu Validator Solana?
- Langkah Awal: Siapkan Hardware Server
- Instal Solana CLI Secara Lokal
- Siapkan Akun Vote
- Buat Keypair
- Opsional: Gunakan Paper Wallet untuk Kunci Penarikan
- Opsional: Lakukan Grinding untuk Mendapatkan Vanity Key bagi Akun Vote
- Buat Akun Vote dari Keypair
- Opsional: Tetapkan Komisi
- Opsional: Tambahkan Multi-sig
- Konfigurasikan Mesin Anda sebagai Server Validator
- Penyiapan Sistem dan Pengguna
- Penyesuaian Sistem
- Konfigurasi Hard Drive
- Instal Solana CLI di Server Validator
- Opsional: Instal Jito Validator Client
- Buat Skrip untuk Menjalankan Validator
- Buat Skrip Shell
- Pastikan Validator Berjalan dengan Benar
- Siapkan Validator sebagai Proses Daemon
- Siapkan Pemantauan dan Keamanan
- Nonaktifkan Autentikasi Berbasis Kata Sandi
- Tambahkan
- Keypair Identitas Validator
- Siapkan Pemantauan dengan Watchtower
- Opsional: Pemantauan Berbasis Komunitas
- Opsional: Pemantauan Khusus melalui Metode RPC getHealth
- Opsional: Solusi Pemantauan Pihak Ketiga
- Tambahkan Stake ke Validator
- Buat Keypair dan Akun Stake
- Publikasikan Informasi Validator
- Kesimpulan
- Referensi Tambahan
Postingan ini akan membahas cara menjalankan validator mainnet Solana dari perspektif teknis. Kita akan menyiapkan alat dan konfigurasi untuk mempermudah operasi berkelanjutan, tetapi operasi validator yang lebih lanjut tidak akan dibahas. Selain itu, aspek ekonomi dalam menjalankan validator, termasuk topik seperti menarik stake dan mengajukan subsidi, juga tidak akan dibahas dalam postingan ini. Sebagai catatan singkat, siapa pun yang tertarik menjalankan validator sebaiknya menggunakan Kalkulator Profit Validator Cogent Crypto untuk memperkirakan pendapatan validator dalam suatu skenario hipotetis.
Postingan ini mengasumsikan Anda memahami administrasi sistem dasar di Linux. Anda tidak harus menjadi programmer atau pakar administrasi sistem untuk menjalankan validator, tetapi Anda perlu terbiasa menjalankan perintah di terminal, membuat skrip shell dasar, dan bekerja dengan file konfigurasi.
Jika Anda belum banyak memahami administrasi sistem Linux tetapi ingin mempelajarinya lebih lanjut, tersedia banyak titik awal yang bagus, seperti Linux Journey.
Terminologi: Apa Itu Validator Solana?
Rangkaian alat Solana CLI berisi biner solana-validator, yang dapat:
- Terhubung ke cluster Solana, dan menyinkronkan status cluster saat ini
- Membuat, menerima, dan membagikan snapshot serta data cluster lainnya agar selalu terbaru
- Memberikan suara untuk memverifikasi blok baru sebagai bagian dari konsensus cluster
- Memproses transaksi masuk dan membuat blok baru
- Menyediakan RPC dan API berbasis peristiwa agar data cluster dapat dikueri dan transaksi baru dapat dikirim
Validator Solana juga dapat disebut client (karena terhubung ke jaringan validator dan meminta data), server (karena menangani permintaan dari serta menyediakan data kepada validator lain), atau node.
Node RPC adalah validator Solana tanpa stake dan tanpa hak suara yang melacak seluruh informasi jaringan. Artinya, node ini hanya menanggapi permintaan data dan tidak berpartisipasi dalam konsensus.
Istilah “Validator Solana” juga dapat merujuk pada entitas dalam ekosistem Solana yang menjalankan validator Solana dengan stake dan hak suara, serta berpartisipasi dalam konsensus.
Informasi selengkapnya tentang perbedaan antara RPC, penyedia RPC, dan validator dapat ditemukan di sini.
Langkah Awal: Siapkan Hardware Server
Anda memerlukan komputer berperforma tinggi yang didedikasikan sepenuhnya untuk mengoperasikan validator, serta komputer kedua jika ingin menjalankan validator di testnet dan mainnet. Saat ini, rekomendasi minimumnya adalah 12 core/24 thread, RAM 256 GB, 2 disk SSD 1 TB (idealnya dengan RAID0), dan koneksi internet 10 GB. Persyaratan hardware yang lebih terperinci dapat ditemukan di sini.
Jika Anda tergoda menghemat biaya dengan hanya menjalankannya di mainnet, perlu diketahui bahwa Anda harus menjalankan validator testnet agar memenuhi syarat untuk Solana Foundation Delegation Program (SFDP).
Anda dapat membeli dan mengoperasikan hardware sendiri atau menyewanya dari penyedia pusat data (kami merekomendasikan TeraSwitch). Anda juga dapat menyewa dari penyedia komputasi cloud, tetapi kami tidak merekomendasikannya karena biayanya sering kali terlalu tinggi dan lebih rentan terhadap masalah performa. Solana Foundation Server Program bertujuan memudahkan operator validator menyewa hardware dari operator pusat data. Pelajari selengkapnya di sini.
Untuk membantu mendesentralisasi jaringan, Anda dapat mempertimbangkan ASN dan kota yang belum memiliki banyak node atau stake Solana. Beberapa pool staking dan SFDP akan memberikan imbalan berdasarkan desentralisasi menurut ASN dan kota.
Daftar pusat data teratas saat ini dapat ditemukan di sini.
Instal Solana CLI Secara Lokal
Sangat disarankan untuk menginstal alat secara lokal agar Anda dapat membuat semua kunci yang diperlukan secara lokal dan menjauhkan kunci penarikan dari server validator. Petunjuk untuk menyiapkan Solana CLI secara lokal dapat ditemukan di sini.
Setelah alat tersedia secara lokal di command line, konfigurasikan agar secara default mengarah ke testnet:
$ solana config set --url https://api.testnet.solana.comUntuk mainnet, Anda dapat mengarahkannya ke endpoint default berikut:
$ solana config set --url https://api.mainnet-beta.solana.comEndpoint mainnet publik sering kali kewalahan oleh permintaan. Jika performanya tidak memuaskan, Anda dapat mendaftar ke Helius dan menggunakan endpoint Helius seperti berikut:
$ solana config set --url https://mainnet.helius-rpc.com/?api-key=<YOUR-HELIUS-API-KEY>Penyiapan dan bootstrap validator memerlukan eksekusi transaksi, jadi Anda harus memiliki wallet yang berisi sejumlah SOL. Jika Anda baru mulai menyiapkan testnet, Anda dapat membuat wallet default dan melakukan airdrop sejumlah SOL kepada diri sendiri dengan perintah berikut:
$ mkdir -p ~/.config/solana
$ solana-keygen new --outfile ~/.config/solana/id.json
$ solana airdrop 1 ~/.config/solana/id.jsonSangat disarankan untuk menggunakan wallet yang berbeda bagi testnet dan mainnet. Karena format kuncinya sama, kunci yang sama dapat digunakan di keduanya, tetapi jangan tergoda untuk melakukannya. Jika Anda menggunakan kunci yang sama untuk wallet berisi dana di testnet dan mainnet, Anda dapat dengan mudah mengeksekusi perintah yang ditujukan untuk testnet secara tidak sengaja di mainnet.
Siapkan Akun Vote
Akun vote validator Anda dibuat menggunakan perintah solana create-vote-account dan tiga keypair:
- Keypair Identitas — Validator menggunakan keypair ini untuk mengidentifikasi dirinya kepada jaringan dan mengirim transaksi seperti vote. Kunci privat harus disimpan di server, jadi langkah keamanan terbaik adalah tidak menyimpan SOL lebih dari yang diperlukan untuk transaksi vote (sekitar 1 SOL/hari).
- Keypair Akun Vote — Keypair ini merujuk pada akun vote itu sendiri dan digunakan untuk mencari akun vote serta mendelegasikan stake kepadanya. Perintah
create-vote-accounthanya memerlukan kunci privat untuk membuktikan bahwa Anda memiliki kunci yang diperlukan. Setelah akun vote dibuat, hanya kunci publik yang akan diperlukan. Ini tidak dapat diubah. - Keypair Penarikan — Keypair ini berfungsi sebagai kunci utama untuk akun vote dan digunakan untuk menarik imbalan, mengubah identitas atau kunci penarikan, serta melakukan operasi akun lainnya. Kunci ini adalah yang paling sensitif dari ketiganya dan tidak boleh dibuat di atau disalin ke server Anda. Untuk mainnet, pertimbangkan penggunaan paper wallet, hardware wallet, atau multi-sig untuk kunci ini.
Buat Keypair
Buat keypair untuk testnet sebagai berikut:
$ solana-keygen new -o identity.json
$ solana-keygen new -o vote.json
$ solana-keygen new -o withdraw.jsonOpsional: Gunakan Paper Wallet untuk Kunci Penarikan
Paper wallet adalah frasa berisi 12 (atau 24) kata yang ditulis pada selembar kertas, lalu dimasukkan melalui keyboard setiap kali kunci diperlukan untuk menandatangani sesuatu. Jika Anda tidak berencana menyiapkan multi-sig, keamanan tambahan ini cocok untuk kunci penarikan mainnet karena kunci tersebut memberikan akses root ke akun vote Anda. Jalankan perintah ini:
$ solana-keygen new --no-outfileTuliskan frasa yang ditampilkan pada selembar kertas. Anda juga sebaiknya mencatat pubkey, perintah persis yang digunakan untuk membuat kunci, dan solana-keygen --version. Perlu diketahui bahwa ada berbagai skema untuk mengubah passphrase menjadi kunci privat. Sebelum menyimpan lembar tersebut, pastikan Anda dapat menggunakannya untuk mengakses kunci:
$ solana-keygen verify <PUBKEY> ASKSaat artikel ini ditulis, placeholder ASK dan prompt:// memiliki perilaku decoding kunci yang berbeda. Pastikan Anda mengetahui mana yang berfungsi untuk kunci Anda.
Jangan sampai kehilangan lembar kertas yang berisi kunci tersebut karena tidak ada cara lain untuk memulihkannya. Jangan lupa menghapus frasa kunci dari buffer terminal Anda.
Opsional: Lakukan Grinding untuk Mendapatkan Vanity Key bagi Akun Vote
Beberapa validator memiliki vanity pubkey untuk kunci identitas atau akun vote. Misalnya, validator Helius menggunakan HEL1USMZKAL2odpNBj2oCjffnFGaYwmbGmyewGv1e2TU sebagai kunci identitas kami dan he1iusunGwqrNtafDtLdhsUQDFvo13z9sUa36PauBtk untuk akun vote kami. Anda dapat membuatnya dengan subperintah grind sebagai berikut:
$ solana-keygen grind --starts-with PREF1X:1Subperintah ini akan menghasilkan kunci dengan pubkey yang diawali PREF1X, yang dapat berupa string base58 valid apa pun yang Anda tentukan. Proses ini bekerja dengan terus membuat kunci hingga menemukan yang sesuai dengan kriteria. Karena itu, waktu yang diperlukan meningkat secara eksponensial berdasarkan panjang prefiks yang Anda inginkan.
Kunci akun vote tidak dapat diubah, terutama setelah Anda memublikasikannya dan orang-orang mulai mendelegasikan stake kepadanya. Jadi, jika Anda menginginkan vanity key, sekaranglah saatnya membuatnya.
Buat Akun Vote dari Keypair
Setelah keypair siap digunakan, buat akun vote sebagai berikut:
$ solana create-vote-account --fee-payer ~/.config/solana/id.json vote_account.json identity.json withdrawal.jsonDi sini, vote_account.json adalah keypair akun vote, identity.json adalah keypair identitas validator, withdrawal.json adalah keypair otoritas penarikan, dan ~/.config/solana/id.json adalah wallet berisi SOL yang akan digunakan untuk membayar pembuatan akun vote.
Jika Anda menggunakan paper wallet untuk keypair penarikan, perintah Anda dapat terlihat seperti ini:
$ solana create-vote-account --fee-payer ~/.config/solana/id.json vote_account.json identity.json ASKAnda dapat memeriksa akun vote (atau akun vote mana pun) dengan perintah ini:
$ solana vote-account <PUBKEY>Pada tahap ini, keypair identitas akan diperlukan untuk menjalankan server validator, keypair penarikan harus dirahasiakan dan hanya digunakan untuk penarikan serta perubahan akun vote, sedangkan keypair akun vote tidak lagi diperlukan (pastikan Anda tidak melupakan pubkey-nya).
Informasi selengkapnya tentang akun vote dapat ditemukan di sini.
Opsional: Tetapkan Komisi
create-vote-account menerima komisi sebagai parameter opsional, tetapi nilai default-nya adalah 100%, yang berarti validator Anda bersifat privat. Jika ingin menarik stake eksternal ke validator mainnet, Anda mungkin perlu memilih komisi yang lebih rendah.
Jika pubkey akun vote kita adalah <VOTE_ACCT_PUBKEY>, kita ingin membayar perubahan dari wallet berisi dana id.json, kita memiliki kunci penarikan paper wallet, dan ingin menetapkan komisi sebesar 8%, kita dapat melakukannya seperti berikut:
$ solana vote-update-commission --fee-payer ~/.config/solana/id.json <VOTE_ACCT_PUBKEY> 8 ASKOpsional: Tambahkan Multi-sig
Multi-sig adalah jenis wallet khusus yang memerlukan tanda tangan dari satu atau beberapa wallet lain untuk mengeksekusi transaksi, dan dapat digunakan untuk membagi pengelolaan akun vote di antara beberapa orang. Meskipun mengelola validator sendiri, Anda tetap dapat mempertimbangkan multi-sig agar mudah menambahkan orang lain ke akun vote nantinya.
Squads adalah alat multi-sig untuk Solana yang dilengkapi fungsi khusus untuk mengelola validator bersama. Untuk menyiapkan validator di Squads:
- Siapkan browser Anda dengan plugin wallet Solana yang didukung, seperti Backpack
- Buka dApp Squads
- Konfigurasikan squad dengan orang dan parameter yang Anda inginkan untuk validator
- Buka Developers > Validators, lalu ikuti alur untuk menambahkan validator
- Anda akan diminta menempelkan kunci privat penarikan. Kunci ini akan digunakan untuk mengubah kunci penarikan yang ada menjadi kunci penarikan bersama milik squad
- Verifikasi pubkey penarikan yang telah diperbarui menggunakan
solana vote-account
Informasi selengkapnya tentang penggunaan Squads untuk pengelolaan validator bersama dapat ditemukan di sini.
Konfigurasikan Mesin Anda sebagai Server Validator
Langkah-langkahnya akan berbeda tergantung kondisi awal mesin Anda, tetapi tujuan akhirnya adalah memiliki:
- Versi LTS terbaru Ubuntu yang telah diinstal dan diperbarui
- Distribusi Linux lainnya (misalnya berbasis Debian) mungkin juga dapat digunakan, tetapi semua contoh di sini mengasumsikan Ubuntu; makin jauh perbedaannya dari Ubuntu, makin banyak perintah yang perlu Anda ubah
- Akses SSH tingkat pengguna yang telah dikonfigurasi
- Pengguna layanan
solyang telah disiapkan - Penyesuaian sistem dan hard disk yang telah disiapkan
Penyiapan Sistem dan Pengguna
Pastikan sistem Anda sudah diperbarui, lalu buat pengguna layanan sol:
$ sudo apt update
$ sudo apt upgrade
$ sudo adduser solAnda juga dapat memberikan akses sudo (ini mengorbankan sebagian keamanan demi kemudahan):
$ sudo adduser sol sudoPenyesuaian Sistem
Tambahkan pengaturan yang direkomendasikan Solana Labs ke sysctl dan systemd untuk meningkatkan batas jumlah file descriptor, file yang dipetakan ke memori, dan sebagainya. Ketika validator Anda menjadi pemimpin blok saat ini atau berikutnya, seluruh jaringan akan mencoba membuka koneksi dan mengirim transaksi kepadanya. Karena itu, batas file descriptor sangat penting.
Pengaturan penyesuaian sistem terbaru yang direkomendasikan Solana Labs dapat ditemukan di sini.
Konfigurasi Hard Drive
Rekomendasi Solana Labs saat ini adalah menggunakan 2 SSD fisik berkapasitas 1 TB atau lebih, satu untuk data akun dan satu untuk data ledger (sistem operasi juga dapat berada di disk ini). Mereka tidak merekomendasikan penyimpanan akun dan ledger pada disk yang sama karena IOPS yang tinggi.
Berikut panduan mereka untuk menyiapkan 2 drive tersebut.
Cara alternatif untuk memanfaatkan beberapa drive demi meningkatkan IOPS yang tersedia adalah mengonfigurasikannya bersama-sama dalam satu volume RAID0 dan membiarkan pengontrol RAID mengoptimalkan stripe yang disimpan pada setiap drive untuk memaksimalkan kapasitas IOPS kedua drive. Konfigurasi ini juga memungkinkan Anda menambahkan drive lain ke RAID untuk semakin meningkatkan IOPS jika diperlukan. Sejauh ini, kami belum mengalami masalah performa saat menjalankan validator dengan konfigurasi ini.
Jika menggunakan satu volume RAID0, Anda hanya perlu menyiapkan direktori data validator di volume tersebut. Direktori ini dapat dibuat langsung di bawah home pengguna sol:
$ sudo su sol
$ mkdir -p /home/sol/accounts
$ mkdir -p /home/sol/ledger
$ mkdir -p /home/sol/snapshots
$ mkdir -p /home/sol/logsInstal Solana CLI di Server Validator
Ulangi langkah-langkah di atas untuk menginstal Solana CLI, tetapi kali ini lakukan di server validator sebagai pengguna sol. Saat menginstalnya di server validator, sangat disarankan untuk melakukan build dari source.
Jika menggunakan alat penginstalan Solana, Anda dapat memakai perintah solana-install untuk melakukan pembaruan ke versi baru di masa mendatang (yang wajib dilakukan agar dapat terus berpartisipasi dalam cluster).
Opsional: Instal Jito Validator Client
Jito Labs telah melakukan fork terhadap validator Solana dan merilis versinya sendiri dengan menambahkan kemampuan Maximal Extractable Value (MEV). MEV adalah konsep menambahkan atau mengurutkan ulang transaksi dalam blok yang sedang Anda buat untuk memperoleh keuntungan. Jito telah menciptakan pasar bagi orang-orang yang bersedia membayar lebih untuk melakukannya (”searchers”). Jika Anda menjalankan validator Jito, mereka akan mengirimkan bundel transaksi MEV agar validator Anda menyertakannya dalam blok yang dibuat dengan imbalan tip tambahan.
Validator Jito menambah kompleksitas dan latensi pada operasi validator, tetapi juga menambahkan tip MEV sebagai sumber pendapatan tambahan. Konfigurasinya sebagian besar sama, tetapi Anda juga perlu mempelajari:
- Pengumpulan dan pengelolaan tip MEV
- Latensi dari mesin blok Jito
- Kemungkinan menjalankan relayer Jito
Petunjuk untuk menginstal client validator Jito dapat ditemukan di sini.
Buat Skrip untuk Menjalankan Validator
Buat Skrip Shell validator.sh
Pertama, salin keypair identitas validator Anda ke server jarak jauh:
$ scp identity.json remoteuser@your.validator.host:/home/solCara standar untuk mengelola konfigurasi validator adalah dengan membungkusnya dalam skrip shell. Buat skrip sebagai titik awal dan jadikan skrip tersebut dapat dieksekusi:
$ sudo su sol
$ cat >/home/sol/validator.sh <<EOF
#!/bin/bash
PATH=/home/sol/.local/share/solana/install/active_release/bin:$PATH
exec solana-validator \
--identity /home/sol/identity.json \
--vote-account <VOTE_ACCOUNT_PUBKEY> \
--known-validator 5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on \
--known-validator 7XSY3MrYnK8vq693Rju17bbPkCN3Z7KvvfvJx4kdrsSY \
--known-validator Ft5fbkqNa76vnsjYNwjDZUXoTWpP7VYm3mtsaQckQADN \
--known-validator 9QxCLckBiJc783jnMvXZubK4wH86Eqqvashtrwvcsgkv \
--only-known-rpc \
--log /home/sol/logs/solana-validator.log \
--accounts /home/sol/accounts \
--snapshots /home/sol/snapshots \
--ledger /home/sol/ledger \
--rpc-port 8899 \
--dynamic-port-range 8000-8020 \
--entrypoint entrypoint.testnet.solana.com:8001 \
--entrypoint entrypoint2.testnet.solana.com:8001 \
--entrypoint entrypoint3.testnet.solana.com:8001 \
--expected-genesis-hash 4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY \
--wal-recovery-mode skip_any_corrupted_record \
--limit-ledger-size
EOF
$ chmod +x /home/sol/validator.shPengaturan ini sesuai untuk mulai menjalankan validator dengan cepat dan aman di testnet. Setelah semuanya disiapkan, Anda perlu kembali ke skrip ini dan menjalankan solana-validator --help untuk melihat daftar lengkap opsi konfigurasi dan menyesuaikannya.
Coba jalankan validator menggunakan skrip tersebut:
$ ./validator.shSaat pertama kali dijalankan, validator perlu menyelaraskan diri dengan status cluster saat ini.
Pastikan Validator Berjalan dengan Benar
Anda dapat memantau progres eksternal validator Anda (atau validator siapa pun) dari mana saja dalam cluster menggunakan:
$ solana catchup <IDENTITY_PUBKEY>Anda dapat melihat progres internalnya dari sebuah sesi sebagai pengguna sol dengan:
$ solana-validator --ledger /home/sol/ledger monitorInformasi selengkapnya untuk memeriksa apakah validator Anda terhubung dengan benar ke cluster dapat ditemukan di sini.
Siapkan Validator sebagai Proses Daemon
Buat file systemd unit agar validator dikelola sebagai daemon:
$ sudo cat >/etc/systemd/system/sol.service <<EOF
[Unit]
Description=Solana Validator
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=sol
LimitNOFILE=1000000
LogRateLimitIntervalSec=0
ExecStart=/home/sol/validator.sh
[Install]
WantedBy=multi-user.target
EOFPastikan pemanggilan ./validator.sh sebelumnya tidak lagi berjalan, lalu jalankan validator sebagai daemon:
$ sudo systemctl daemon-reload
$ sudo systemctl enable --now solSiapkan Pemantauan dan Keamanan
Nonaktifkan Autentikasi Berbasis Kata Sandi
Dalam file /etc/ssh/sshd_config, daemon SSH dapat diatur agar tidak menerima metode login dengan kata sandi atau challenge-response:
...
PasswordAuthentication no
ChallengeResponseAuthentication no
...Jangan lupa memuat ulang daemon sshd dengan konfigurasi baru:
$ sudo systemctl reload sshdTambahkan fail2ban dan ufw
fail2ban dapat langsung digunakan untuk memblokir koneksi yang gagal melakukan autentikasi beberapa kali:
$ sudo apt install fail2banufw adalah firewall bawaan sistem yang dapat disiapkan dengan beberapa perintah (dengan asumsi konfigurasi akhir validator Anda menggunakan port dan rentang port default, serta menjalankan SSH di port 22):
$ sudo ufw allow 22/tcp
$ sudo ufw allow 8000:10000/tcp
$ sudo ufw allow 8000:10000/udp
$ sudo ufw enableKeypair Identitas Validator
Dalam praktiknya, sebagian besar validator menyimpan kunci identitas di server validator agar skrip validator dapat berjalan dan dimulai ulang tanpa campur tangan manusia. Namun, Anda dapat menggunakan ASK atau prompt:// untuk memasukkan kunci identitas ke validator sehingga tidak perlu menyimpannya di sistem file server validator. Cara ini meningkatkan beban operasional dan risiko karena seseorang kini harus menggantikan peran systemd dan mengelola proses daemon secara manual, tetapi hal ini tetap memungkinkan.
Strategi terbaik untuk mengamankan keypair identitas adalah hanya mengisinya dengan SOL minimum yang diperlukan untuk menanggung biaya vote selama beberapa hari.
Shinobi Systems telah merilis beberapa alat untuk membantu mengelola akun vote, termasuk transfer saldo otomatis dari akun vote tanpa harus menggunakan kunci penarikan setiap kali.
Lihat halaman Solana Labs tentang keamanan validator untuk mendapatkan kiat lainnya.
Siapkan Pemantauan dengan Watchtower
solana-watchtower disertakan dalam toolkit Solana CLI dan dapat digunakan untuk memberikan peringatan tentang masalah pada validator Anda serta cluster secara keseluruhan. Konfigurasi dan eksekusinya dapat dilakukan dengan cara yang mirip dengan validator itu sendiri, yaitu dengan membuat skrip watchtower.sh.
Berikut contoh penggunaan PagerDuty untuk peringatan dan penulisan log ke watchtower.log:
$ cat >watchtower.sh <<EOF
#!/bin/bash
PATH=/home/solana/.local/share/solana/install/active_release/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
exec >>watchtower.log \\
env PAGERDUTY_INTEGRATION_KEY=<PAGERDUTY_KEY> \\
solana-watchtower \\
--validator-identity <IDENTITY_PUBKEY> \\
--monitor-active-stake \\
--interval 20 \\
--minimum-validator-identity-balance 3 \\
--url https://api.testnet.solana.com
EOFSolana Labs juga memiliki contoh cara menyiapkannya menggunakan Telegram untuk peringatan.
Menyiapkan watchtower di mesin yang sama dengan validator tidak disarankan karena Anda tidak akan menerima notifikasi jika seluruh mesin tidak berfungsi. Namun, hal ini mungkin tetap dapat dilakukan jika Anda memiliki beberapa bentuk pemantauan dan dapat memantau kasus tersebut secara terpisah.
Tidak seperti validator, watchtower tidak membutuhkan banyak resource dan dapat dijalankan dari lingkungan komputasi cloud atau serverless seperti yang ditawarkan AWS atau GCP.
Opsional: Pemantauan Berbasis Komunitas
Banyak orang dalam komunitas Solana juga memantau cluster dan bersedia memberikan peringatan berdasarkan kondisi serupa yang ditawarkan watchtower.
Stakewiz menawarkan pemantauan berbasis Telegram untuk validator Solana. Misalnya, jika Anda ingin menerima peringatan berdasarkan validator Helius, Anda dapat membuka halamannya, lalu mengeklik “+ Buat Peringatan”.
Perlu diperhatikan bahwa pemantauan berbasis komunitas dirancang agar orang-orang mengetahui masalah pada validator tempat mereka melakukan staking. Sebagai operator validator, Anda tidak boleh hanya mengandalkan orang lain untuk memantau layanan Anda.
Opsional: Pemantauan Khusus melalui Metode RPC getHealth
Jika ingin memeriksa kondisi validator langsung dari sumbernya, antarmuka JSON RPC validator Anda memiliki metode bernama getHealth yang dapat Anda polling untuk mengetahui apakah validator dalam kondisi sehat serta memperoleh informasi tentang masalah apa pun.
Opsional: Solusi Pemantauan Pihak Ketiga
Setelah validator Anda berkembang dan memiliki aliran pendapatan yang perlu dilindungi, pertimbangkan solusi pemantauan SaaS kelas komersial seperti Datadog atau Splunk. Solusi seperti ini biasanya bekerja dengan menjalankan proses daemon di server Anda untuk memantau log dan metrik secara lokal lalu mengekspornya ke penyedia, atau dengan menyediakan getHealth maupun endpoint status serupa agar penyedia dapat melakukan polling terhadap validator Anda dari jarak jauh.
Tambahkan Stake ke Validator
Jaringan Solana mencapai konsensus melalui proses voting proof-of-stake (PoS), yang berarti bobot vote validator sebanding dengan jumlah stake SOL yang didelegasikan kepadanya. Ini mirip dengan cara kerja perusahaan saham jika SOL yang di-stake dianggap sebagai saham. Selain voting, frekuensi validator Anda menjadi pemimpin blok juga sebanding dengan jumlah SOL yang di-stake kepadanya.
Ada banyak wallet, dApp, dan alat lain yang memudahkan Anda melakukan staking SOL ke validator yang ada, tetapi berikut langkah-langkah untuk melakukannya secara manual dengan CLI:
- Buat 3 keypair menggunakan
solana-keygen new - Buat akun stake dari keypair menggunakan solana create-stake-account
- Transfer sejumlah SOL ke akun stake (dapat dilakukan dengan
solana aidropuntuk testnet) - Delegasikan stake yang telah disetor kepada validator menggunakan
solana delegate-stake - Tunggu epoch berikutnya agar stake aktif, lalu periksa dengan
solana stake-account
Buat Keypair dan Akun Stake
Proses pembuatan keypair dan akun stake serupa dengan pembuatan akun vote, dengan 3 keypair berikut:
- Keypair Otoritas Stake - memungkinkan tugas operasional pada akun stake, seperti mendelegasikan, membatalkan delegasi, membagi, dan menggabungkan
- Keypair Akun Stake - kunci publik yang mengidentifikasi akun stake itu sendiri (kunci privat tidak diperlukan setelah akun stake dibuat)
- Keypair Penarikan - keypair utama untuk menarik stake dan mengatur ulang keypair otoritas pada akun stake. Perlakukan dengan hati-hati dan pertimbangkan hardware wallet, paper wallet, atau multi-sig
Sangat disarankan untuk menggunakan kunci terpisah bagi testnet dan mainnet dengan alasan yang sama seperti akun vote. Namun, Anda dapat menggunakan kembali satu keypair otoritas stake dan otoritas penarikan untuk beberapa akun stake dalam cluster tersebut. Penggunaan kunci yang sama untuk akun stake merupakan prasyarat untuk menggabungkannya.
Berikut contoh pembuatan akun stake dengan 1 SOL di testnet menggunakan wallet berbasis file untuk keypair, mendanainya dari wallet id.json, dan mendelegasikan stake tersebut kepada validator baru Anda:
$ solana-keygen new -o stake_auth.json
$ solana-keygen new -o stake_acct_1.json
$ solana-keygen new -o stake_withdrawal_auth.json
$ solana airdrop 1 ~/.config/solana/id.json
$ solana create-stake-account --from ~/.config/solana/id.json stake_acct_1.json 1 --stake-authority stake_auth.json --withdraw-authority stake_withdraw_auth.json --fee-payer ~/.config/solana/id.json
$ solana delegate-stake --stake-authority stake_auth.json <STAKE_ACCT_1_PUBKEY> <VOTE_ACCT_PUBKEY> --fee-payer ~/.config/solana/id.json<VOTE_ACCT_PUBKEY> merujuk pada alamat akun vote, bukan identitas validator!
Sekarang Anda dapat memeriksanya untuk mengetahui apakah stake sedang diaktifkan dan pada epoch berapa stake tersebut akan aktif:
$ solana stake-account <STAKE_ACCT_1_PUBKEY>Setelah epoch berikutnya dimulai dan stake aktif, vote validator Anda akan mulai dihitung. Anda dapat melihat vote terbaru sebagai bagian dari perintah solana vote-account. Jika Anda hanya menambahkan beberapa SOL seperti dalam contoh, jangan berharap validator Anda menjadi pemimpin blok.
Biaya voting sekitar 1–2 SOL per hari. Jadi, saat artikel ini ditulis, validator Anda memerlukan biaya sekitar $200–300/hari hanya untuk melakukan vote di mainnet.
(Informasi selengkapnya tentang delegasi stake dan pengelolaan akun stake).
Publikasikan Informasi Validator
Jika menjelajahi direktori validator Solana yang umum, seperti validators.app, Anda akan melihat bahwa semua validator memiliki nama, deskripsi, logo, dan metadata lainnya. Data ini dipublikasikan secara on-chain untuk semua validator yang terdaftar di setiap cluster, dan Anda dapat melihatnya dengan menjalankan solana validator-info get.
Setelah validator Anda aktif dan berjalan, Anda mungkin ingin memublikasikan informasinya, terutama setelah menjalankannya di mainnet dan mencoba menarik stake.
Berikut contoh dasar cara memublikasikan metadata Anda:
$ solana validator-info publish "My Awesome Validator" \
--website "https://awesome-validator.xyz/" \
--icon-url "https://awesome-validator.xyz/icon360x360.png" \
--keypair validator_identity.json \
--details "The best validator in the world!"Saat record metadata dibuat, record tersebut akan memiliki kuncinya sendiri yang dapat diperbarui nanti dengan argumen --info-pubkey. Perhatikan bahwa panjang URL ikon maksimal adalah 80 karakter. Informasi selengkapnya tentang publikasi informasi dan metadata validator dapat ditemukan di sini.
Kesimpulan
Selamat! Jika Anda telah mengikuti semua langkah dan mencapai tahap ini, validator Solana Anda sendiri seharusnya sudah aktif dan berjalan. Selamat datang di Komunitas Validator Solana!
Referensi Tambahan
Artikel Terkait
Berlangganan Helius
Ikuti perkembangan terbaru dalam pengembangan Solana dan dapatkan pembaruan saat kami memublikasikan postingan


