Validador da Solana Mainnet - Quickstart
Introdução
Para implantar um validador da rede principal Solana, você usará a ferramenta de linha de comando SLV.
Este guia de start 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 fornecidos para permanecer estáveis durante o congestionamento.
Abaixo está uma diretriz baseada na documentação oficial Solana / Agave / Firedancer.
Abaixo está uma diretriz baseada na documentação oficial Solana / Agave / Firedancer.
Validador Agave (requisitos e recomendações oficiais)
**Requisitos de SOL
- Não há exigência de SOL mínima estrita
- A Conta de Voto precisa de 0.02685864 SOL a ser isenta de renda
- As transações de votação podem custar Até ~1.1 SOL / dia
Requisitos de hardware (guia)
| Componente | Validador | Nó RPC (referência) |
|---|---|---|
| CPU | 2.8GHz+ / AMD Gen3+ / Intel Ice Lake+ / extensões SHA / AVX2 | 16 núcleos / 32 fios + |
| RAM | 256GB+ | 512GB+ |
| Disco | NVMe Gen3 x4 ou melhor / Accounts-Ledger-Snapshots separação recomendada | Maior capacidade recomendada |
| 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.
Firedancer (Frankendancer)
Firedancer (Frankendancer) depende atualmente de Agave,
Assim, no mínimo, assume a configuração recomendada por Agave ou superior.
Assim, no mínimo, assume a configuração recomendada por Agave ou superior.
Mínimo
- CPU 24-core @ > 2.8GHz
- 256GB de RAM
- 2TB NVMe (High TBW)
Recomendado
- CPU 32-core @ > 3GHz (AVX512 suportado)
- 512GB de RAM (ECC)
- Contas / Separação de registos
- Largura de banda de rede de 1Gbps ou superior
Para uma configuração equilibrada de custo-desempenho, Agave com uma CPU 24-core e 384GB RAM é uma diretriz prática.
Quando você executar o
slv v init comando, você será perguntado se 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➜ slv v init
? Select Solana Network (testnet) › mainnet
? 🛡️ Do you have a Solana Node Compatible Server? (no)
❯ yes
noEste tutorial assume que você seleciona
yes.Se ainda não preparou o seu servidor 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 implementações 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 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
❯ mainnetslv v init
? Select Solana Network (mainnet)
testnet
❯ mainnetNome de usuário padrão do servidor de entrada
Na maioria das vezes, o nome de usuário padrão é
ubuntu ou root.bash
? What's the user for the server? (ubuntu) › ubuntu? What's the user for the server? (ubuntu) › ubuntuEndereço IP do servidor de entrada
Insira o endereço IP do servidor.
bash
? What's the IP address of the server? ›? 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? What's the path to your RSA key? (~/.ssh/id_rsa) › ~/.ssh/id_rsa
🔍 Checking SSH connection...
✔︎ SSH connection succeededEm seguida, SLV irá verificar a conexão com o servidor. Se a conexão for
bem sucedido, o próximo passo será solicitado.
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? Select Validator Type (firedancer-jito)
agave
jito
jito-bam
firedancer-agave
❯ firedancer-jitoFixar a taxa da Comissão
DeFina a taxa de comissão para o seu validador.
1000 é igual a 10%.
bash
? Enter Commission BPS (Max 1000 = 10%) (1000)? 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? 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.xPor favor coloque sua chave de identidade em
~/.slv/keys/<your-pubkey>.json.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
✔ 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✔ 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.wtfGere ou defina a chave de votação do validador Solana
Você pode gerar uma nova chave de conta de votação ou definir uma chave de conta de voto existente.
Este exemplo mostra como definir uma chave de conta de votação 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>? 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✔︎ 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-subImplantar o Validador
Assim que confirmar a configuração, a implantação começará.
bash
slv v deploy -n mainnet -p epics-subslv v deploy -n mainnet -p epics-subbash
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
⚡️⚡️⚡️ 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 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
⚡️⚡️⚡️ 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! 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 msolv é 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 alterar a chave unstaking para a chave de identidade autorizada.
bash
slv v set:identity -n mainnet --pubkey epics-subslv v set:identity -n mainnet --pubkey epics-subEste comando irá alterar a chave de identidade para a chave de identidade autorizada.
□ Para migração sem paralisação, consulte isto guia.
Comandos de Validação 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 Migrationslv 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