Spécification d'un nœud de secours

À partir de la version 1.5.0 de la pile Smartnode, vous pouvez fournir une paire de client d'exécution et de client de consensus "de secours" qui peut prendre le relais de vos clients principaux s'ils devaient se déconnecter (par exemple parce que vous utilisez Geth et devez le tailler). Dans cette situation, votre machine de nœud principale sera toujours responsable de l'attestation et de la proposition de blocs avec les clés de validator de votre megapool, mais elle se connectera à une machine externe pour interagir avec les chaînes de couche d'exécution et Beacon.

Essentiellement, cela vous permet d'utiliser temporairement une autre paire de clients pour des opérations comme l'interrogation des chaînes, l'envoi de transactions et la réception de blocs pour attester. Cette paire peut être gérée en externe (comme en mode hybride), ou il peut s'agir d'un autre nœud Rocket Pool (une autre machine en mode Docker avec les ports API exposés, ce que nous aborderons ci-dessous).

Une fois que les clients principaux de votre nœud sont de nouveau en ligne, le Smartnode et votre client validator repasseront automatiquement sur eux.

REMARQUE

Un nœud de secours n'est pas la même chose qu'un nœud de "sauvegarde". Les nœuds de secours ont une paire de client d'exécution et de client de consensus synchronisée avec la chaîne et en cours d'exécution, mais ils n'ont pas le portefeuille de votre nœud ni ses clés de validator chargées.

Si votre nœud principal devait se déconnecter, votre nœud de secours ne commencera pas à valider pour vous.

Clients pris en charge

Depuis la version v1.9.0, tous nos clients validator pris en charge ont ajouté la prise en charge du mode secours avec seulement quelques limitations :

NomPrend en charge le secoursClients de secours valides
LighthouseOuiTous (protection doppelganger désactivée)
Lighthouse (protection doppelganger activée)
NimbusOuiTous
PrysmOuiPrysm
TekuOuiTous
LodestarOuiTous

Configuration d'un nouveau nœud (mode Docker)

Vous pouvez utiliser une 2ème machine que vous possédez localement, un nœud distant hébergé sur un VPS ou un nœud basé sur le cloud comme nœud de secours.

Cet exemple vous montre comment créer un 2ème Smartnode sur une machine différente en utilisant le mode Docker, qui peut servir de nœud de secours.

CONSEIL

Si vous avez déjà un 2ème nœud prêt avec ses ports RPC exposés, n'hésitez pas à ignorer cette section.

  1. Suivez les étapes du guide de configuration d'un nœud (local ou distant).

  2. Une fois la machine prête, installez la pile Smartnode.

  3. Exécutez rocketpool service config pour spécifier les clients que vous souhaitez utiliser.

    1. Lorsque vous arrivez à la fin de l'assistant et qu'il vous demande si vous souhaitez examiner vos paramètres, sélectionnez Oui.
    2. Entrez dans les paramètres Execution Client.
    3. Cochez la case Expose RPC Ports :
    1. Revenez en arrière et entrez dans les paramètres Consensus Client. 5. Cochez la case Expose API Port (et, si vous utilisez Prysm, la case Expose RPC Port également) :
    1. Enregistrez les paramètres et démarrez le Smartnode.
  4. Passez au guide Sécuriser votre nœud pour configurer SSH et la posture de sécurité appropriée.

    1. Si vous avez ufw installé, vous devrez ajouter des règles pour autoriser le trafic entrant vers les ports API (8545, 8546 et 5052 par défaut ; également 5053 si vous utilisez Prysm).
  5. C'est tout ! Vous pouvez vous arrêter ici.

REMARQUE

Ne créez pas de portefeuille avec rocketpool wallet init et ne récupérez pas votre ancien portefeuille. Laissez ce nœud sans portefeuille et sans clés de validator.

Sa seule fonction est d'avoir un client d'exécution et un client de consensus synchronisés.

Connexion de votre nœud principal au nœud de secours

Une fois que vous avez préparé un nœud de secours, vous pouvez le connecter à votre nœud principal.

  1. Entrez dans l'interface TUI rocketpool service config et accédez aux paramètres Fallback Clients.
  2. Cochez la case Use Fallback Clients.
  3. Entrez l'URL RPC de votre client d'exécution dans la case Execution Client URL. Par exemple, si l'adresse IP de votre nœud de secours est 192.168.1.45 et que vous avez votre client d'exécution sur le port par défaut 8545, vous entreriez http://192.168.1.45:8545 ici.
  4. Faites de même pour l'URL RPC de votre client de consensus de secours. En suivant le même exemple, si vous l'avez sur le port par défaut 5052, vous entreriez http://192.168.1.45:5052 ici.

La page finale devrait ressembler à ceci :

REMARQUE

Les utilisateurs du mode natif peuvent suivre les mêmes étapes, bien que l'interface TUI soit légèrement différente de la capture d'écran ci-dessus.

Notez que cela ne fournira au Smartnode lui-même (le service daemon) qu'une prise en charge de secours ; vous devrez mettre à jour manuellement les arguments du service de votre client validator pour lui donner accès aux clients de secours.

Appuyez sur entrée sur la case finale pour vous assurer qu'elle est confirmée, puis enregistrez les paramètres et appliquez les modifications.

Une fois qu'elles ont été appliquées, vous pouvez confirmer la disponibilité de votre nœud de secours en utilisant la commande rocketpool node sync :

Your Smartnode is currently using the Ethereum Mainnet.

Your eth2 client is on the correct network.

Your primary execution client is fully synced.
Your fallback execution client is fully synced.
Your primary consensus client is fully synced.
Your fallback consensus client is fully synced.

Si elle indique que le client d'exécution et le client de consensus de secours sont tous deux synchronisés, alors tout est en ordre !

Test des clients de secours

Si vous souhaitez être absolument certain que votre configuration fonctionnera en testant les clients de secours, arrêtez simplement les clients d'exécution et de consensus sur votre nœud principal :

docker stop rocketpool_eth1 rocketpool_eth2

Puis exécutez n'importe quelle commande qui interroge la chaîne, comme rocketpool network stats. Vous verrez un message d'avertissement en haut indiquant qu'un (ou les deux) de vos clients principaux est hors ligne et qu'il revient aux clients de secours :

NOTE: primary clients are not ready, using fallback clients...
 Primary EC status: unavailable (Sync progress check failed with [Post "http://eth1:8545": dial tcp: lookup eth1 on 127.0.0.11:53: no such host])
 Primary CC status: unavailable (Sync progress check failed with [Could not get node sync status: Get "http://eth2:5052/eth/v1/node/syncing": dial tcp: lookup eth2 on 127.0.0.11:53: no such host])

========== General Stats ==========
Total Value Locked:          1196.926316 ETH
Deposit Pool Balance:        23.586761 ETH
Minipool Queue Demand:       0.000000 ETH
Deposit Pool ETH Used:       6.809609%

============== Nodes ==============
Current Commission Rate:     5.000000%
Node Count:                  16
Active Minipools:            36
    Initialized:             0
    Prelaunch:               0
    Staking:                 36
    Withdrawable:            0
    Dissolved:               0
Finalized Minipools:         30

=========== Megapools ============
Megapool contracts deployed: 10
Total megapool validators:  86
     Staking:                51
     In Prestake:            6
     In Queue:               10
     Exited:                 14
     Locked:                 1
     Exiting:                2
     Dissolved:              2

========== Smoothing Pool =========
Contract Address:            0xE8D1136ac49DBe6ac8f299130253004DC63841a1
Nodes Opted in:              3
Pending Balance:             0.000000

============== Tokens =============
rETH Price (ETH / rETH):     1.185477 ETH
RPL Price (ETH / RPL):       0.000639 ETH
Total RPL staked:            33406.127068 RPL
Total Megapool RPL staked:   11406.127068 RPL
Total Legacy RPL staked:     22000.000000 RPL

Enfin, redémarrez vos clients principaux :

docker start rocketpool_eth1 rocketpool_eth2

Et voilà ! Votre configuration de secours fonctionne.

Prochaines étapes

Que vous ayez choisi ou non de créer et/ou d'exécuter un nœud de secours pour votre configuration, l'étape suivante consiste à en apprendre davantage sur les frais de priorité. Cliquez sur la section suivante du guide lorsque vous êtes prêt à continuer.