Specificare un Nodo di Fallback

A partire dalla versione 1.5.0 dello stack Smartnode, puoi fornire una coppia "di fallback" di client Execution e Consensus che può subentrare ai tuoi client primari se mai dovessero andare offline (come ad esempio perché usi Geth e hai bisogno di fare il pruning). In questa situazione, la tua macchina nodo primaria sarà ancora responsabile per attestare e proporre blocchi con le chiavi validator del tuo megapool, ma si connetterà a una macchina esterna per interagire con il layer Execution e le chain Beacon.

Essenzialmente, ti permette di utilizzare temporaneamente un'altra coppia di client per cose come interrogare le chain, inviare transazioni e ricevere blocchi da attestare. Questa coppia può essere gestita esternamente (come in Hybrid mode), oppure può essere un altro nodo Rocket Pool (un'altra macchina in Docker mode che ha le porte API esposte, che tratteremo di seguito).

Una volta che i client primari del tuo nodo sono di nuovo online, lo Smartnode e il tuo client Validator torneranno a usarli automaticamente.

NOTA

Un nodo di fallback non è la stessa cosa di un nodo di "backup". I nodi di fallback hanno una coppia di client Execution e Consensus sincronizzati alla chain e in esecuzione, ma non hanno il wallet del tuo nodo o le sue chiavi validator caricate.

Se il tuo nodo principale dovesse mai andare offline, il tuo fallback non inizierà a validare per te.

Client Supportati

A partire dalla versione v1.9.0, tutti i nostri client validator supportati hanno aggiunto il supporto per il Fallback con solo poche limitazioni:

NomeSupporta FallbackClient di Fallback Validi
LighthouseQualsiasi (protezione doppelganger disattivata)
Lighthouse (protezione doppelganger attivata)
NimbusQualsiasi
PrysmPrysm
TekuQualsiasi
LodestarQualsiasi

Configurare un Nuovo Nodo (Docker Mode)

Puoi usare una seconda macchina che possiedi localmente, un nodo remoto ospitato su un VPS o un nodo basato su cloud come nodo di fallback.

Questo esempio ti mostra come creare un secondo Smartnode su una macchina diversa usando Docker mode, che può servire come nodo di fallback.

SUGGERIMENTO

Se hai già un secondo nodo pronto e hai le sue porte RPC esposte, sentiti libero di saltare questa sezione.

  1. Segui i passaggi nella guida sulla configurazione di un nodo (locale o remoto).

  2. Una volta che la macchina è pronta, installa lo stack Smartnode.

  3. Esegui rocketpool service config per specificare quali client desideri utilizzare.

    1. Quando arrivi alla fine della procedura guidata e ti chiede se desideri rivedere le tue impostazioni, seleziona .
    2. Entra nelle impostazioni Execution Client.
    3. Spunta la casella Expose RPC Ports:
    1. Torna indietro ed entra nelle impostazioni Consensus Client. 5. Spunta la casella Expose API Port (e, se stai usando Prysm, anche la casella Expose RPC Port):
    1. Salva le impostazioni e avvia lo Smartnode.
  4. Passa alla guida Mettere in Sicurezza il Tuo Nodo per configurare SSH e la corretta postura di sicurezza.

    1. Se hai ufw installato, dovrai aggiungere regole per consentire il traffico in ingresso alle porte API (8545, 8546 e 5052 di default; anche 5053 se stai usando Prysm).
  5. È tutto! Puoi fermarti qui.

NOTA

Non creare un wallet con rocketpool wallet init o recuperare il tuo vecchio wallet. Lascia questo nodo senza wallet e senza chiavi validator.

Il suo unico compito è avere un client Execution e un client Consensus sincronizzati.

Connettere il Tuo Nodo Principale al Nodo di Fallback

Una volta che hai preparato un nodo di fallback, puoi connetterlo al tuo nodo principale.

  1. Entra nella TUI rocketpool service config ed entra nelle impostazioni Fallback Clients.
  2. Spunta la casella Use Fallback Clients.
  3. Inserisci l'URL RPC per il tuo client Execution nella casella Execution Client URL. Ad esempio, se l'indirizzo IP del tuo nodo di fallback è 192.168.1.45 e hai il suo client Execution sulla porta predefinita di 8545, dovresti inserire http://192.168.1.45:8545 qui.
  4. Fai lo stesso per l'URL RPC del tuo client Consensus di fallback. Seguendo lo stesso esempio, se lo hai sulla porta predefinita di 5052, dovresti inserire http://192.168.1.45:5052 qui.

La pagina finale dovrebbe apparire così:

NOTA

Gli utenti in Native mode possono seguire gli stessi passaggi, anche se la TUI apparirà leggermente diversa dallo screenshot sopra.

Nota che questo fornirà solo allo Smartnode stesso (il servizio daemon) il supporto per il fallback; dovrai aggiornare manualmente gli argomenti del servizio del tuo client Validator per dargli accesso ai client di fallback.

Premi invio sulla casella finale per assicurarti che sia confermata, quindi salva le impostazioni e applica le modifiche.

Una volta applicate, puoi confermare la disponibilità del tuo nodo di fallback usando il comando 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.

Se mostra che sia il client Execution che il client Consensus di fallback sono sincronizzati, allora sei a posto!

Testare i Client di Fallback

Se vuoi essere assolutamente sicuro che la tua configurazione funzionerà testando i client di fallback, semplicemente ferma i client Execution e Consensus sul tuo nodo principale:

docker stop rocketpool_eth1 rocketpool_eth2

Poi esegui qualsiasi comando che interroga la chain, come rocketpool network stats. Vedrai un messaggio di avviso in alto che indica che uno (o entrambi) dei tuoi client primari sono offline e che sta ripiegando sui client di fallback:

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

Infine, avvia nuovamente i tuoi client primari:

docker start rocketpool_eth1 rocketpool_eth2

E hai finito! La tua configurazione di fallback funziona.

Prossimi Passi

Che tu abbia scelto o meno di creare e/o eseguire un nodo di fallback per la tua configurazione, il prossimo passo è imparare le priority fees. Clicca sulla prossima sezione della guida quando sei pronto a procedere.