Pruning dell'Execution Client

NOTA

Questo è destinato agli utenti di geth e nethermind. Besu non necessita di pruning.

Se utilizzi geth o nethermind come client Execution primario, probabilmente noterai che lo spazio libero su disco del tuo nodo diminuisce lentamente nel tempo. Il client Execution è di gran lunga il maggiore contributore a questo; a seconda di quanta RAM hai allocato alla sua cache durante rocketpool service config, può crescere a un ritmo di diversi gigabyte al giorno!

Per gestire questo, i client Execution forniscono una funzione speciale chiamata pruning che consente loro di scansionare e pulire in sicurezza il loro database per recuperare spazio libero. Ogni node operator che utilizza Geth o Nethermind dovrà eventualmente eseguire il pruning.

Se hai un SSD da 2 TB, di solito puoi andare avanti per mesi tra i cicli di pruning. Per gli utenti di SSD da 1 TB, dovrai eseguire il pruning più frequentemente.

Se hai abilitato la dashboard Grafana, una buona regola generale è iniziare a pensare al pruning del tuo client Execution quando lo spazio su disco utilizzato del tuo nodo supera l'80%.

Quando decidi che è il momento, lo Smartnode viene fornito con la possibilità di eseguire il pruning per te su richiesta. Leggi di seguito per sapere come funziona e cosa aspettarti.

NOTA

Il pruning del tuo client Execution è possibile solo in Docker Mode.

Se utilizzi il tuo client Execution, come un client esterno in modalità Hybrid o Native mode, non puoi utilizzare lo Smartnode per eseguire il pruning del client Execution. Dovrai farlo manualmente. Si prega di fare riferimento alla documentazione del tuo client Execution per imparare come eseguirne il pruning.

Prerequisiti

Seleziona il client che stai utilizzando dalle schede qui sotto.

Geth
Nethermind

Il pruning di Geth significa mettere offline il client Execution primario in modo che possa pulirsi. Quando ciò accade, lo Smartnode (e il tuo Consensus client) avranno bisogno di un altro modo per accedere alla catena ETH1 per funzionare correttamente.

Il modo più semplice per fornire questo è con un nodo di fallback. Se hai configurato un nodo di fallback usando rocketpool service config, allora lo Smartnode passerà automaticamente ad esso quando il tuo container Geth si interrompe per manutenzione per te. Informerà anche il tuo Consensus client di utilizzare il fallback.

AVVISO

Se non hai un nodo di fallback configurato, il tuo nodo smetterà di validare durante il processo di pruning. Perderà tutte le attestazioni e le proposte di blocco fino a quando non sarà finito e si sarà risincronizzato con la rete. Perderai ETH a causa di validazioni mancate durante questo periodo!

Con questo in mente, le seguenti due condizioni sono necessarie per eseguire con successo il pruning di Geth:

  • Un nodo di fallback funzionante configurato
  • Almeno 50 GB di spazio libero rimanente sul tuo SSD

Avvio di un Pruning

Seleziona il client che stai utilizzando dalle schede qui sotto.

Geth
Nethermind

Quando vuoi eseguire il pruning di Geth, esegui semplicemente questo comando:

rocketpool service prune-eth1

Se non hai una coppia di client di fallback abilitata, riceverai il seguente avviso:

This will shut down your main execution client and prune its database, freeing up disk space.
Once pruning is complete, your execution client will restart automatically.

You do not have a fallback execution client configured.
Your node will no longer be able to perform any validation duties (attesting or proposing blocks) until Geth is done pruning and has synced again.
Please configure a fallback client with `rocketpool service config` before running this.
Are you sure you want to prune your main execution client? [y/n]

Se ne hai uno abilitato, vedrai invece il seguente prompt:

This will shut down your main execution client and prune its database, freeing up disk space.
Once pruning is complete, your execution client will restart automatically.

You have fallback clients enabled. Rocket Pool (and your consensus client) will use that while the main client is pruning.
Are you sure you want to prune your main execution client? [y/n]

Se accetti, vedrai alcuni dettagli mentre lo Smartnode prepara le cose; dovrebbe terminare con un messaggio di successo:

Are you sure you want to prune your main ETH1 client? [y/n]
y

Your disk has 303 GiB free, which is enough to prune.
Stopping rocketpool_eth1...
Provisioning pruning on volume rocketpool_eth1clientdata...
Restarting rocketpool_eth1...

Done! Your main ETH1 client is now pruning. You can follow its progress with `rocketpool service logs eth1`.
Once it's done, it will restart automatically and resume normal operation.
NOTE: While pruning, you **cannot** interrupt the client (e.g. by restarting) or you risk corrupting the database!
You must let it run to completion!

Con questo, Geth sta ora eseguendo il pruning e sei a posto! Puoi seguire i suoi progressi con:

rocketpool service logs eth1

Una volta terminato il pruning, si riavvierà automaticamente e lo Smartnode riprenderà a utilizzarlo di nuovo invece del tuo fallback.