validador de Solana Mainnet - Zero Downtime Migration

🚀 Cero Procedimiento de Migración en tiempo de inactividad

Esta guía explica cómo migrar un validador de red principal Solana existente a un nuevo servidor sin tiempo de inactividad.

Prerrequisitos

Asegúrese de que los dos nodos validadores siguientes ya están establecidos:
  1. Nodo de validador activo de Mainnet (Fuente, De)
  2. Nuevo Nodo de validador de Mainnet (Destinación, To)
Los dos nodos deben establecerse usando el slv v init Comando.
Asegúrese de que ya tiene un servidor de repuesto disponible. Si usted no tiene un servidor de repuesto, ejecutar este procedimiento podría detener su validador activo, causando un fallo del sistema.
Ambos nodos deben ser totalmente sincronizados con la última slot (verificar con solana catchup comando; diferencia de slot debe ser 0).
En este ejemplo, los nodos validadores son nombrados como sigue:
  • Fuente (Activa, De) Nombre: main-node
  • Destino (Nuevo, A) Nombre: spare-node
NOVEDAD Ambos nodos deben tener configuraciones idénticas, excepto las direcciones IP (ansible host) y los nombres.
Claves públicas utilizadas para ambos nodos:
yaml
identity_account: FgYddqZuWLWiHCxWGG3J7VdzD2TGcCzKEZTHWdeHSLV
vote_account: oY4zjHQuRE1MQYAnQmfrodoXukBkfGVfYWUZNrn7SLV
authority_account: hY9VpH6ahHLS4uhegd16cQ5wNaicejVtv2PxrzRySLV

Configuración del nuevo Nodo de Spare

Establecer el nuevo nodo de repuesto ejecutando:
bash
slv v init
.
.
? Do you want to create a new identity key now? (Y/n) › No
? Please Enter Your Identity Public Key › FgYddqZuWLWiHCxWGG3J7VdzD2TGcCzKEZTHWdeHSLV
? Enter Inventory Name (FgYddqZuWLWiHCxWGG3J7VdzD2TGcCzKEZTHWdeHSLV) › epics-spare-node
? Do you want to create a new vote account key now? (Y/n) › No
? Please Enter Your Vote Account Public Key › oY4zjHQuRE1MQYAnQmfrodoXukBkfGVfYWUZNrn7SLV
? Please Enter Your Vote Account's Authority Key › hY9VpH6ahHLS4uhegd16cQ5wNaicejVtv2PxrzRySLV

Despliegue y sincronización del Nodo de Destino

Despliegue el nodo de destino primero:
bash
slv v deploy -n mainnet -p spare-node
Verificar la sincronización es completa y la diferencia de slot es 0.

Verificar Configuración de Nodos Fuente y Destino

Confirme las configuraciones para ambos nodos son idénticas utilizando:
bash
cat ~/.slv/inventory.mainnet.validators.yml
Ambos nodos deben tener ajustes idénticos, excepto ansible_host (dirección IP) y name.
yaml
mainnet_validators:
  hosts:
    main-node:
      name: main-node
      ansible_host: XXX.XXX.XXX.XXX
      ansible_user: solv
      ansible_ssh_private_key_file: ~/.ssh/id_rsa
      identity_account: FgYddqZuWLWiHCxWGG3J7VdzD2TGcCzKEZTHWdeHSLV
      vote_account: oY4zjHQuRE1MQYAnQmfrodoXukBkfGVfYWUZNrn7SLV
      authority_account: hY9VpH6ahHLS4uhegd16cQ5wNaicejVtv2PxrzRySLV
      validator_type: agave
      ...
    spare-node:
      name: spare-node
      ansible_host: YYY.YYY.YYY.YYY
      ansible_user: solv
      ansible_ssh_private_key_file: ~/.ssh/id_rsa
      identity_account: FgYddqZuWLWiHCxWGG3J7VdzD2TGcCzKEZTHWdeHSLV
      vote_account: oY4zjHQuRE1MQYAnQmfrodoXukBkfGVfYWUZNrn7SLV
      authority_account: hY9VpH6ahHLS4uhegd16cQ5wNaicejVtv2PxrzRySLV
      validator_type: agave
      ...

Ejecutando la migración de Node Validator

Ejecute la migración del nodo con los siguientes comandos:

1. Select Solana Network

bash
slv v switch
? Select Solana Network (mainnet)
  testnet
 mainnet

2. Introduce el nombre del validador fuente

bash
 Switching Mainnet Validator Identity...
? From Validator Name › main-node

3. Introduce el nombre del validador del destino

bash
? To Validator Name › spare-node
Tras la migración exitosa, verá la salida similar a:
bash
PLAY RECAP ********************************************************************
main-node : ok=3 changed=1 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0
spare-node : ok=4 changed=3 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0

Successfully swapped hosts spare-node and main-node in mainnet_validators
 Successfully Switched Validator Identity
Su migración de nodos validador está ahora completa.