RPC Solana Mainnet - Démarrage rapide

Introduction

Pour déployer un RPC mainnet Solana, vous utiliserez l'outil en ligne de commande SLV. Ce guide de démarrage rapide explique comment utiliser l'outil en ligne de commande SLV pour déployer un RPC mainnet Solana avec le plugin Geyser Yellowstone.
Votre serveur doit disposer d'une installation propre d'Ubuntu 24.04 LTS.

Préparation d'un serveur bare metal

Bien qu'il soit possible d'exécuter un client Solana sur un VPS ou une machine virtuelle (VM), il est difficile d'obtenir des performances optimales et un fonctionnement stable. Les nœuds RPC et les validateurs, en particulier, fonctionnent sous une charge élevée, ce qui rend cruciale la mise en place d'un environnement serveur approprié.
Solana recommande officiellement d'utiliser des serveurs bare metal.
Les nœuds RPC varient fortement selon la charge de travail.
Le RPC standard (SendTx / Geyser gRPC) et l'Index RPC (indexation complète) diffèrent considérablement, en particulier en matière d'exigences de mémoire et de stockage.
Exigences matérielles RPC (à titre indicatif)
ComposantNœud RPCIndex RPC (référence)
CPU24 cœurs+ @ 2,8 GHz+ / AMD Gen3+ / Intel Ice Lake+ / Extensions SHA / AVX232 cœurs+ (fréquence d'horloge élevée recommandée)
RAM512 Go+1152 Go+
DisqueNVMe Gen3 x4 ou mieux / séparation Accounts / Ledger / Snapshots recommandéeCapacité plus élevée + TBW élevé / séparation recommandée
Réseau1Gbps ou plus1Gbps ou plus (plus de bande passante est préférable)
GPUNon requisNon requis
Remarque:
La fréquence d'horloge et le débit effectif sont considérés comme plus importants que le nombre de cœurs.
L'Index RPC peut être limité par la mémoire et le stockage: veillez donc à disposer d'une capacité suffisante et d'IOPS élevées.
Si l'indexation est nécessaire, nous recommandons 768 Go ou plus, et 1152 Go ou plus pour un fonctionnement stable.
SLV Metal fournit des serveurs bare metal conçus pour offrir les meilleures performances dans les limites de votre budget.
Lorsque vous exécutez la commande slv metal list, vous pouvez trouver l'option RPC, spécialement adaptée aux nœuds 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 Node
Si vous n'avez pas encore configuré votre serveur bare metal, veuillez suivre le Guide de configuration du serveur bare metal.
De plus, veuillez consulter les ressources suivantes:

Déployer le nœud RPC Solana

Tout d'abord, initialisez la configuration du RPC Solana. Veuillez sélectionner le réseau Solana souhaité.
bash
slv rpc init
? Select Solana Network (mainnet)
  testnet
  devnet
❯ mainnet
Ensuite, indiquez si vous disposez d'un serveur compatible avec les nœuds Solana.
bash
? 🛡️ Do you have a Solana Node Compatible Server? (yes)
❯ yes
  no
Ce tutoriel suppose que vous sélectionnez yes.

Définir l'utilisateur du serveur et l'adresse IP

Définissez l'utilisateur du serveur, l'adresse IP et le chemin de la clé 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)

Détection automatique de la région

Ensuite, le système enverra un ping à chaque block engine depuis votre nœud configuré afin de détecter automatiquement la région la plus proche. En mesurant les valeurs de ping réelles, vous pouvez sélectionner la région optimale.
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

Générer une paire de clés d'identité

Si vous n'avez pas de paire de clés d'identité, vous pouvez en générer une nouvelle.
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

Sélectionner Solana CLI

Sélectionnez la version de Solana CLI.
bash
? Select Solana CLI (jito)
  agave
❯ jito
  firedancer-agave
  firedancer-jito

Sélectionner le type de RPC

Sélectionnez le type de RPC.
bash
? Select an RPC type
❯ Geyser gRPC
  Index RPC
  SendTx RPC
  Index RPC + gRPC
Dans ce tutoriel, nous sélectionnons Geyser gRPC.

Confirmer la configuration

Enfin, confirmez la configuration.
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
Ensuite, l'utilisateur solv est créé sur le serveur bare metal, et la configuration du RPC Solana est enregistrée dans ~/.slv/inventory.mainnet.rpcs.yml.

Déployer le nœud RPC Solana

Une fois la configuration confirmée, le déploiement commencera.
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
C'est terminé! Votre nœud RPC Solana est maintenant déployé. La synchronisation avec le réseau Solana prendra un certain temps.

Débogage et surveillance

Après le déploiement, vous pouvez vérifier l'état du nœud RPC Solana avec la commande suivante:
bash
ssh solv@<your-server-ip>
solv m
solv est un alias de agave-validator -l /mnt/ledger. Ce paramètre est ajouté à ~/.profile lors du déploiement du nœud RPC.

Commandes 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 nodes