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.
Hardwarevereisten voor RPC (richtlijn)
ComponentRPC-nodeIndex RPC (ter referentie)
CPU24 cores+ @ 2.8GHz+ / AMD Gen3+ / Intel Ice Lake+ / SHA-extensies / AVX232 cores+ (hoge kloksnelheid aanbevolen)
RAM512GB+1152GB+
SchijfNVMe Gen3 x4 of beter / scheiding van Accounts / Ledger / Snapshots aanbevolenGrotere capaciteit + hoge TBW / scheiding aanbevolen
Netwerk1Gbps of hoger1Gbps of hoger (meer bandbreedte is wenselijk)
GPUNiet vereistNiet 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 Node
Heb 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
❯ mainnet
Geef 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
Deze 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)

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

Identity 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

Solana CLI kiezen

Kies de versie van de Solana CLI.
bash
? Select Solana CLI (jito)
  agave
❯ jito
  firedancer-agave
  firedancer-jito

RPC-type kiezen

Kies het RPC-type.
bash
? Select an RPC type
❯ Geyser gRPC
  Index RPC
  SendTx RPC
  Index RPC + gRPC
In 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
Daarna 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 p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLV
bash
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 m
Klaar! 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 m
solv 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 nodes