Solana Mainnet RPC - Быстрый старт

Introduction

Чтобы развернуть Solana mainnet RPC, вы будете использовать command-line tool SLV. Это руководство по быстрому старту объясняет, как использовать command-line tool SLV для развертывания Solana mainnet RPC с plugin Geyser Yellowstone.
На вашем server должна быть чистая установка Ubuntu 24.04 LTS.

Preparing a Baremetal Server

Хотя запуск Solana client на VPS или virtual machine (VM) возможен, добиться оптимальной производительности и стабильной работы сложно. RPC-ноды и validators, в частности, работают под высокой нагрузкой, поэтому крайне важно подготовить подходящее server environment.
Solana официально рекомендует использовать baremetal servers.
RPC-ноды сильно различаются в зависимости от workload.
Standard RPC (SendTx / Geyser gRPC) и Index RPC (full indexing) заметно отличаются, особенно по требованиям к памяти и storage.
Требования к RPC hardware (ориентир)
ComponentRPC NodeIndex RPC (reference)
CPU24 cores+ @ 2.8GHz+ / AMD Gen3+ / Intel Ice Lake+ / SHA extensions / AVX232 cores+ (рекомендуется высокая частота)
RAM512GB+1152GB+
DiskNVMe Gen3 x4 или лучше / рекомендуется разделять Accounts / Ledger / SnapshotsБольшая емкость + высокий TBW / рекомендуется разделение
Network1Gbps или выше1Gbps или выше (предпочтительна большая пропускная способность)
GPUНе требуетсяНе требуется
Note:
Частота CPU и эффективная пропускная способность считаются более важными, чем количество cores.
Index RPC может упираться в память и storage, поэтому обеспечьте достаточную емкость и высокий IOPS.
Если требуется indexing, мы рекомендуем 768GB или более, а для стабильной работы - 1152GB или более.
SLV Metal предоставляет baremetal servers, разработанные для получения максимальной производительности в рамках вашего бюджета.
При выполнении команды slv metal list вы найдете опцию RPC, специально предназначенную для Solana RPC-нод.
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
Если вы еще не настроили baremetal server, следуйте Baremetal Server Setup Guide.
Также ознакомьтесь со следующими ресурсами:

Deploy Solana RPC Node

Сначала инициализируйте конфигурацию Solana RPC. Выберите network в соответствии с желаемой сетью Solana.
bash
slv rpc init
? Select Solana Network (mainnet)
  testnet
  devnet
 mainnet
Затем подтвердите, что у вас есть server, совместимый с Solana Node.
bash
? 🛡️ Do you have a Solana Node Compatible Server? (yes)
 yes
  no
Это руководство предполагает, что вы выбираете yes.

Set Server User and IP Address

Укажите user server, IP-адрес и путь к RSA key.
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)

Automatic Region Detection

Далее система пропингует каждый block engine с вашей настроенной ноды, чтобы автоматически определить ближайший регион. Измеряя фактические значения ping, можно выбрать оптимальный регион.
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

Generate Identity Keypair

Если у вас нет identity keypair, можно сгенерировать новый.
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

Select Solana CLI

Выберите версию Solana CLI.
bash
? Select Solana CLI (jito)
  agave
 jito
  firedancer-agave
  firedancer-jito

Select RPC Type

Выберите тип RPC.
bash
? Select an RPC type
 Geyser gRPC
  Index RPC
  SendTx RPC
  Index RPC + gRPC
В этом руководстве мы выбираем Geyser gRPC.

Confirm 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
После этого на bare metal server будет создан user solv, а конфигурация Solana RPC будет сохранена в ~/.slv/inventory.mainnet.rpcs.yml.

Deploy Solana RPC Node

После подтверждения конфигурации начнется 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
⚡️⚡️⚡️ Enhanced Solana RPC Connection API Key ⚡️⚡️⚡️

We're excited to offer a free API key exclusively for the Validators DAO community 🎉
It's our way of supporting the community and empowering you with fast, reliable connections.

To get your Free API key, simply join us through the link below:

Validators DAO: `https://discord.gg/X4BgkBHavp`

Unlock fast connections and elevate your experience with your very own API key 🚀

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
Готово! Ваша Solana RPC-нода развернута. Синхронизация с сетью Solana займет некоторое время.

Debugging & Monitoring

После deployment вы можете проверить статус Solana RPC-ноды следующей командой:
bash
ssh solv@<your-server-ip>
solv m
solv - это alias для agave-validator -l /mnt/ledger. Эта настройка добавляется в ~/.profile во время deployment RPC-ноды.

SLV RPC Commands

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