Solana Testnet Validator - Zero Downtime Migration

🚀 Zero Downtime Migration

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

Voraussetzungen

Stellen Sie sicher, dass die folgenden beiden Validierungsknoten bereits eingerichtet sind:
  1. Aktiver Testnet Validator Node (Quelle)
  2. Neue Testnet Validator Node (Destination)
≠ 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; 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 testnet -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 Konfigurationen für beide Knoten mit:
bash
cat ~/.slv/inventory.testnet.validators.yml
≠ Beide Knoten müssen identische Einstellungen haben, außer der IP-Adresse (ansible_host) und Name.
yaml
testnet_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

Knotenmigration mit folgenden Befehlen ausführen:

1. Wählen Sie Solana-Netzwerk

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

2. Geben Sie die Quelle Validator Name

bash
 Switching Testnet 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 testnet_validators
 Successfully Switched Validator Identity
Ihre Validierungsknotenmigration ist jetzt abgeschlossen.