Pruning des Execution Clients

HINWEIS

Dies ist für geth und nethermind Benutzer gedacht. Besu muss nicht gepruned werden.

Wenn Sie geth oder nethermind als Ihren primären Execution Client verwenden, werden Sie wahrscheinlich bemerken, dass der freie Speicherplatz Ihres Nodes im Laufe der Zeit langsam abnimmt. Der Execution Client ist bei weitem der größte Beitragszahler hierzu; abhängig davon, wie viel RAM Sie während rocketpool service config seinem Cache zugewiesen haben, kann er mit einer Rate von mehreren Gigabyte pro Tag wachsen!

Um damit umzugehen, bieten Execution Clients eine spezielle Funktion namens Pruning, die es ihnen ermöglicht, ihre Datenbank sicher zu scannen und aufzuräumen, um freien Speicherplatz zurückzugewinnen. Jeder Node Operator, der Geth oder Nethermind verwendet, wird es irgendwann prunen müssen.

Wenn Sie eine 2 TB SSD haben, können Sie normalerweise Monate zwischen den Pruning-Runden vergehen lassen. Für 1 TB SSD-Benutzer müssen Sie häufiger prunen.

Wenn Sie das Grafana Dashboard aktiviert haben, ist eine gute Faustregel, über das Pruning Ihres Execution Clients nachzudenken, wenn Ihr verwendeter Speicherplatz des Nodes 80% überschreitet.

Wenn Sie entscheiden, dass es Zeit ist, verfügt der Smartnode über die Möglichkeit, es auf Anfrage für Sie zu prunen. Lesen Sie unten, um zu erfahren, wie es funktioniert und was Sie erwarten können.

HINWEIS

Das Pruning Ihres Execution Clients ist nur im Docker Mode möglich.

Wenn Sie Ihren eigenen Execution Client verwenden, wie z.B. einen externen Client im Hybrid-Modus oder Native-Modus, können Sie den Smartnode nicht zum Pruning des Execution Clients verwenden. Sie müssen es manuell durchführen. Bitte konsultieren Sie die Dokumentation für Ihren Execution Client, um zu erfahren, wie Sie ihn prunen.

Voraussetzungen

Wählen Sie den Client, den Sie verwenden, aus den Tabs unten aus.

Geth
Nethermind

Das Pruning von Geth bedeutet, den primären Execution Client offline zu nehmen, damit er sich selbst aufräumen kann. Wenn dies geschieht, benötigt der Smartnode (und Ihr Consensus Client) eine andere Möglichkeit, auf die ETH1-Chain zuzugreifen, um ordnungsgemäß zu funktionieren.

Der einfachste Weg, dies bereitzustellen, ist mit einem Fallback Node. Wenn Sie bereits einen Fallback Node konfiguriert haben, indem Sie rocketpool service config verwendet haben, wird der Smartnode automatisch zu diesem wechseln, wenn Ihr Geth-Container für Wartungsarbeiten ausfällt. Er wird auch Ihren Consensus Client informieren, ebenfalls den Fallback zu verwenden.

WARNUNG

Wenn Sie keinen Fallback Node konfiguriert haben, wird Ihr Node während des Pruning-Prozesses aufhören zu validieren. Er wird alle Attestierungen und Block Proposals verpassen, bis er fertig ist und sich mit dem Netzwerk neu synchronisiert hat. Sie werden ETH aufgrund verpasster Validierungen während dieser Zeit verlieren!

Vor diesem Hintergrund sind die folgenden zwei Bedingungen erforderlich, um Geth erfolgreich zu prunen:

  • Ein funktionierender konfigurierter Fallback Node
  • Mindestens 50 GB freier Speicherplatz auf Ihrer SSD

Starten eines Pruning

Wählen Sie den Client, den Sie verwenden, aus den Tabs unten aus.

Geth
Nethermind

Wenn Sie Geth prunen möchten, führen Sie einfach diesen Befehl aus:

rocketpool service prune-eth1

Wenn Sie kein Fallback-Client-Paar aktiviert haben, erhalten Sie die folgende Warnung:

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]

Wenn Sie einen aktiviert haben, sehen Sie stattdessen die folgende Eingabeaufforderung:

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]

Wenn Sie akzeptieren, sehen Sie einige Details, während der Smartnode die Dinge vorbereitet; es sollte mit einer Erfolgsmeldung enden:

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!

Damit pruned Geth jetzt und Sie sind fertig! Sie können den Fortschritt mit folgendem Befehl verfolgen:

rocketpool service logs eth1

Sobald das Pruning abgeschlossen ist, wird es automatisch neu gestartet und der Smartnode wird es wieder verwenden anstelle Ihres Fallbacks.