Validador da Solana Mainnet - Início rápido

Introdução

Para implantar um validador da rede principal Solana, você usará a ferramenta de linha de comando SLV. Este guia de início rápido explica como lançar e implantar um hot spare do validador mainnet.
Você deve ter Ubuntu 24.04 LTS limpo instalado no seu servidor.

Preparando um Servidor Baremetal

Embora seja possível executar um nó Solana em máquinas VPS ou virtuais (VM), atingir o desempenho ideal e operação estável é um desafio. Solana recomenda oficialmente o uso de servidores baremetal.
Os validadores da rede principal devem ser provisionados para permanecer estáveis durante o congestionamento.
Abaixo está uma diretriz baseada na documentação oficial Solana / Agave / Firedancer.

Validador Agave (requisitos e recomendações oficiais)

Requisitos de SOL
  • Em cada limite de epoch, a Conta de Voto deve ter pelo menos o mínimo de isenção de aluguel (rent-exempt) mais um Validator Admission Ticket (0.8 SOL com a configuração de tempo de slot de 200 ms)
  • O Validator Admission Ticket é debitado da Conta de Voto no primeiro bloco de cada epoch
  • Verifique o mínimo de isenção de aluguel com solana rent 3762 (3762 é o tamanho da Conta de Voto em bytes)
  • A chave de identidade não paga mais uma taxa por voto — com o Alpenglow, os votos não são mais enviados como transações
Requisitos de hardware (guia)
ComponenteValidadorNó RPC (referência)
CPU2.8GHz+ / AMD Gen3+ / Intel Ice Lake+ / extensões SHA / AVX216 núcleos / 32 threads+
RAM256GB+512GB+
DiscoNVMe Gen3 x4 ou melhor / separação recomendada de Accounts-Ledger-SnapshotsMaior capacidade recomendada
GPUNão exigidoNão exigido
Nota:
A frequência de clock e o throughput efetivo são considerados mais importantes do que o número de núcleos.

Firedancer (Frankendancer)

Firedancer (Frankendancer) depende atualmente de Agave,
assim, no mínimo, assume a configuração recomendada por Agave ou superior.
Mínimo
  • CPU de 24 núcleos @ >2.8GHz
  • 256GB de RAM
  • 2TB NVMe (High TBW)
Recomendado
  • CPU de 32 núcleos @ >3GHz (com suporte a AVX512)
  • 512GB de RAM (ECC)
  • Separação de Accounts / Ledger
  • Largura de banda de rede de 1Gbps ou superior
Para uma configuração equilibrada de custo-desempenho, Agave com uma CPU de 24 núcleos e 384GB de RAM é uma diretriz prática.
Ao executar o comando slv v init, será perguntado se o seu servidor baremetal já está configurado:
bash
➜ slv v init
? Select Solana Network (testnet) › mainnet
? 🛡️ Do you have a Solana Node Compatible Server? (no)
❯ yes
  no
Este tutorial assume que você seleciona yes.
Se ainda não preparou o seu servidor bare metal, consulte o Guia de Configuração do Servidor Baremetal.
Além disso, você pode achar esses recursos úteis:

Implantar o validador de Firedancer Jito da rede principal de Solana

Novas implantações do SLV sempre usam unstaked-keypair.json como chave de identidade. Esta é uma boa prática para evitar a dupla votação e outras questões.
Por conseguinte, após a implantação, usar slv v set:identity para definir a chave de identidade autorizada.
Na maioria das operações do validador mainnet, você usará slv v switch para mudar a chave de identidade. Para migração sem pausa, consulte este guia.

Selecione a Rede Solana

Selecione a Rede Solana que deseja implantar.
bash
slv v init
? Select Solana Network (mainnet)
  testnet
❯ mainnet

Informe o nome de usuário padrão do servidor

Na maioria das vezes, o nome de usuário padrão é ubuntu ou root.
bash
? What's the user for the server? (ubuntu) › ubuntu

Informe o endereço IP do servidor

Insira o endereço IP do servidor.
bash
? What's the IP address of the server? ›

Definir chave RSA para SSH

Por favor, defina o caminho para a sua chave RSA. O caminho padrão é ~/.ssh/id_rsa.
bash
? What's the path to your RSA key? (~/.ssh/id_rsa) › ~/.ssh/id_rsa
🔍 Checking SSH connection...
✔︎ SSH connection succeeded
Em seguida, SLV irá verificar a conexão com o servidor. Se a conexão for bem-sucedida, o próximo passo será exibido.

Selecione o Tipo de Validador Solana

Selecione o tipo de validador Solana.
bash
? Select Validator Type (firedancer-jito)
  agave
  jito
  jito-bam
  firedancer-agave
❯ firedancer-jito

Definir a taxa de comissão

Defina a taxa de comissão para o seu validador. 1000 é igual a 10%.
bash
? Enter Commission BPS (Max 1000 = 10%) (1000)

Gerar ou configurar a chave de identidade do validador Solana

Você pode gerar uma nova chave de identidade ou definir uma chave de identidade existente. Este exemplo mostra como definir uma chave de identidade existente com o nome "epics-sub".
bash
? Do you want to create a new identity key now? (Y/n) › No
? Please Enter Your Identity Public Key › KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM
? Enter Inventory Name (KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM) › epics-sub
⚠️ Please place your identity key in

  ~/.slv/keys/KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM.json
.
.
✔︎ Success
✔ Inventory updated to ~/.slv/inventory.yml
✔ Successfully created solv user on x.x.x.x
Por favor coloque sua chave de identidade em ~/.slv/keys/<your-pubkey>.json.

Detecção Automática de Região

Em seguida, o sistema fará ping em cada block engine a partir do 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
✔ Inventory updated to ~/.slv/inventory.mainnet.validators.yml

📍 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)...
  ✅ London: 8.801 ms
  ✅ Dublin: 12.946 ms
  ✅ Frankfurt: 5.888 ms
  ✅ Amsterdam: 0.169 ms
  ✅ New York: 74.321 ms
  ✅ Salt Lake City: 115.577 ms
  ✅ Singapore: 154.200 ms
  ✅ Tokyo: 229.989 ms

🎯 Nearest region: 🇳🇱 Amsterdam
   Latency: 0.169 ms
   Block Engine: https://amsterdam.mainnet.block-engine.jito.wtf
   Shred Receiver: 74.118.140.240:1002
   Relayer: http://amsterdam.mainnet.relayer.jito.wtf:8100
   NTP Server: ntp.amsterdam.jito.wtf

Gerar ou configurar a chave da conta de voto do validador Solana

Você pode gerar uma nova chave de conta de voto ou definir uma chave de conta de voto existente. Este exemplo mostra como definir uma chave de conta de voto existente.
bash
? Do you want to create a new vote account key now? (Y/n) › No
? Please Enter Your Vote Account Public Key > <your-vote-account>
A informação do nó validador será salva em ~/.slv/inventory.mainnet.validators.yml.
bash
✔︎ Success
✔ Inventory updated to ~/.slv/inventory.mainnet.validators.yml
✔ Successfully created solv user on epics-sub
✔︎ Validator Mainnet Config Saved To ~/.slv/inventory.mainnet.validators.yml
Now you can deploy with:

$ slv v deploy -n mainnet -p epics-sub

Implantar o Validador

Assim que confirmar a configuração, a implantação começará.
bash
slv v deploy -n mainnet -p epics-sub
bash
Your Mainnet Validators Settings:
┌────────────────┬──────────────────────────────────────────────┐
│ Identity Key   │ KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM  │
├────────────────┼──────────────────────────────────────────────┤
│ Vote Key       │ EpicsoqLdDP8qRn3wQRKTSKAXbjK9dUgFfNPRQS77MQD │
├────────────────┼──────────────────────────────────────────────┤
│ Authority Key  │ authAccount                                  │
├────────────────┼──────────────────────────────────────────────┤
│ IP             │ x.x.x.x                                      │
├────────────────┼──────────────────────────────────────────────┤
│ Validator Type │ firedancer-jito                              │
├────────────────┼──────────────────────────────────────────────┤
│ Version        │ 0.712.30006                                  │
└────────────────┴──────────────────────────────────────────────┘
? Do you want to continue? (Y/n) › Yes
.
.
.
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
Está feito! O seu Validador Solana está agora implantado. Levará algum tempo para sincronizar com a rede Solana.

Depuração e Monitoramento

Após a implantação, você pode depurar e monitorar dentro do nó RPC Solana. Você pode verificar o status do nó RPC Solana usando os seguintes comandos:
bash
$ solv m
solv é um apelido para agave-validator -l /mnt/ledger. Esta configuração é adicionada a ~/.profile durante a implantação do nó RPC.

Mudar a Chave de Identidade

Após a implantação, você precisa trocar a chave unstaked pela chave de identidade autorizada.
bash
slv v set:identity -n mainnet --pubkey epics-sub
Este comando irá alterar a chave de identidade para a chave de identidade autorizada.
※ Para migração sem paralisação, consulte este guia.

Comandos de validador do SLV

bash
slv validator --help
Usage:   slv validator
Version: 0.9.700

Description:

  🛠️ Manage Solana Validator Nodes 🛠️

Options:

  -h, --help  - Show this help.

Commands:

  init               - 🚀 Initialize a new validator configuration
  deploy             - 📦 Deploy Validators
  list               - 📋 List validators
  set:identity       - 🪪  Set Validator Identity
  set:unstaked       - 📴 Set Validator Identity to Unstaked Key
  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 Validator Startup Config
  update:jinja       - 🧩 Update Jinja Template
  start              - 🟢 Start Validator
  stop               - 🔴 Stop Validator
  restart            - ♻️  Restart Validator
  cleanup            - 🧹 Cleanup Validator - Remove Ledger/Snapshot Unnecessary Files
  get:snapshot       - 💾 Download Snapshot with aria2c
  gen:vote-account   - 🗳️  Generate Vote Account
  switch             - 🔁 Switch Validator Identity - No DownTime Migration