Stimmt es, dass eine vollständige Bitcoin-Datenbank nicht auf jedem Knoten gleich ist?
Ich meine Datenbank (Dateien) in blocks
dir, die den offiziellen Bitcoin-Client lokal erstellen.
Was ist diese Bitcoin-Datenbank?
Nein, sie sind nicht identisch. Dafür gibt es verschiedene Gründe:
Verschiedene Knoten können Blöcke in einer anderen Reihenfolge sehen. Immer wenn ein Fork auftritt, haben per Definition einige Knoten im Netzwerk zuerst einen Block gesehen und andere zuerst den anderen. Wenn sie alle zuerst die gleichen Blöcke sehen würden, gäbe es keine Gabelung. Da Bitcoin Core Blöcke in nur angehängten Blockdateien speichert, spiegelt die Reihenfolge auf der Festplatte die Reihenfolge wider, in der diese Blöcke im Netzwerk gesehen wurden. Verzweigungen in Forks, die reorganisiert werden, werden auf der Festplatte gehalten.
Verschiedene Knoten sehen möglicherweise nicht einmal alle Blöcke, die ein anderer Block sieht. Wenn es eine Verzweigung zwischen Block A und B gibt und A schließlich weiter aufgebaut wird, werden die Knoten, die A zuerst gesehen haben und nicht mit Peers verbunden sind, die B zuerst gesehen haben, B wahrscheinlich überhaupt nicht sehen. Dies gilt insbesondere für neu synchronisierte Knoten, die normalerweise nichts von historischen Forks erfahren und nur den Zweig heruntergeladen haben, der gewonnen hat.
Verschiedene Versionen von Bitcoin Core verwalten die Blockdateien unterschiedlich. Frühere Versionen hinterließen teilweise geschriebene Blöcke in den Dateien, wenn beim Schreiben eines neuen Blocks ein Absturz auftrat. Neuere Versionen verwenden diesen Speicherplatz wieder.
Trotz alledem wird der aktive Zweig der Blockchain (der nach den Konsensregeln die am meisten arbeitende Kette ist) im Laufe der Zeit über verschiedene Knoten hinweg konvergieren. Dies geschieht nicht sofort (da Forks möglicherweise aufgelöst werden müssen, was Minuten oder sogar Stunden dauern kann) und bedeutet aus den oben genannten Gründen nicht, dass die Dateien auf der Festplatte identisch sind.
Alle Knoten, die zu derselben Kette gehören, haben dieselbe Blockdatenbank. Das ist das Prinzip, das der verteilten Blockchain zugrunde liegt.
Die Datenbanken zweier Knoten können sich im zuletzt gespeicherten Block unterscheiden, wenn ein veralteter Block erstellt wird.
Man kann einen anderen Block oben in der Kette haben, bis es erkennt, dass das Netzwerk einen anderen Block gewählt hat. An diesem Punkt wird der Knoten synchronisiert und seine Datenbank ist die gleiche wie bei jedem anderen vollständigen Knoten.
Bearbeiten
Entschuldigung, mein Fehler, ich hatte irgendwo gelesen, dass alle erstellten veralteten Blöcke nach einer Weile gelöscht wurden, also dachte ich, dass jeder die kleinen *blk-Dateien außer den letzten hatte. Vielleicht hat diese Seite es zu sehr vereinfacht.
Danke, dass du mich korrigiert und mich richtig verstehen lässt.
Denis Leonow
Pieter Wuille
Denis Leonow
Pieter Wuille
Denis Leonow
blocks
dir. Sie sind gleich?Pieter Wuille
Denis Leonow
The files created while syncing the historical chain will be
. Also erzähle ich über diese Dateien.Pieter Wuille