Validateur Solana Mainnet - Migration zéro temps d'arrêt

Procédure de migration du temps d'arrêt zéro

Ce guide explique comment migrer un validateur de réseau principal Solana existant vers un nouveau serveur sans temps d'arrêt.

Préalables

Assurez-vous que les deux nœuds de validation suivants sont déjà configurés:
  1. Nœud de validation Activ Mainnet (Source, depuis)
  2. Nouveau nœud de validation du réseau principal (destination, à)
Les deux nœuds doivent être configurés en utilisant le slv v init commande.
Assurez-vous d'avoir déjà un serveur de rechange disponible. Si vous n'avez pas de serveur de secours, l'exécution de cette procédure pourrait arrêter votre validateur actif, provoquant un accident du système.
Les deux nœuds doivent être entièrement synchronisés à la dernière slot (vérifier avec solana catchup commande; la différence de slot doit être 0).
Dans cet exemple, les nœuds de validation sont nommés comme suit:
  • Source (active, de) Nom: main-node
  • Nom de destination (nouveau, à): spare-node
Les deux nœuds doivent avoir des configurations identiques, à l'exception des adresses IP (ansible host) et des noms.
Clés publiques utilisées pour les deux nœuds:
yaml
identity_account: FgYddqZuWLWiHCxWGG3J7VdzD2TGcCzKEZTHWdeHSLV
vote_account: oY4zjHQuRE1MQYAnQmfrodoXukBkfGVfYWUZNrn7SLV
authority_account: hY9VpH6ahHLS4uhegd16cQ5wNaicejVtv2PxrzRySLV

Configuration du nouveau nœud de rechange

Configurez le nouveau nœud de secours en exécutant:
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

Déployer et synchroniser le nœud de destination

Déployez le nœud de destination d'abord:
bash
slv v deploy -n mainnet -p spare-node
Vérifier la synchronisation est complète et la différence de slot est 0.

Vérifier la configuration des nœuds source et destination

Confirmer que les configurations des deux nœuds sont identiques en utilisant:
bash
cat ~/.slv/inventory.mainnet.validators.yml
Les deux nœuds doivent avoir des paramètres identiques, sauf ansible_host (adresse IP) et 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
      ...

Exécuter la migration des nœuds de validation

Exécuter la migration des nœuds avec les commandes suivantes:

1. Sélectionnez le réseau Solana

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

2. Entrez le nom du validateur source

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

3. Entrez le nom du validateur de destination

bash
? To Validator Name › spare-node
Une fois la migration réussie, vous verrez la sortie similaire à:
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
Votre migration des nœuds de validation est maintenant terminée.