Solana Mainnet RPC - Snelstart
Inleiding
Om een mainnet-RPC voor Solana te deployen, gebruik je de command-line tool van SLV.
Deze snelstarthandleiding legt uit hoe je met de command-line tool van SLV een mainnet-RPC voor Solana deployt met de Geyser Yellowstone-plugin.
Op je server moet een schone installatie van Ubuntu 24.04 LTS staan.
Een bare-metal server voorbereiden
Het is weliswaar mogelijk om een Solana-client op een VPS of virtuele machine (VM) te draaien, maar optimale prestaties en een stabiele werking zijn dan lastig te bereiken. Vooral RPC-nodes en validators draaien onder hoge belasting, dus een geschikte serveromgeving is cruciaal.
Solana raadt officieel bare-metal servers aan.
RPC-nodes verschillen sterk per workload.
Standaard-RPC (SendTx / Geyser gRPC) en Index RPC (volledige indexering) verschillen aanzienlijk, vooral in de vereisten voor geheugen en opslag.
Standaard-RPC (SendTx / Geyser gRPC) en Index RPC (volledige indexering) verschillen aanzienlijk, vooral in de vereisten voor geheugen en opslag.
Hardwarevereisten voor RPC (richtlijn)
| Component | RPC-node | Index RPC (ter referentie) |
|---|---|---|
| CPU | 24 cores+ @ 2.8GHz+ / AMD Gen3+ / Intel Ice Lake+ / SHA-extensies / AVX2 | 32 cores+ (hoge kloksnelheid aanbevolen) |
| RAM | 512GB+ | 1152GB+ |
| Schijf | NVMe Gen3 x4 of beter / scheiding van Accounts / Ledger / Snapshots aanbevolen | Grotere capaciteit + hoge TBW / scheiding aanbevolen |
| Netwerk | 1Gbps of hoger | 1Gbps of hoger (meer bandbreedte is wenselijk) |
| GPU | Niet vereist | Niet vereist |
Opmerking:
Kloksnelheid en effectieve doorvoer worden belangrijker geacht dan het aantal cores.
Bij Index RPC kunnen geheugen en opslag de bottleneck vormen, dus zorg voor voldoende capaciteit en hoge IOPS.
Als indexering nodig is, raden we 768GB of meer aan, en 1152GB of meer voor een stabiele werking.
SLV Metal biedt bare-metal servers die zijn ontworpen om binnen je budget de hoogste prestaties te leveren.
Als je het commando
slv metal list uitvoert, vind je de optie RPC, die speciaal is afgestemd op RPC-nodes voor 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 NodeHeb je je bare-metal server nog niet ingericht, volg dan de handleiding voor het inrichten van een bare-metal server.
Raadpleeg daarnaast de volgende bronnen:
Een Solana-RPC-node deployen
Initialiseer eerst de RPC-configuratie voor Solana.
Kies het Solana-netwerk dat je wilt gebruiken.
bash
slv rpc init
? Select Solana Network (mainnet)
testnet
devnet
β― mainnetslv rpc init
? Select Solana Network (mainnet)
testnet
devnet
β― mainnetGeef vervolgens aan of je een server hebt die compatibel is met Solana-nodes.
bash
? π‘οΈ Do you have a Solana Node Compatible Server? (yes)
β― yes
no? π‘οΈ Do you have a Solana Node Compatible Server? (yes)
β― yes
noDeze tutorial gaat ervan uit dat je
yes kiest.Servergebruiker en IP-adres instellen
Stel de servergebruiker, het IP-adres en het pad naar de RSA-sleutel in.
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)Automatische regiodetectie
Vervolgens pingt het systeem vanaf je geconfigureerde node elke block engine om automatisch de dichtstbijzijnde regio te bepalen. Doordat de werkelijke pingwaarden worden gemeten, kun je de optimale regio kiezen.
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.wtfIdentity keypair genereren
Als je nog geen identity keypair hebt, kun je een nieuw keypair genereren.
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.jsonSolana CLI kiezen
Kies de versie van de Solana CLI.
bash
? Select Solana CLI (jito)
agave
β― jito
firedancer-agave
firedancer-jito? Select Solana CLI (jito)
agave
β― jito
firedancer-agave
firedancer-jitoRPC-type kiezen
Kies het RPC-type.
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 + gRPCIn deze tutorial kiezen we
Geyser gRPC.Configuratie bevestigen
Bevestig tot slot de configuratie.
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 p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLVDaarna wordt de gebruiker
solv aangemaakt op de bare-metal server en
wordt de RPC-configuratie voor Solana opgeslagen in ~/.slv/inventory.mainnet.rpcs.yml.Een Solana-RPC-node deployen
Zodra je de configuratie bevestigt, start de deployment.
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 mKlaar! Je Solana-RPC-node is nu gedeployd.
Het duurt enige tijd voordat die is gesynchroniseerd met het Solana-netwerk.
Debuggen en monitoren
Na de deployment kun je de status van de Solana-RPC-node controleren met het volgende commando:
bash
ssh solv@<your-server-ip>
solv mssh solv@<your-server-ip>
solv msolv is een alias voor agave-validator -l /mnt/ledger.
Deze instelling wordt tijdens de deployment van de RPC-node aan ~/.profile toegevoegd.SLV RPC-commando's
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