Solana Mainnet Validator - Migratie zonder downtime

🚀 Migratieprocedure zonder downtime

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

Vereisten

Zorg dat de volgende twee validatornodes al zijn ingericht:
  1. Actieve mainnet-validatornode (bron, van)
  2. Nieuwe mainnet-validatornode (doel, naar)
⚠️ 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 het commando 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 mainnet -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.mainnet.validators.yml
⚠️ Beide nodes moeten identieke instellingen hebben, met uitzondering van ansible_host (IP-adres) en 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
      ...

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 (mainnet)
  testnet
❯ mainnet

2. Voer de naam van de bronvalidator in

bash
✨ Switching Mainnet 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 uitvoer zoals deze:
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
De migratie van je validatornode is nu voltooid.