Was ist State-Trie Pruning und wie funktioniert es?

Mehrere Quellen erwähnen die Idee des State-Trie Pruning. Was ist das und wird es derzeit im Netzwerk implementiert? Ist dies ein manueller Vorgang oder kann dies automatisch erfolgen? Wenn Ethereum derzeit 1 GB pro Monat unter dem aktuellen Volumen verarbeitet und mit einer größeren Akzeptanz wachsen könnte, kann State-Trie Pruning verhindern, dass die Größe der Ethereum-Blockchain unhandlich wird? Einige Quellen scheinen besorgt zu sein .

Antworten (1)

Es ist ein ähnliches Konzept wie die Garbage Collection in Programmiersprachen und in baumbasierten Versionskontrollsystemen wie Git. Wenn Ethereum-Kontrakte laufen, ändern sie ihren Status. Und da der Zustandsbaum eine unveränderliche Nur-Anhäng-Struktur ist, bedeutet dies, dass er jedes Mal, wenn der Zustand geändert wird, einen neuen Zustandsstamm erhält. Einige Elemente, die von den alten Roots aus erreichbar waren, sind möglicherweise von der neuen Root nicht erreichbar (aufgrund von Operationen, die Einträge löschen oder ändern). Theoretisch können sie beschnitten werden (Müll gesammelt). Da der Proof-Of-Work-Konsens jedoch nicht definiert, wann Statusübergänge endgültig sind, besteht immer die theoretische Möglichkeit, dass der Status auf ältere Wurzeln zurückgesetzt wird und Dinge, die beschnitten wurden, erneut benötigt werden. Das Beschneiden ist also derzeit ein Kompromiss. Wir sagen, dass z. Nach dem 5000-Block gehen wir davon aus, dass der Zustand nicht zurückgesetzt wird, und beschneiden alle nicht erreichbaren Knoten. Jemand möchte diese Funktion vielleicht trotzdem deaktivieren, um den gesamten Verlauf der Blockchain für spezielle Zwecke aufzubewahren.

Hier ist eine sehr detaillierte Beschreibung: https://blog.ethereum.org/2015/06/26/state-tree-pruning/

Antworten müssen mehr als nur ein Link sein. Die Antwort sollte auch dann sinnvoll sein, wenn der Link unterbrochen wird.
Beachten Sie, dass der korrekte Begriff state trie ist , aber aus historischen Gründen ist es richtig, dass sich dieser Beitrag auf state tree bezieht .
Trie ist ein Baum .