Solana Testnet Validator - Migratie zonder downtime

🚀 Migratieprocedure zonder downtime

Deze handleiding legt uit hoe je een bestaande validator op het Solana-testnet zonder downtime naar een nieuwe server migreert.

Vereisten

Zorg dat de volgende twee validatornodes al zijn ingericht:
  1. Actieve testnet-validatornode (bron)
  2. Nieuwe testnet-validatornode (doel)
⚠️ Beide nodes moeten zijn ingericht met het commando slv v init.
Zorg dat je al een reserveserver beschikbaar hebt. Heb je geen reserveserver, dan kan het uitvoeren van deze procedure je actieve validator stilleggen en een systeemcrash veroorzaken.
Beide nodes moeten volledig gesynchroniseerd zijn tot het laatste slot (controleer dit met solana catchup; het slotverschil moet 0 zijn).
In dit voorbeeld hebben de validatornodes de volgende namen:
  • Naam van de bron (actief, van): main-node
  • Naam van het doel (nieuw, naar): spare-node
⚠️ Beide nodes moeten identiek geconfigureerd zijn, met uitzondering van de IP-adressen (ansible_host) en de namen.
Public keys die voor beide nodes worden gebruikt:
yaml
identity_account: FgYddqZuWLWiHCxWGG3J7VdzD2TGcCzKEZTHWdeHSLV
vote_account: oY4zjHQuRE1MQYAnQmfrodoXukBkfGVfYWUZNrn7SLV
authority_account: hY9VpH6ahHLS4uhegd16cQ5wNaicejVtv2PxrzRySLV

De nieuwe reservenode inrichten

Richt de nieuwe reservenode in met:
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

De doelnode deployen en synchroniseren

Deploy eerst de doelnode:
bash
slv v deploy -n testnet -p spare-node
Controleer of de synchronisatie voltooid is en het slotverschil 0 is.

De configuratie van de bron- en doelnode controleren

Controleer met het volgende commando of de configuraties van beide nodes identiek zijn:
bash
cat ~/.slv/inventory.testnet.validators.yml
⚠️ Beide nodes moeten identieke instellingen hebben, met uitzondering van het IP-adres (ansible_host) en de naam.
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

De migratie van de validatornode uitvoeren

Voer de migratie van de node uit met de volgende commando's:

1. Selecteer het Solana-netwerk

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

2. Voer de naam van de bronvalidator in

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

3. Voer de naam van de doelvalidator in

bash
? To Validator Name › spare-node
Na een geslaagde migratie zie je output die er ongeveer zo uitziet:
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
De migratie van je validatornode is nu voltooid.