Solana Mainnet RPC - Panduan Cepat
Pendahuluan
Untuk men-deploy RPC mainnet Solana, Anda akan menggunakan alat baris perintah SLV.
Panduan cepat ini menjelaskan cara menggunakan alat baris perintah SLV untuk men-deploy RPC mainnet Solana dengan plugin Geyser Yellowstone.
Ubuntu 24.04 LTS harus sudah terpasang dengan instalasi bersih di server Anda.
Menyiapkan Server Bare Metal
Meskipun klien Solana dapat dijalankan di VPS atau mesin virtual (VM), mencapai performa optimal dan operasi yang stabil tidaklah mudah. Node RPC dan validator khususnya beroperasi dalam kondisi beban tinggi, sehingga sangat penting untuk menyiapkan lingkungan server yang sesuai.
Solana secara resmi merekomendasikan penggunaan server baremetal.
Node RPC sangat bervariasi tergantung pada beban kerjanya.
Standard RPC (SendTx / Geyser gRPC) dan Index RPC (pengindeksan penuh) berbeda secara signifikan, terutama dalam kebutuhan memori dan penyimpanan.
Standard RPC (SendTx / Geyser gRPC) dan Index RPC (pengindeksan penuh) berbeda secara signifikan, terutama dalam kebutuhan memori dan penyimpanan.
Kebutuhan perangkat keras RPC (pedoman)
| Komponen | Node RPC | Index RPC (referensi) |
|---|---|---|
| CPU | 24 core+ @ 2.8GHz+ / AMD Gen3+ / Intel Ice Lake+ / ekstensi SHA / AVX2 | 32 core+ (clock tinggi direkomendasikan) |
| RAM | 512GB+ | 1152GB+ |
| Disk | NVMe Gen3 x4 atau lebih baik / pemisahan Accounts / Ledger / Snapshots direkomendasikan | Kapasitas lebih besar + TBW tinggi / pemisahan direkomendasikan |
| Jaringan | 1Gbps atau lebih tinggi | 1Gbps atau lebih tinggi (bandwidth lebih besar lebih baik) |
| GPU | Tidak diperlukan | Tidak diperlukan |
Catatan:
Kecepatan clock dan throughput efektif dianggap lebih penting daripada jumlah core.
Index RPC dapat terhambat oleh memori dan penyimpanan, jadi pastikan kapasitasnya cukup dan IOPS-nya tinggi.
Jika pengindeksan diperlukan, kami merekomendasikan 768GB atau lebih, dan 1152GB atau lebih untuk operasi yang stabil.
SLV Metal menyediakan server baremetal yang dirancang untuk memberikan performa tertinggi sesuai anggaran Anda.
Saat menjalankan perintah
slv metal list, Anda dapat menemukan opsi RPC yang dirancang khusus untuk node RPC Solana.bash
slv metal list
? π‘οΈ Select SLV BareMetal Type (APP)
π¦ APP - For Trade Bot,Testnet Validator, DApp and More!
π MV - For Solana Mainnet Validator
β― π‘οΈβ‘οΈ RPC - For Solana RPC Nodeslv metal list
? π‘οΈ Select SLV BareMetal Type (APP)
π¦ APP - For Trade Bot,Testnet Validator, DApp and More!
π MV - For Solana Mainnet Validator
β― π‘οΈβ‘οΈ RPC - For Solana RPC NodeJika Anda belum menyiapkan server baremetal, silakan ikuti Panduan Penyiapan Server Baremetal.
Selain itu, lihat juga sumber berikut:
- Daftar Kompatibilitas Perangkat Keras Solana
- Persyaratan Agave (Dokumentasi Anza)
- Dokumentasi Firedancer
Deploy Node RPC Solana
Pertama, inisialisasi konfigurasi RPC Solana.
Silakan pilih jaringan Solana yang Anda inginkan.
bash
slv rpc init
? Select Solana Network (mainnet)
testnet
devnet
β― mainnetslv rpc init
? Select Solana Network (mainnet)
testnet
devnet
β― mainnetSelanjutnya, konfirmasikan apakah Anda memiliki server yang kompatibel dengan node Solana.
bash
? π‘οΈ Do you have a Solana Node Compatible Server? (yes)
β― yes
no? π‘οΈ Do you have a Solana Node Compatible Server? (yes)
β― yes
noTutorial ini mengasumsikan Anda memilih
yes.Atur Pengguna Server dan Alamat IP
Atur pengguna server, alamat IP, dan path kunci RSA.
bash
? What's the user for the server? (root) βΊ root
? Enter the server IP address βΊ x.x.x.x
? What's the path to your RSA key? (~/.ssh/id_rsa)? What's the user for the server? (root) βΊ root
? Enter the server IP address βΊ x.x.x.x
? What's the path to your RSA key? (~/.ssh/id_rsa)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
π Checking SSH connection...
βοΈ SSH connection succeeded
π 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)...
β
Singapore: 0.291 ms
β
London: 154.071 ms
β
Dublin: 167.267 ms
β
Frankfurt: 149.081 ms
β
Amsterdam: 154.501 ms
β
New York: 228.624 ms
β
Salt Lake City: 278.016 ms
β
Tokyo: 376.816 ms
π― Nearest region: πΈπ¬ Singapore
Latency: 0.291 ms
Block Engine: https://singapore.mainnet.block-engine.jito.wtf
Shred Receiver: 202.8.11.224:1002
Relayer: http://singapore.mainnet.relayer.jito.wtf:8100
NTP Server: ntp.singapore.jito.wtfπ Checking SSH connection...
βοΈ SSH connection succeeded
π 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)...
β
Singapore: 0.291 ms
β
London: 154.071 ms
β
Dublin: 167.267 ms
β
Frankfurt: 149.081 ms
β
Amsterdam: 154.501 ms
β
New York: 228.624 ms
β
Salt Lake City: 278.016 ms
β
Tokyo: 376.816 ms
π― Nearest region: πΈπ¬ Singapore
Latency: 0.291 ms
Block Engine: https://singapore.mainnet.block-engine.jito.wtf
Shred Receiver: 202.8.11.224:1002
Relayer: http://singapore.mainnet.relayer.jito.wtf:8100
NTP Server: ntp.singapore.jito.wtfBuat Keypair Identity
Jika Anda belum memiliki keypair identity, Anda dapat membuat yang baru.
bash
? Do you want to create a new identity key now? (Y/n) βΊ Yes
π Generating new identity key...
β¨ Generated Key: p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLV
β¨ Moved Key to: ~/.slv/keys/p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLV.json? Do you want to create a new identity key now? (Y/n) βΊ Yes
π Generating new identity key...
β¨ Generated Key: p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLV
β¨ Moved Key to: ~/.slv/keys/p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLV.jsonPilih Solana CLI
Pilih versi Solana CLI.
bash
? Select Solana CLI (jito)
agave
β― jito
firedancer-agave
firedancer-jito? Select Solana CLI (jito)
agave
β― jito
firedancer-agave
firedancer-jitoPilih Jenis RPC
Pilih jenis RPC.
bash
? Select an RPC type
β― Geyser gRPC
Index RPC
SendTx RPC
Index RPC + gRPC? Select an RPC type
β― Geyser gRPC
Index RPC
SendTx RPC
Index RPC + gRPCDalam tutorial ini, kita memilih
Geyser gRPC.Konfirmasi Konfigurasi
Terakhir, konfirmasikan konfigurasi.
bash
βοΈ Success
β Inventory updated to ~/.slv/inventory.mainnet.rpcs.yml
β Successfully created solv user on p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLV
βοΈ mainnet_rpcs inventory file has been saved to ~/.slv/inventory.mainnet.rpcs.yml
Now you can deploy with:
$ slv rpc deploy -n mainnet -p p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLVβοΈ Success
β Inventory updated to ~/.slv/inventory.mainnet.rpcs.yml
β Successfully created solv user on p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLV
βοΈ mainnet_rpcs inventory file has been saved to ~/.slv/inventory.mainnet.rpcs.yml
Now you can deploy with:
$ slv rpc deploy -n mainnet -p p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLVSetelah itu, pengguna
solv dibuat di server bare metal, dan
konfigurasi RPC Solana disimpan ke ~/.slv/inventory.mainnet.rpcs.yml.Deploy Node RPC Solana
Setelah Anda mengonfirmasi konfigurasi, deployment akan dimulai.
bash
slv rpc deploy -n mainnet -p p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLVslv rpc deploy -n mainnet -p p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLVbash
Your mainnet RPC Nodes Settings:
ββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββ
β Identity Key β p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLV β
ββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββ€
β Name β p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLV β
ββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββ€
β IP β x.x.x.x. β
ββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββ€
β Region β singapore β
ββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββ€
β RPC Type β Geyser gRPC β
ββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββ€
β Version β 3.0.7-jito β
ββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββββ
.
.
.
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 RPC Nodes Settings:
ββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββββββββ
β Identity Key β p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLV β
ββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββ€
β Name β p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLV β
ββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββ€
β IP β x.x.x.x. β
ββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββ€
β Region β singapore β
ββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββ€
β RPC Type β Geyser gRPC β
ββββββββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββ€
β Version β 3.0.7-jito β
ββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββββββββββ
.
.
.
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! Node RPC Solana Anda kini sudah di-deploy.
Proses sinkronisasi dengan jaringan Solana akan memakan waktu.
Debugging & Pemantauan
Setelah deploy, Anda dapat memeriksa status node RPC Solana dengan perintah berikut:
bash
ssh solv@<your-server-ip>
solv mssh solv@<your-server-ip>
solv msolv adalah alias untuk agave-validator -l /mnt/ledger.
Pengaturan ini ditambahkan ke ~/.profile saat deployment node RPC.Perintah RPC SLV
bash
Usage: slv rpc
Version: 0.9.700
Description:
π οΈ Manage Solana RPC Nodes π οΈ
Options:
-h, --help - Show this help.
Commands:
init - π Initialize a new RPC node configuration
deploy - π¦ Deploy RPC Nodes
list - π List RPC Nodes
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 RPC Startup Config
update:geyser - β‘οΈ Update Geyser Version
start - π’ Start RPC
stop - π΄ Stop RPC
restart - β»οΈ Restart RPC
cleanup - π§Ή Cleanup RPC - Remove Ledger/Snapshot Unnecessary Files
get:snapshot - πΎ Download Snapshot with aria2c
update:allowed-ips - π‘οΈ Update allowed IPs for mainnet RPC nodesUsage: slv rpc
Version: 0.9.700
Description:
π οΈ Manage Solana RPC Nodes π οΈ
Options:
-h, --help - Show this help.
Commands:
init - π Initialize a new RPC node configuration
deploy - π¦ Deploy RPC Nodes
list - π List RPC Nodes
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 RPC Startup Config
update:geyser - β‘οΈ Update Geyser Version
start - π’ Start RPC
stop - π΄ Stop RPC
restart - β»οΈ Restart RPC
cleanup - π§Ή Cleanup RPC - Remove Ledger/Snapshot Unnecessary Files
get:snapshot - πΎ Download Snapshot with aria2c
update:allowed-ips - π‘οΈ Update allowed IPs for mainnet RPC nodes