Backup del tuo Nodo
Questo è attualmente scritto per le installazioni in modalità Docker. Alcune posizioni potrebbero variare per gli utenti Hybrid o Native.
In generale, se hai creato il tuo wallet del nodo e i minipool tramite lo Smartnode, l'unica cosa di cui hai davvero bisogno per recuperare il tuo nodo da un guasto completo è il mnemonico del tuo wallet del nodo. Tutto il resto può essere recuperato da quello abbastanza facilmente.
Se hai minipool con chiavi di validatore generate esternamente (ad esempio hai migrato da Allnodes al tuo nodo self-hosted), avrai bisogno anche dei file keystore privati per i tuoi validatori poiché non possono essere recuperati dal wallet del nodo.
Detto questo, una volta avvenuto il Merge, non sarai più in grado di utilizzare un Execution client leggero (ad esempio Pocket o Infura) come ripiego se mai avessi bisogno di risincronizzare la chain dell'Execution layer. Inoltre, ti sarà richiesto di avere un Execution client attivo e sano per attestare correttamente. Avere un modo veloce e affidabile per recuperare da un guasto dell'Execution client (come un database corrotto, malfunzionamento dell'SSD o hardware compromesso/rubato) sarà fondamentale, poiché può richiedere ore o addirittura giorni per sincronizzare da zero.
In questa guida, ti mostreremo come eseguire il backup di alcune di queste cose per aiutare a migliorare la resilienza del tuo nodo e ridurre al minimo i tempi di inattività non necessari.
Questa guida presume che tu abbia installato lo Smartnode nella directory predefinita (~/.rocketpool).
Se hai specificato una directory di installazione diversa, sostituiscila di conseguenza nelle istruzioni seguenti.
Elementi che possono essere sottoposti a Backup
Configurazione dello Smartnode
La configurazione dello Smartnode è archiviata in ~/.rocketpool/user-settings.yml.
Puoi salvarlo e sostituirlo per ripristinare tutte le impostazioni dello Smartnode (cioè le cose che hai specificato in rocketpool service config).
Dati della Chain dell'Execution Client / ETH1 Client
I dati della chain dell'Execution client sono probabilmente la cosa più importante di cui eseguire il backup. Come accennato, possono essere necessari diversi giorni per risincronizzare i dati della chain EC. Dopo il Merge, questo significa ore o giorni di inattività e profitti persi!
I dati della chain sono archiviati all'interno del volume Docker rocketpool_eth1clientdata, che per impostazione predefinita si trova in /var/lib/docker/volumes/rocketpool_eth1clientdata.
Nota che questa cartella in genere non è accessibile dagli account utente non privilegiati; dovrai elevare all'utente root per vederla.
Se hai modificato la posizione di archiviazione di Docker durante l'installazione iniziale dello Smartnode (come le persone che eseguono Docker su un secondo SSD), troverai il volume in /<il tuo punto di montaggio esterno>/docker/volumes/rocketpool_eth1clientdata
Se non ricordi quale percorso di installazione utilizzi, puoi controllare /etc/docker/daemon.json per la sua posizione.
Se il file non esiste, utilizzi la posizione predefinita.
Per istruzioni dettagliate su come eseguire il backup dei dati della chain Execution in modo efficiente, consulta la sezione Backup dei dati della Chain Execution di seguito.
Dati di Monitoraggio e Metriche
Questi dati sono archiviati all'interno del volume Docker rocketpool_grafana-storage, che per impostazione predefinita si trova in /var/lib/docker/volumes/rocketpool_grafana-storage (o /<il tuo punto di montaggio esterno>/docker/volumes/rocketpool_prometheus-data se hai personalizzato la posizione di archiviazione di Docker).
Elementi che Non dovrebbero essere sottoposti a Backup
Chiavi Private e Password
La chiave privata del wallet del tuo nodo e il file della password utilizzato per crittografarla sono archiviati rispettivamente in ~/.rocketpool/data/wallet e ~/.rocketpool/data/password.
Questi file in genere non hanno bisogno di essere sottoposti a backup, poiché possono essere recuperati dal tuo mnemonico utilizzando rocketpool wallet recover.
Se, per qualche motivo, decidi di eseguire il backup di questi file, dovrai essere estremamente attento su come li archivi. Chiunque ottenga accesso a questi file otterrà accesso al tuo wallet del nodo, ai suoi validatori e a qualsiasi fondo che hai archiviato su di esso per cose come il gas.
Raccomandiamo vivamente di non eseguire il backup di questi file e di utilizzare semplicemente il mnemonico del wallet per recuperarli se necessario.
Dati della Chain del Consensus Client
A differenza dei dati dell'Execution layer, i dati del Consensus layer non sono così importanti per il tuo nodo grazie alla Checkpoint Sync. I Consensus client possono facilmente utilizzare questa tecnica per risincronizzarsi immediatamente all'head della Beacon chain e riprendere i compiti di validazione.
Backup dei dati della Chain Execution
Lo Smartnode viene fornito con la possibilità di eseguire il backup dei dati della chain Execution tramite il comando rocketpool service export-eth1-data.
Sotto il cofano, questo utilizza rsync, un potente strumento di backup/copia all'interno di Linux.
rsync confronta i file nella directory di origine (il tuo volume Docker) e nella directory di destinazione (la tua posizione di backup).
Se un file di origine non esiste nella directory di destinazione, verrà copiato interamente.
Tuttavia, se esiste, rsync copierà solo le modifiche tra i due file.
Questo significa che il primo backup richiederà una buona quantità di tempo poiché deve copiare tutti i dati inizialmente. I backup successivi copieranno solo le modifiche tra il backup precedente e ora, rendendo il processo molto più veloce.
Come parte di una strategia di backup, potresti voler pianificare di eseguire export-eth1-data su base regolare.
Per garantire l'integrità dei dati della chain, l'esecuzione di questo comando arresterà in sicurezza l'Execution client prima di eseguire il backup dei suoi dati.
Se scegli di pianificarlo ogni settimana, il tuo Execution client sarà inattivo solo per pochi minuti mentre aggiorna il backup.
Questo è certamente meglio dei giorni che richiederebbe risincronizzare i dati da zero.
Per attivare un backup, inizia montando il supporto di archiviazione su cui desideri esportare i dati. Per esempio, questo potrebbe essere un hard drive esterno.
Se non sai come montare dispositivi esterni su Linux, è facile! Collega il dispositivo al tuo nodo e segui una guida come questa per imparare come montarlo.
Una volta montato, annota il suo percorso di montaggio.
Per questo esempio, assumiamo di voler archiviare i dati della chain in una cartella chiamata /mnt/external-drive su cui è montato il dispositivo esterno.
Sostituisci questo con il tuo percorso di montaggio effettivo ovunque lo vedi di seguito.
Ora, eseguite il seguente comando:
Questo verificherà che la tua cartella di destinazione sia raggiungibile e abbia abbastanza spazio libero per archiviare i dati della chain. L'output sarà simile a questo:
Come puoi vedere, i dati della chain saranno sotto i 100 GB (per la testnet Hoodi; la mainnet di Ethereum sarà un ordine di grandezza maggiore) e la cartella esterna ha 287 GiB liberi quindi l'esportazione può continuare.
Quando sei pronto, inserisci y qui e premi Enter.
Questo fermerà il tuo Execution client e inizierà a copiare i suoi dati della chain nella tua cartella di destinazione.
Vedrai il progresso di ogni singolo file scorrere sullo schermo mentre viene eseguito.
È importante che non esci dal terminale mentre questo è in esecuzione. Se lo fai, la copia continuerà a essere eseguita in background ma non sarai in grado di seguirne il progresso!
Una volta terminato, riavvierà automaticamente il tuo container Execution client.
Nota che i tuoi dati della chain esistenti non vengono eliminati dal tuo nodo dopo il completamento dell'esportazione!
Ripristinare i tuoi Dati della Chain Execution
Se mai dovessi ripristinare i dati della chain di cui hai eseguito il backup, esegui semplicemente il seguente comando.
Questo eliminerà automaticamente tutti i dati esistenti dell'Execution client nel tuo volume rocketpool_eth1clientdata!
Una volta completato, il tuo Execution client sarà pronto per partire.