Solana Mainnet Validator - Quickstart
Introducción
Para implementar un validador de red de Solana, utilizarás la herramienta de línea de comandos SLV.
Esta guía de arranque rápido explica cómo lanzar y desplegar un validador de red de repuesto caliente.
Debes tener Ubuntu 24.04 LTS limpio instalado en su servidor.
Preparación de un servidor bare metal
Si bien es posible ejecutar un nodo Solana en VPS o máquinas virtuales (VM), lograr un rendimiento óptimo y un funcionamiento estable es difícil. Solana recomienda oficialmente el uso de servidores bare metal.
Los validadores de Mainnet deben estar estables durante la congestión.
A continuación se muestra una directriz basada en la documentación oficial Solana / Agave / Firedancer.
A continuación se muestra una directriz basada en la documentación oficial Solana / Agave / Firedancer.
Agave Validator (requisitos oficiales y recomendaciones)
Requisitos SOL
- No hay un requisito mínimo estricto SOL
- La cuenta de voto necesita 0.02685864 SOL para ser exento de alquiler
- Las transacciones de votación pueden costar hasta1.1 SOL / día
Requisitos de hardware (directriz)
| Componente | Validator | RPC Node (referencia) |
|---|---|---|
| CPU | 2.8GHz+ / AMD Gen3+ / Intel Ice Lake+ / SHA extensiones / AVX2 | 16 núcleos / 32 hilos+ |
| RAM | 256GB+ | 512GB+ |
| Disk | NVMe Gen3 x4 o mejor / Contabilidad-Ledger-Snapshots separación recomendado | Mayor capacidad recomendada |
| GPU | No se requiere | No se requiere |
Nota:
La velocidad del reloj y el rendimiento eficaz se consideran más importantes que el recuento básico.
Firedancer (Frankendancer)
Firedancer (Frankendancer) actualmente depende de Agave,
por lo menos asume la configuración recomendada Agave o superior.
por lo menos asume la configuración recomendada Agave o superior.
Minimum
- CPU de 24 núcleos
- 256GB RAM
- 2TB NVMe (High TBW)
Recomendado
- CPU de 32 núcleos @ √3GHz (AVX512 apoyado)
- 512GB RAM (ECC)
- Cuentas / Separación del título
- Ancho de banda de red de 1Gbps o superior
Para una configuración equilibrada de rendimiento de costos, Agave con una CPU de 24 núcleos y una RAM de 384 GB es una guía práctica.
Cuando corres
slv v init comando, se le preguntará si su servidor baremetal ya está establecido: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 supone que usted selecciona
yes.Si aún no ha preparado su servidor baremetal, consulte el Guía de configuración del servidor bare metal.
Además, puede encontrar estos recursos útiles:
Despliegue Solana Mainnet Firedancer Jito Validator
Nuevas implementaciones SLV siempre utilizan
unstaked-keypair.json como clave de identidad.
Esta es una mejor práctica para prevenir la doble votación y otras cuestiones.Por lo tanto, después del despliegue, por favor utilice
slv v set:identity para establecer la clave de identidad autorizada.En la mayoría de las operaciones de validador de mainnet, usted utilizará
slv v switch para cambiar la clave de identidad.
Para la migración de tiempo de inactividad cero, consulte esta guía.Seleccione la Red Solana
Seleccione la Red Solana que desea desplegar.
bash
slv v init
? Select Solana Network (mainnet)
testnet
❯ mainnetslv v init
? Select Solana Network (mainnet)
testnet
❯ mainnetNombre de usuario predeterminado de Input Server
La mayoría de las veces, el nombre de usuario predeterminado es
ubuntu o root.bash
? What's the user for the server? (ubuntu) › ubuntu? What's the user for the server? (ubuntu) › ubuntuDirección IP del servidor de entrada
Introduce la dirección IP del servidor.
bash
? What's the IP address of the server? ›? What's the IP address of the server? ›Establece RSA Key para SSH
Por favor, coloque el camino a su llave RSA. El camino predeterminado es
~/.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 succeededLuego SLV comprobará la conexión al servidor. Si la conexión es
éxito, el próximo paso será impulsado.
Tipo de validador de Solana
Seleccione el tipo de validador de 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-jitoSet Commission Rate
Establecer la tasa de comisión para su validador.
※ 1000 equivale al 10%.
bash
? Enter Commission BPS (Max 1000 = 10%) (1000)? Enter Commission BPS (Max 1000 = 10%) (1000)Generar o establecer la clave de identidad del validador de Solana
Puede generar una nueva clave de identidad o establecer una clave de identidad existente.
Este ejemplo muestra cómo establecer una clave de identidad existente con el nombre "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, ponga su clave de identidad en
~/.slv/keys/<your-pubkey>.json.Detección de Región Automática
A continuación, el sistema ping cada motor de bloque de su nodo configurado para detectar automáticamente la región más cercana. Mediante la medición de valores reales de ping, puede seleccionar la región óptima.
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.wtfGenerar o establecer el Validator de Solana Votar Clave de Cuenta
Puede generar una nueva clave de cuenta de voto o establecer una clave de cuenta de voto existente.
Este ejemplo muestra cómo establecer una clave de la cuenta 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>? Do you want to create a new vote account key now? (Y/n) › No
? Please Enter Your Vote Account Public Key > <your-vote-account>La información del nodo validador se guardará para
~/.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-subDespliegue el Validator
Una vez que confirme la configuración, el despliegue comenzará.
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 m¡Está hecho! Su validador de Solana está ahora desplegado. Tomará algún tiempo
sincronizar con la red Solana.
Depuracion y monitoreo
Después del despliegue, puede depurar y monitorear dentro del nodo de Solana RPC.
Puede comprobar el estado del nodo de Solana RPC usando los siguientes comandos:
bash
$ solv m$ solv msolv es un alias agave-validator -l /mnt/ledger.
Este ajuste se añade a ~/.profile durante el despliegue de los nodos RPC.Cambiar la clave de identidad
Después del despliegue, usted necesita cambiar la clave sin atascos de la clave de identidad autorizada.
bash
slv v set:identity -n mainnet --pubkey epics-subslv v set:identity -n mainnet --pubkey epics-subEste comando cambiará la clave de identidad de la clave de identidad autorizada.
※ Para la migración de tiempo de inactividad cero, consulte este guía.
Comandos de validador 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