Muss ich alle Blöcke behalten, wenn ich Bitcoin Core ausführe?

Muss ich alle Blöcke von Block 0 bis zum aktuellen behalten, wenn ich Bitcoin Core ausführe, entweder als vollständiger Knoten oder nicht? Oder kann ich einfach die neueren Blöcke behalten, um Platz zu sparen?

Antworten (2)

Vollständige Knoten behalten standardmäßig alle Blöcke bei, dies ist jedoch nicht erforderlich, um vollständige Knotensicherheit zu erreichen. Vollständige Nodes validieren die gesamte Blockchain und setzen alle Konsensregeln durch, unabhängig davon, ob eine vollständige Historie geführt wird.
Das Beibehalten aller Blöcke ist ein Dienst für das Netzwerk, da Sie alle Blöcke zum Synchronisieren von Knoten oder Anforderungen von Thin Clients bereitstellen können.

Wenn das Beibehalten der vollständigen Blockchain ein Problem darstellt, können Sie den Speicherbedarf reduzieren, indem Sie Bitcoin Core im Pruning-Modus ausführen. Fügen Sie einfach prune=<n>zu Ihrer hinzu bitcoin.conf, wo <n>die Anzahl der jüngsten Blöcke ist, die Sie in Bezug auf den Mebibyte-Speicher behalten möchten. Das Minimum beträgt 550 MiB.

Kann ich die älteren *.dat-Dateien in ~/.bitcoin einfach manuell löschen, oder muss ich mich im Pruning-Modus befinden, damit es damit umgehen kann?
Werden meine Transaktionen in beschnittenen Blöcken weiterhin in der Transaktionsliste von Bitcoin-Qt angezeigt?
@Geremia: Sie müssen die Beschneidung einschalten und Core das regeln lassen. Andernfalls entdeckt Core, dass Dateien fehlen.
Ja. Die Chain-State-Datenbank und das UTXO-Set bleiben intakt und vollständig. Da Core die vollständige Blockchain validiert hat, kennt es die alten Transaktionen und speichert die relevanten UTXO-Daten. Es wird auch alle Informationen in Bezug auf seine eigenen Adressen aufbewahren.
" Es kennt die alten Transaktionen und speichert die relevanten UTXO-Daten ." Das wird im chainstateVerzeichnis gespeichert (derzeit ca. 1,6 GB), oder? Also könnte ich das blocksVerzeichnis technisch löschen; aber wenn ich Traktionsinformationen will, muss ich die behalten chainstate?
Ich verstehe nicht, was Sie fragen. Wenn Sie den Speicherbedarf reduzieren möchten, beginnen Sie einfach mit dem Pruning-Modus. Sie benötigen weiterhin das Blocks-Verzeichnis, da Sie mindestens 550 MiB behalten. Ich habe es nicht versucht, aber ich würde erwarten, dass Core mit dem erneuten Herunterladen aller Blöcke beginnt, wenn Sie das Verzeichnis einfach manuell löschen.
" Ich habe es nicht versucht, aber ich würde erwarten, dass Core mit dem erneuten Herunterladen aller Blöcke beginnt, wenn Sie das Verzeichnis einfach manuell löschen. " Ja, das ist passiert, als ich es versucht habe.
@Geremia: Danke für dein Engagement für die Wissenschaft. ;)
Ja, die Reproduzierbarkeit scheint heutzutage zu fehlen. ☺

Dies wird Beschneiden genannt.

Von hier :

Seit Bitcoin-Core 0.11.0 kann man die Blockchain in Bitcoin-Qt beschneiden (trimmen). Aber nicht von der Benutzeroberfläche. Sie müssen -prune=550Ihre bitcoin.conf-Datei ergänzen und Bitcoin-Qt neu starten.

Erläuterung: -prune=<target in MiB> weist Bitcoin-Core an, Blöcke zu entfernen, die älter sind als der älteste Block, der mit einer Kettengröße (Summe der Blockgrößen) von <target>(min. 550 MiB, wie das obige Beispiel zeigt) aufbewahrt werden kann. Ein Minimum von 550 MiB stellt sicher, dass mindestens 288 Blöcke (~ 2 Tage) erhalten bleiben. (einfache Erklärung ohne Undo-Daten)

Einschränkung: -prune deaktiviert alle Wallet-Funktionen in Version 0.11 (funktioniert mit einem Wallet in Version 0.12).

Offensichtlich können Sie als Full Node keine historischen Blöcke bedienen, die Sie nicht haben, also sind Sie eher wie ein P2P-Leecher.