Solana Mainnet Validator - Zero Downtime Migration

🚀 Zero Downtime Migration

Dieser Leitfaden erklärt, wie man einen bestehenden Solana Mainnet-Validator ohne Ausfallzeit auf einen neuen Server migriert.

Voraussetzungen

Stellen Sie sicher, dass die folgenden beiden Validierungsknoten bereits eingerichtet sind:
  1. Active Mainnet Validator Node (Quelle, Aus)
  2. Neuer Mainnet Validator Node (Destination, To)
≠ Beide Knoten müssen mit der slv v init Befehl.
Stellen Sie sicher, dass Sie bereits einen Ersatzserver zur Verfügung haben. Wenn Sie keinen Ersatzserver haben, könnte die Umsetzung dieser Prozedur Ihren aktiven Validator stoppen und einen Systemabsturz verursachen.
Beide Knoten müssen vollständig auf den neuesten Slot synchronisiert werden (verify with solana catchup Befehl; Slotdifferenz muss 0 sein.
In diesem Beispiel werden die Validierungsknoten wie folgt genannt:
  • Quelle (Aktiv, Aus) Name: main-node
  • Destination (New, To) Name: spare-node
≠ Beide Knoten müssen identische Konfigurationen haben, außer IP-Adressen (ansible host) und Namen.
Öffentliche Schlüssel für beide Knoten:
yaml
identity_account: FgYddqZuWLWiHCxWGG3J7VdzD2TGcCzKEZTHWdeHSLV
vote_account: oY4zjHQuRE1MQYAnQmfrodoXukBkfGVfYWUZNrn7SLV
authority_account: hY9VpH6ahHLS4uhegd16cQ5wNaicejVtv2PxrzRySLV

Neue Sparnode einrichten

Einrichten des neuen Ersatzknotens durch Ausführen:
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

Bereitstellung und Synchronisierung der Destination Node

Zuerst den Zielknoten bereitstellen:
bash
slv v deploy -n mainnet -p spare-node
Überprüfen Sie die Synchronisation ist vollständig und die Slotdifferenz ist 0.

Verifizieren Sie die Konfiguration von Quell- und Zielknoten

Bestätigen Sie die Konfigurationen für beide Knoten mit:
bash
cat ~/.slv/inventory.mainnet.validators.yml
≠ Beide Knoten müssen identische Einstellungen haben, außer ansible_host (IP-Adresse) und 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
      ...

Ausführender Validator Node Migration

Führen Sie die Knotenmigration mit folgenden Befehlen aus:

1. Wählen Sie Solana-Netzwerk

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

2. Geben Sie die Quelle Validator Name

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

3. Geben Sie den Bestimmungs-Validatornamen ein

bash
? To Validator Name › spare-node
Nach erfolgreicher Migration sehen Sie die Ausgabe ähnlich wie:
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
Ihre Validierungsknotenmigration ist jetzt abgeschlossen.