Entfernen Sie verwaiste Blöcke aus der „persönlichen“ Blockchain

Okay, ich habe in letzter Zeit versucht, etwas mehr über die Blockchain und die Blockchain-Entwicklung zu erfahren. Bei jedem anderen Altcoin ist mir aufgefallen, dass es so etwas wie eine bootstrap.dat-Datei gibt, die, wie ich es verstanden habe, im Wesentlichen eine Datei ist, die die „richtige“ Blockchain enthält, die einfach auf den Computer importiert wird, um schneller zu werden die Synchronisation der Blockchain eines bestimmten Coins. Ich würde gerne lernen, wie ich selbst eine dieser bootstrap.dat-Dateien erstellen kann (oder zumindest die Theorie dahinter lernen).

Ich habe diesen Beitrag gefunden. cat blk000*.dat > bootstrap.datIch habe die Anweisungen in der zweiten Antwort befolgt und diesen Code im Terminal ausgeführt, wodurch eine Bootstrap-Datei erstellt wurde. Ich importierte dies auf meinen zweiten Computer, startete den Client (Fastcoin 0.8.7.2) und während dies funktionierte, konnte ich den Client nicht neu starten, da er fast sofort einfriert, während er weiterhin Daten von der Festplatte liest. Ich muss das Beenden des Clients erzwingen, um hier herauszukommen. Ich habe dem Support eine E-Mail geschickt und während ich auf ihre Antwort warte, dachte ich, ich würde versuchen, selbst etwas zu recherchieren.

Laut diesem Thread auf Bitcointalk enthält eine gültige bootstrap.dat-Datei keine verwaisten Blöcke (von denen ich weiß, dass meine es tun) und die Blöcke in der richtigen Reihenfolge (was ich nicht sicher bin, wie ich das überprüfen soll). Ich habe gelesen, dass Bitcoin ein linearize.py-Skript verwendet , um diese Probleme zu lösen, aber wie ich es verstanden habe, verwendet es nicht die Daten auf der Festplatte, sondern von einem Server, was ich nicht versuche.

Da der Code in meinem dritten Absatz tatsächlich eine Bootstrap-Datei erstellt hat, nehme ich an, dass ich auf diese Weise auf etwas gestoßen bin. Aber wie vermeide ich die verwaisten Blöcke / sortiere sie aus und bekomme die "gültigen" Blöcke in die richtige Reihenfolge? Jede Hilfe wird sehr geschätzt!

Antworten (1)

Es ist im Grunde unmöglich, das zu tun, was Sie wollen, ohne die Blöcke selbst zu überprüfen und den Kettenstatus selbst zu konstruieren. Der einfachste Weg, dies zu tun, besteht darin, den Client auszuführen, der diese Blockdateien überhaupt heruntergeladen hat, da er den Kettenstatus kennt, um die Hauptblockkette erstellen zu können. Diese Software hat den Server, mit dem das Linearisierungsskript interagiert. Führen Sie das einfach mit dem Linearize-Skript aus und es wird die richtige bootstrap.dat-Datei erstellen.

Vielen Dank für Ihre Antwort, ich weiß das wirklich zu schätzen. Ich denke, was Sie sagen, macht Sinn, aber ich bin mir nicht sicher, wie ich es machen würde. Vielleicht ist das eher eine Python-bezogene Frage, aber wie würde ich anfangen? Ich habe Python 3.6.4 IDLE heruntergeladen und versuche, das darin auszuführen, $ ./linearize-hashes.py linearize.cfg > hashlist.txtaber ich erhalte immer wieder einen ungültigen Syntaxfehler. Vielleicht bin ich gar nicht auf dem richtigen Weg?
@dragonskater45 Sie müssen der Antwort auf das, was Sie zu tun versuchen, ziemlich nahe sein. Laut den Kommentaren zu dieser Antwort in der von Ihnen verlinkten Frage scheint es zu funktionieren.