
Cómo configurar un validador de Solana
Tabla de contenido
- Terminología: ¿qué es un validador de Solana?
- Primeros pasos: consigue el hardware del servidor
- Instala Solana CLI de forma local
- Configura la cuenta de voto
- Crea los pares de claves
- Opcional: usa una wallet de papel para la clave de retiro
- Opcional: busca una clave personalizada para la cuenta de voto
- Crea la cuenta de voto a partir de los pares de claves
- Opcional: establece la comisión
- Opcional: agrega una multifirma
- Configura tu máquina como servidor validador
- Configura el sistema y el usuario
- Optimiza el sistema
- Configura los discos duros
- Instala Solana CLI en el servidor del validador
- Opcional: instala el cliente validador de Jito
- Crea scripts para ejecutar el validador
- Crea el script de shell
- Verifica que el validador funcione correctamente
- Configura el validador como proceso daemon
- Configura el monitoreo y la seguridad
- Desactiva la autenticación con contraseña
- Agrega
- Par de claves de identidad del validador
- Configura el monitoreo con Watchtower
- Opcional: monitoreo de la comunidad
- Opcional: monitoreo personalizado mediante el método RPC getHealth
- Opcional: soluciones de monitoreo de terceros
- Agrega stake al validador
- Crea los pares de claves y la cuenta de stake
- Publica la información del validador
- Conclusión
- Recursos adicionales
Esta publicación se centrará en cómo poner en funcionamiento un validador de la mainnet de Solana desde una perspectiva técnica. Configuraremos herramientas y ajustes para facilitar las operaciones continuas, pero las operaciones más avanzadas de los validadores quedan fuera del alcance. También quedan fuera de esta publicación los aspectos económicos de operar un validador, incluidos temas como atraer stake y solicitar subsidios. Como breve acotación, quienes estén interesados en operar un validador deberían usar la Calculadora de ganancias de validadores de Cogent Crypto para estimar los ingresos de un validador en una situación hipotética determinada.
Esta publicación supone que conoces los fundamentos de la administración de sistemas Linux. No tienes que ser programador ni experto en administración de sistemas para operar un validador, pero debes sentirte cómodo ejecutando comandos en la terminal, creando scripts básicos de shell y trabajando con archivos de configuración.
Si no sabes mucho sobre la administración de sistemas Linux, pero quieres aprender más, existen muchos puntos de partida excelentes, como Linux Journey.
Terminología: ¿qué es un validador de Solana?
El conjunto de herramientas de Solana CLI contiene el binario solana-validator, que puede:
- Conectarse a un clúster de Solana y sincronizar el estado actual del clúster
- Producir, recibir y compartir snapshots y otros datos del clúster para mantenerse actualizado
- Votar para verificar nuevos bloques como parte del consenso del clúster
- Procesar transacciones entrantes y producir nuevos bloques
- Exponer API RPC y basadas en eventos para consultar los datos del clúster y enviar nuevas transacciones
Un validador de Solana también puede denominarse cliente (porque se conecta a la red de validadores y solicita datos), servidor (porque gestiona solicitudes de otros validadores y les proporciona datos) o nodo.
Un nodo RPC es un validador de Solana sin stake y sin derecho a voto que registra toda la información de la red. Esto significa que solo responde a solicitudes de datos y no participa en el consenso.
El término “validador de Solana” también puede referirse a una entidad del ecosistema de Solana que opera un validador de Solana con stake y derecho a voto, y participa en el consenso.
Puedes encontrar más información sobre la diferencia entre los RPC, los proveedores de RPC y los validadores aquí.
Primeros pasos: consigue el hardware del servidor
Necesitarás una computadora potente dedicada exclusivamente a operar el validador y una segunda si quieres ejecutar validadores tanto en testnet como en mainnet. Actualmente, la recomendación mínima es de 12 núcleos/24 hilos, 256 GB de RAM, 2 discos SSD de 1 TB (idealmente con RAID0) y una conexión a Internet de 10 GB. Puedes consultar los requisitos de hardware con más detalle aquí.
Si te tienta ahorrar costos operando solo en mainnet, ten en cuenta que debes ejecutar un validador de testnet para cumplir los requisitos del Solana Foundation Delegation Program (SFDP).
Puedes comprar y operar el hardware por tu cuenta o alquilarlo a un proveedor de centros de datos (recomendamos TeraSwitch). También puedes alquilarlo a un proveedor de computación en la nube, pero no lo recomendamos porque suele tener un costo prohibitivo y ser más propenso a problemas de rendimiento. Solana Foundation Server Program busca facilitar que los operadores de validadores alquilen hardware a operadores de centros de datos. Obtén más información aquí.
Para ayudar a descentralizar la red, puedes considerar ASN y ciudades que aún no tengan muchos nodos de Solana ni mucho stake. Algunos pools de staking y el SFDP te recompensarán según la descentralización por ASN y ciudad.
Puedes consultar los principales centros de datos actuales aquí.
Instala Solana CLI de forma local
Es muy recomendable instalar las herramientas localmente para generar ahí todas las claves necesarias y mantener la clave de retiro fuera del servidor del validador. Puedes consultar las instrucciones para configurar Solana CLI localmente aquí.
Cuando las herramientas estén disponibles localmente en tu línea de comandos, configúralas para que apunten a testnet de forma predeterminada:
$ solana config set --url https://api.testnet.solana.comPara mainnet, puedes apuntar al endpoint predeterminado:
$ solana config set --url https://api.mainnet-beta.solana.comLos endpoints públicos de mainnet suelen estar saturados de solicitudes. Si el rendimiento no te satisface, puedes registrarte en Helius y usar tu endpoint de Helius de la siguiente manera:
$ solana config set --url https://mainnet.helius-rpc.com/?api-key=<YOUR-HELIUS-API-KEY>Configurar e iniciar el validador requerirá ejecutar transacciones, por lo que debes tener una wallet con algunos SOL. Si apenas estás configurando testnet, puedes crear una wallet predeterminada y enviarte algunos SOL mediante un airdrop con los siguientes comandos:
$ mkdir -p ~/.config/solana
$ solana-keygen new --outfile ~/.config/solana/id.json
$ solana airdrop 1 ~/.config/solana/id.jsonEs muy recomendable usar wallets diferentes para testnet y mainnet. Como el formato de las claves es el mismo, puedes usar las mismas en ambas redes, pero evita la tentación de hacerlo. Si usas las mismas claves para wallets con fondos en testnet y mainnet, podrías ejecutar accidentalmente en mainnet comandos destinados a testnet.
Obtén más información sobre cómo generar claves, junto con algunos métodos más seguros para hacerlo.
Configura la cuenta de voto
La cuenta de voto de tu validador se crea con el comando solana create-vote-account y tres pares de claves:
- Par de claves de identidad — El validador usa este par de claves para identificarse ante la red y enviar transacciones, como votos. La clave privada deberá permanecer en el servidor, así que lo más seguro es no guardar en ella más SOL de los necesarios para las transacciones de voto (aproximadamente 1 SOL al día).
- Par de claves de la cuenta de voto — Este par de claves corresponde a la propia cuenta de voto y se usa para buscarla y delegarle stake. El comando
create-vote-accountsolo necesita la clave privada para demostrar que posees la clave requerida. Después de crear la cuenta de voto, solo necesitarás la clave pública. Esto no puede cambiarse. - Par de claves de retiro — Este par funciona como clave maestra de la cuenta de voto y se usa para retirar recompensas, cambiar la clave de identidad o de retiro y realizar otras operaciones en la cuenta. Esta es, por mucho, la clave más sensible de las tres y no debes generarla en tu servidor ni copiarla allí. Para mainnet, considera usar una wallet de papel, una wallet de hardware o una multifirma para esta clave.
Crea los pares de claves
Crea los pares de claves para testnet de la siguiente manera:
$ solana-keygen new -o identity.json
$ solana-keygen new -o vote.json
$ solana-keygen new -o withdraw.jsonOpcional: usa una wallet de papel para la clave de retiro
Una wallet de papel es una frase de 12 (o 24) palabras escrita en una hoja de papel que se introduce con el teclado cuando necesitas la clave para firmar algo. Si no planeas configurar una multifirma, la seguridad adicional que ofrece es adecuada para la clave de retiro de mainnet, ya que esta brinda acceso raíz a tu cuenta de voto. Ejecuta este comando:
$ solana-keygen new --no-outfileAnota en una hoja de papel la frase que se muestra. También puedes anotar la clave pública, el comando exacto que usaste para crear la clave y el solana-keygen --version. Ten en cuenta que existen distintos esquemas para convertir la frase de contraseña en una clave privada. Antes de guardar la hoja, verifica que puedas usarla para acceder a la clave:
$ solana-keygen verify <PUBKEY> ASKAl momento de escribir esto, los marcadores ASK y prompt:// tienen comportamientos diferentes al decodificar claves. Asegúrate de saber cuál funciona con tu clave.
Bajo ninguna circunstancia pierdas la hoja de papel donde anotaste la clave, ya que no hay otra forma de recuperarla. No olvides borrar la frase de la clave del búfer de tu terminal.
Opcional: busca una clave personalizada para la cuenta de voto
Algunos validadores tienen claves públicas personalizadas para sus claves de identidad o de cuenta de voto. Por ejemplo, el validador de Helius usa HEL1USMZKAL2odpNBj2oCjffnFGaYwmbGmyewGv1e2TU como clave de identidad e he1iusunGwqrNtafDtLdhsUQDFvo13z9sUa36PauBtk para su cuenta de voto. Puedes crearlas con el subcomando grind de la siguiente manera:
$ solana-keygen grind --starts-with PREF1X:1Este subcomando generará una clave cuya clave pública comience con PREF1X, que puede ser cualquier cadena base58 válida que especifiques. Para ello, genera claves hasta encontrar una que cumpla los criterios, por lo que tarda una cantidad de tiempo exponencial según la longitud del prefijo que quieras.
La clave de la cuenta de voto no puede cambiarse, especialmente después de publicarla y de que otros comiencen a delegarle stake. Si quieres una clave personalizada, este es el momento de crearla.
Crea la cuenta de voto a partir de los pares de claves
Cuando los pares de claves estén listos, crea la cuenta de voto de la siguiente manera:
$ solana create-vote-account --fee-payer ~/.config/solana/id.json vote_account.json identity.json withdrawal.jsonAquí, vote_account.json es el par de claves de la cuenta de voto, identity.json es el par de claves de identidad del validador, withdrawal.json es el par de claves de la autoridad de retiro e ~/.config/solana/id.json es una wallet con SOL que se usará para pagar la creación de la cuenta de voto.
Si usaste una wallet de papel para el par de claves de retiro, tu comando podría verse así:
$ solana create-vote-account --fee-payer ~/.config/solana/id.json vote_account.json identity.json ASKPuedes consultar la cuenta de voto (o cualquier otra) con este comando:
$ solana vote-account <PUBKEY>En este punto, necesitarás el par de claves de identidad para ejecutar el servidor del validador. Deberás mantener en secreto el par de claves de retiro y usarlo solo para retiros y cambios en la cuenta de voto. Ya no necesitarás el par de claves de la cuenta de voto (pero no olvides la clave pública).
Puedes encontrar más información sobre las cuentas de voto aquí.
Opcional: establece la comisión
create-vote-account acepta la comisión como parámetro opcional, pero el valor predeterminado es 100 %, lo que implica que tu validador es privado. Si quieres atraer stake externo a tu validador de mainnet, probablemente debas elegir una comisión menor.
Si la clave pública de nuestra cuenta de voto fuera <VOTE_ACCT_PUBKEY>, quisiéramos pagar el cambio desde nuestra wallet con fondos id.json, tuviéramos una clave de retiro en una wallet de papel y quisiéramos establecer la comisión en 8 %, podríamos hacerlo así:
$ solana vote-update-commission --fee-payer ~/.config/solana/id.json <VOTE_ACCT_PUBKEY> 8 ASKOpcional: agrega una multifirma
Una multifirma es un tipo especial de wallet que requiere las firmas de una o más wallets adicionales para ejecutar transacciones. Puede usarse para compartir la custodia de la cuenta de voto entre varias personas. Aunque administres el validador por tu cuenta, puedes considerar una multifirma para agregar fácilmente a otras personas a la cuenta de voto más adelante.
Squads es una herramienta multifirma para Solana que incluye funciones específicas para administrar validadores compartidos. Para configurar el validador en Squads:
- Configura tu navegador con un plugin compatible de wallet de Solana, como Backpack
- Ve a la dApp de Squads
- Configura un squad con las personas y los parámetros que quieras para tu validador
- Ve a Developers > Validators y sigue el proceso para agregar el validador
- Se te pedirá que pegues la clave privada de retiro. Esta se usará para cambiar la clave de retiro existente por la clave de retiro compartida del squad
- Verifica la clave pública de retiro actualizada con
solana vote-account
Puedes encontrar más información sobre cómo usar Squads para administrar validadores compartidos aquí.
Configura tu máquina como servidor validador
Los pasos variarán según el estado inicial de tu máquina, pero el objetivo es terminar con lo siguiente:
- La versión LTS más reciente de Ubuntu, instalada y actualizada
- Otras distribuciones de Linux (por ejemplo, las basadas en Debian) también pueden funcionar, pero todos los ejemplos aquí suponen que usas Ubuntu. Cuanto más te alejes de Ubuntu, más tendrás que modificar los comandos
- Acceso SSH a nivel de usuario configurado
- Usuario de servicio
solconfigurado - Sistema optimizado y discos duros configurados
Configura el sistema y el usuario
Asegúrate de que tu sistema esté actualizado y crea el usuario de servicio sol:
$ sudo apt update
$ sudo apt upgrade
$ sudo adduser solTambién puedes darle acceso a sudo (esto sacrifica algo de seguridad a cambio de comodidad):
$ sudo adduser sol sudoOptimiza el sistema
Agrega la configuración recomendada por Solana Labs a sysctl e systemd para aumentar los límites de descriptores de archivos, archivos mapeados en memoria y otros recursos permitidos. Cuando tu validador sea el líder de bloque actual o próximo, toda la red intentará abrir conexiones y enviarle transacciones. Por eso, el límite de descriptores de archivos es especialmente importante.
Configura los discos duros
La recomendación actual de Solana Labs es tener 2 SSD físicos de al menos 1 TB: uno para los datos de las cuentas y otro para los datos del ledger (el sistema operativo también puede estar en este disco). No recomiendan almacenar las cuentas y los ledgers en el mismo disco debido al alto nivel de IOPS.
Esta es su guía para configurar los 2 discos.
Otra forma de aprovechar varias unidades para aumentar las IOPS disponibles es configurarlas juntas en un solo volumen RAID0 y dejar que el controlador RAID optimice qué segmentos se almacenan en cada unidad para maximizar la capacidad de IOPS de ambas. Esto también permite agregar más unidades al RAID para aumentar aún más las IOPS si fuera necesario. Hasta ahora, no hemos tenido problemas de rendimiento al ejecutar un validador con esta configuración.
Si usas un solo volumen RAID0, solo debes configurar los directorios de datos del validador en tu volumen. Puedes hacerlo directamente en el directorio de inicio del usuario sol:
$ sudo su sol
$ mkdir -p /home/sol/accounts
$ mkdir -p /home/sol/ledger
$ mkdir -p /home/sol/snapshots
$ mkdir -p /home/sol/logsInstala Solana CLI en el servidor del validador
Repite los pasos anteriores para instalar Solana CLI, pero esta vez hazlo en el servidor del validador como usuario sol. Al instalarlo en el servidor del validador, es muy recomendable compilarlo desde el código fuente.
Si usas la herramienta de instalación de Solana, puedes ejecutar el comando solana-install para realizar futuras actualizaciones a nuevas versiones (algo necesario para seguir participando en el clúster).
Opcional: instala el cliente validador de Jito
Jito Labs creó un fork del validador de Solana y lanzó su propia versión, que agrega la capacidad de valor máximo extraíble (MEV). El MEV consiste en agregar o reordenar transacciones dentro de un bloque que estás creando para obtener ganancias. Jito creó un mercado para quienes quieren pagar una prima por hacerlo (los “buscadores”). Si ejecutas el validador de Jito, te enviarán paquetes de transacciones MEV para que tu validador los incluya en los bloques que crea a cambio de una propina adicional.
El validador de Jito agrega cierta complejidad y latencia a las operaciones de tu validador, pero también incorpora las propinas MEV como fuente adicional de ingresos. La configuración es casi igual, salvo que además deberás considerar lo siguiente:
- Cobrar y administrar propinas MEV
- La latencia del motor de bloques de Jito
- La posible ejecución de un relayer de Jito
Puedes encontrar las instrucciones para instalar el cliente validador de Jito aquí.
Crea scripts para ejecutar el validador
Crea el script de shell validator.sh
Primero, copia el par de claves de identidad de tu validador al servidor remoto:
$ scp identity.json remoteuser@your.validator.host:/home/solLa forma habitual de administrar la configuración de tu validador es encapsularla en un script de shell. Crea un script como punto de partida y hazlo ejecutable:
$ sudo su sol
$ cat >/home/sol/validator.sh <<EOF
#!/bin/bash
PATH=/home/sol/.local/share/solana/install/active_release/bin:$PATH
exec solana-validator \
--identity /home/sol/identity.json \
--vote-account <VOTE_ACCOUNT_PUBKEY> \
--known-validator 5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on \
--known-validator 7XSY3MrYnK8vq693Rju17bbPkCN3Z7KvvfvJx4kdrsSY \
--known-validator Ft5fbkqNa76vnsjYNwjDZUXoTWpP7VYm3mtsaQckQADN \
--known-validator 9QxCLckBiJc783jnMvXZubK4wH86Eqqvashtrwvcsgkv \
--only-known-rpc \
--log /home/sol/logs/solana-validator.log \
--accounts /home/sol/accounts \
--snapshots /home/sol/snapshots \
--ledger /home/sol/ledger \
--rpc-port 8899 \
--dynamic-port-range 8000-8020 \
--entrypoint entrypoint.testnet.solana.com:8001 \
--entrypoint entrypoint2.testnet.solana.com:8001 \
--entrypoint entrypoint3.testnet.solana.com:8001 \
--expected-genesis-hash 4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY \
--wal-recovery-mode skip_any_corrupted_record \
--limit-ledger-size
EOF
$ chmod +x /home/sol/validator.shEsta configuración es adecuada para empezar a operar en testnet de forma rápida y segura. Cuando todo esté listo, deberás volver a este script y ejecutar solana-validator --help para ver la lista completa de opciones de configuración y personalizarlo.
Intenta iniciar el validador mediante el script:
$ ./validator.shLa primera vez que se inicie, deberá ponerse al día con el estado actual del clúster.
Verifica que el validador funcione correctamente
Puedes seguir desde cualquier parte del clúster el progreso visible externamente de tu validador (o de cualquier otro) con:
$ solana catchup <IDENTITY_PUBKEY>Puedes ver su progreso internamente desde una sesión como usuario sol con:
$ solana-validator --ledger /home/sol/ledger monitorPuedes encontrar más información para verificar si tu validador se conecta correctamente al clúster aquí.
Configura el validador como proceso daemon
Crea un archivo systemd unit para administrarlo como daemon:
$ sudo cat >/etc/systemd/system/sol.service <<EOF
[Unit]
Description=Solana Validator
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=sol
LimitNOFILE=1000000
LogRateLimitIntervalSec=0
ExecStart=/home/sol/validator.sh
[Install]
WantedBy=multi-user.target
EOFAsegúrate de que la invocación anterior de ./validator.sh ya no se esté ejecutando. Después, inicia el validador como daemon:
$ sudo systemctl daemon-reload
$ sudo systemctl enable --now solConfigura el monitoreo y la seguridad
Desactiva la autenticación con contraseña
En tu archivo /etc/ssh/sshd_config, puedes configurar el daemon SSH para que no acepte métodos de inicio de sesión con contraseña ni de desafío-respuesta:
...
PasswordAuthentication no
ChallengeResponseAuthentication no
...No olvides volver a cargar el daemon sshd con la nueva configuración:
$ sudo systemctl reload sshdAgrega fail2ban y ufw
fail2ban funcionará sin configuración adicional para bloquear cualquier conexión que no logre autenticarse varias veces:
$ sudo apt install fail2banufw es un firewall incluido con el sistema que puedes configurar con unos pocos comandos (suponiendo que la configuración final de tu validador use los puertos y rangos de puertos predeterminados, y aloje SSH en el puerto 22):
$ sudo ufw allow 22/tcp
$ sudo ufw allow 8000:10000/tcp
$ sudo ufw allow 8000:10000/udp
$ sudo ufw enablePar de claves de identidad del validador
En la práctica, la mayoría de los validadores mantienen su clave de identidad en el servidor del validador para que el script pueda ejecutarse y reiniciarse sin intervención humana. Sin embargo, puedes usar ASK o prompt:// para proporcionar la clave de identidad al validador sin almacenarla en el sistema de archivos del servidor. Esto aumenta la carga operativa y el riesgo, ya que ahora una persona debe sustituir a systemd y administrar manualmente el proceso daemon, pero es posible.
La mejor estrategia para proteger tu par de claves de identidad es depositar únicamente la cantidad mínima de SOL necesaria para cubrir unos días de costos de votación.
Shinobi Systems publicó algunas herramientas para ayudar a administrar cuentas de voto, incluidas transferencias automáticas de saldo fuera de la cuenta de voto sin usar la clave de retiro cada vez.
Consulta la página de Solana Labs sobre la seguridad de los validadores para obtener más consejos.
Configura el monitoreo con Watchtower
solana-watchtower está incluido en el conjunto de herramientas de Solana CLI y puede alertarte sobre problemas con tu validador y con el clúster en general. Puedes configurarlo y ejecutarlo de manera similar al propio validador mediante un script watchtower.sh.
Este es un ejemplo en el que usa PagerDuty para enviar alertas y escribe sus registros en watchtower.log:
$ cat >watchtower.sh <<EOF
#!/bin/bash
PATH=/home/solana/.local/share/solana/install/active_release/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
exec >>watchtower.log \\
env PAGERDUTY_INTEGRATION_KEY=<PAGERDUTY_KEY> \\
solana-watchtower \\
--validator-identity <IDENTITY_PUBKEY> \\
--monitor-active-stake \\
--interval 20 \\
--minimum-validator-identity-balance 3 \\
--url https://api.testnet.solana.com
EOFSolana Labs también tiene un ejemplo de cómo configurarlo para enviar alertas mediante Telegram.
No se recomienda configurar watchtower en la misma máquina que tu validador, ya que no recibirás notificaciones si la máquina completa deja de funcionar. Sin embargo, podrías hacerlo si cuentas con varias formas de monitoreo y puedes supervisar esos casos por separado.
A diferencia del validador, watchtower no consume muchos recursos y puede ejecutarse desde un entorno de computación en la nube o serverless, como los que ofrecen AWS o GCP.
Opcional: monitoreo de la comunidad
Muchas personas de la comunidad de Solana también monitorean el clúster y están dispuestas a enviar alertas según condiciones similares a las que ofrece watchtower.
Stakewiz ofrece monitoreo de validadores de Solana mediante Telegram. Por ejemplo, si quisieras recibir alertas sobre el validador de Helius, podrías ir a su página y hacer clic en “+ Crear alerta”.
Ten en cuenta que el monitoreo de la comunidad está diseñado para informar a las personas sobre problemas con los validadores en los que hacen staking. Como operador de un validador, no debes depender exclusivamente de otros para monitorear tus servicios.
Opcional: monitoreo personalizado mediante el método RPC getHealth
Si quieres consultar directamente el estado de tu validador, su interfaz JSON RPC tiene un método llamado getHealth que puedes consultar periódicamente para saber si el validador funciona correctamente y obtener información sobre cualquier problema.
Opcional: soluciones de monitoreo de terceros
Cuando tu validador haya crecido y tengas una fuente de ingresos que proteger, puedes considerar soluciones de monitoreo SaaS de nivel comercial, como Datadog o Splunk. Estas soluciones suelen funcionar de una de dos maneras: ejecutan un proceso daemon en tu servidor que monitorea localmente los registros y las métricas y los exporta al proveedor, o exponen getHealth o un endpoint de estado similar para que el proveedor consulte tu validador de forma remota.
Agrega stake al validador
La red de Solana alcanza el consenso mediante un proceso de votación de prueba de participación (PoS). Esto significa que el peso del voto de un validador es proporcional a la cantidad de stake en SOL que se le haya delegado, de forma similar al funcionamiento de una sociedad por acciones si consideras los SOL en staking como acciones. Además de la votación, la frecuencia con la que tu validador se convierte en líder de bloque es proporcional a la cantidad de SOL en stake que se le haya delegado.
Existen muchas wallets, dApps y otras herramientas que facilitan hacer staking de tus SOL en validadores existentes. Sin embargo, estos son los pasos para hacerlo manualmente con la CLI:
- Crea 3 pares de claves con
solana-keygen new - Crea una cuenta de stake a partir de los pares de claves mediante solana create-stake-account
- Transfiere algunos SOL a la cuenta de stake (puedes hacerlo con
solana aidropen testnet) - Delega el stake depositado a un validador mediante
solana delegate-stake - Espera hasta la siguiente época para que se active el stake y compruébalo con
solana stake-account
Crea los pares de claves y la cuenta de stake
El proceso para crear los pares de claves y la cuenta de stake es similar al de crear la cuenta de voto. Los 3 pares de claves son los siguientes:
- Par de claves de la autoridad de stake - permite realizar tareas operativas en la cuenta de stake, como delegar, anular delegaciones, dividir y fusionar
- Par de claves de la cuenta de stake - la clave pública que identifica la propia cuenta de stake (la clave privada deja de ser necesaria tras crear la cuenta)
- Par de claves de retiro - el par de claves maestro para retirar stake y restablecer los pares de claves de autoridad de la cuenta de stake. Trátalo con cuidado y considera usar una wallet de hardware, una wallet de papel o una multifirma
Es muy recomendable tener claves distintas para testnet y mainnet por las mismas razones que para la cuenta de voto. Sin embargo, puedes reutilizar un solo par de claves de autoridad de stake y de autoridad de retiro en varias cuentas de stake dentro del mismo clúster. Usar las mismas claves para las cuentas de stake es un requisito previo para fusionarlas.
Este es un ejemplo para crear una cuenta de stake con 1 SOL en testnet mediante wallets basadas en archivos para los pares de claves, financiarla desde tu wallet id.json y delegar ese stake a tu nuevo validador:
$ solana-keygen new -o stake_auth.json
$ solana-keygen new -o stake_acct_1.json
$ solana-keygen new -o stake_withdrawal_auth.json
$ solana airdrop 1 ~/.config/solana/id.json
$ solana create-stake-account --from ~/.config/solana/id.json stake_acct_1.json 1 --stake-authority stake_auth.json --withdraw-authority stake_withdraw_auth.json --fee-payer ~/.config/solana/id.json
$ solana delegate-stake --stake-authority stake_auth.json <STAKE_ACCT_1_PUBKEY> <VOTE_ACCT_PUBKEY> --fee-payer ~/.config/solana/id.json<VOTE_ACCT_PUBKEY> se refiere a la dirección de la cuenta de voto, no a la identidad del validador.
Ahora puedes consultarla para ver si el stake se está activando y en qué época quedará activo:
$ solana stake-account <STAKE_ACCT_1_PUBKEY>Cuando comience la siguiente época y el stake esté activo, los votos de tu validador comenzarán a contar. Podrás ver los votos recientes como parte del comando solana vote-account. Si solo agregaste unos pocos SOL como en el ejemplo, no esperes que tu validador se convierta en líder de bloque.
Votar cuesta aproximadamente entre 1 y 2 SOL al día. Por lo tanto, al momento de escribir esto, a tu validador le costaría entre $200 y $300 al día solo votar en mainnet.
(Más información sobre la delegación de stake y la administración de cuentas de stake).
Publica la información del validador
Si exploras los directorios habituales de validadores de Solana, como validators.app, notarás que todos tienen un nombre, una descripción, un logotipo y otros metadatos. Estos datos se publican on-chain para todos los validadores registrados en cada clúster y puedes verlos al ejecutar solana validator-info get.
Cuando tu validador esté en funcionamiento, puedes publicar su información, sobre todo una vez que operes en mainnet e intentes atraer stake.
Este es un ejemplo básico de cómo publicar tus metadatos:
$ solana validator-info publish "My Awesome Validator" \
--website "https://awesome-validator.xyz/" \
--icon-url "https://awesome-validator.xyz/icon360x360.png" \
--keypair validator_identity.json \
--details "The best validator in the world!"Cuando se cree el registro de metadatos, tendrá su propia clave, que podrás actualizar más adelante con el argumento --info-pubkey. Ten en cuenta que la URL del ícono puede tener un máximo de 80 caracteres. Puedes encontrar más información sobre cómo publicar la información y los metadatos del validador aquí.
Conclusión
¡Felicitaciones! Si seguiste todos los pasos y llegaste hasta aquí, tu propio validador de Solana ya debería estar en funcionamiento. ¡Te damos la bienvenida a la comunidad de validadores de Solana!
Recursos adicionales
Artículos relacionados
Suscríbete a Helius
Mantente al día con las novedades del desarrollo en Solana y recibe actualizaciones cuando publiquemos


