Solana Mainnet RPC - Quickstart
Introdução
Para implantar um RPC da rede principal Solana, você usará a ferramenta de linha de comando SLV.
Este guia de início rápido explica como usar a ferramenta de linha de comando SLV para implantar um RPC da rede principal Solana com o plugin Geyser Yellowstone.
Você deve ter Ubuntu 24.04 LTS limpo instalado no seu servidor.
Preparando um Servidor Baremetal
Embora seja possível executar um cliente Solana em VPS ou máquina virtual (VM), atingir o desempenho ideal e operação estável é um desafio. Os nós RPC e validadores, em particular, operam em condições de alta carga, tornando crucial configurar um ambiente de servidor apropriado.
Solana recomenda oficialmente o uso de servidores baremetal.
Os nós RPC variam muito dependendo da carga de trabalho.
O RPC padrão (SendTx / Geyser gRPC) e o IPC de índice (indexação completa) diferem significativamente, especialmente nos requisitos de memória e armazenamento.
O RPC padrão (SendTx / Geyser gRPC) e o IPC de índice (indexação completa) diferem significativamente, especialmente nos requisitos de memória e armazenamento.
Requisitos de hardware RPC (guideline)
| Componente | Nó de RPC | Índice RPC (referência) |
|---|---|---|
| CPU | 24 núcleos+ @ 2.8GHz+ / AMD Gen3+ / Intel Ice Lake+ / extensões SHA / AVX2 | 32 núcleos+ (recomendado relógio alto) |
| RAM | 512GB+ | 1152GB+ |
| Disco | NVMe Gen3 x4 ou melhor / Contas / Livro / Separação de imagens recomendada | Maior capacidade + alta TBW / separação recomendada |
| Rede | 1Gbps ou superior | 1Gbps ou superior (mais largura de banda é preferível) |
| GPU | Não exigido | Não exigido |
Nota:
Velocidade do relógio e rendimento eficaz são considerados mais importantes do que a contagem de núcleo.
O RPC de índice pode ser engarrafado pela memória e armazenamento, garantindo assim capacidade suficiente e IOPS elevados.
Se a indexação for necessária, recomendamos 768GB ou mais, e 1152GB ou mais para operação estável.
O SLV Metal oferece servidores Bare-Metal projetados para oferecer o maior desempenho dentro do seu orçamento.
Ao executar o
slv metal list comando, você pode encontrar o RPC opção especificamente adaptada para os nós 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 NodeSe você ainda não configurou seu servidor desmetal, siga o Guia de Configuração do Servidor Baremetal.
Além disso, consulte os seguintes recursos:
Implantar o Nó RPC de Solana
Primeiro, inicialize a configuração do RPC Solana.
Selecione a rede como sua rede Solana desejada.
bash
slv rpc init
? Select Solana Network (mainnet)
testnet
devnet
❯ mainnetslv rpc init
? Select Solana Network (mainnet)
testnet
devnet
❯ mainnetEm seguida, confirme se você tem um servidor compatível com Solana Node.
bash
? 🛡️ Do you have a Solana Node Compatible Server? (yes)
❯ yes
no? 🛡️ Do you have a Solana Node Compatible Server? (yes)
❯ yes
noEste tutorial assume que você seleciona
yes.DeFinir o Utilizador do Servidor e o Endereço IP
DeFina o usuário do servidor, endereço IP e caminho da chave 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)Detecção Automática de Região
Em seguida, o sistema irá ping cada motor de bloco de seu nó configurado para detectar automaticamente a região mais próxima. Medindo os valores reais de ping, você pode selecionar a região ideal.
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.wtfGerar o Keypair de Identidade
Se você não tem um keypair identidade, você pode gerar um novo.
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.jsonSelecione Solana CLI
Selecione a versão Solana CLI.
bash
? Select Solana CLI (jito)
agave
❯ jito
firedancer-agave
firedancer-jito? Select Solana CLI (jito)
agave
❯ jito
firedancer-agave
firedancer-jitoSelecionar Tipo de RPC
Selecione o tipo 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 + gRPCNeste tutorial, selecionamos
Geyser gRPC.Confirmar a Configuração
Finalmente, confirme a configuração.
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 p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLVDepois disso,
solv usuário é criado no servidor de Bare-Metal, e
a configuração do RPC Solana é salva em ~/.slv/inventory.mainnet.rpcs.yml.Implantar o Nó RPC de Solana
Assim que confirmar a configuração, a implantação começará.
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
⚡️⚡️⚡️ 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 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
⚡️⚡️⚡️ 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 mEstá feito! Seu nó RPC Solana está agora implantado.
Levará algum tempo para sincronizar com a rede Solana.
Depuração e Monitoramento
Após a implantação, você pode verificar o status do nó RPC Solana com o seguinte comando:
bash
ssh solv@<your-server-ip>
solv mssh solv@<your-server-ip>
solv msolv é um apelido para agave-validator -l /mnt/ledger.
Esta configuração é adicionada a ~/.profile durante a implantação do nó RPC.Comandos 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