Blockchain bleibt stecken, wenn keine Blöcke abgebaut werden

Gestern habe ich beschlossen, ein Projekt zu forken, nur zum Spaß und um mehr darüber zu erfahren. Also habe ich ein Projekt gegabelt, ich habe meinen eigenen Genesis-Block generiert, Zeitstempel geändert, angekündigt, Schlüssel, die Min-Chain-Arbeit zurückgesetzt. Alles war gut. Kompiliert es für Windows und Linux, es funktionierte perfekt. Ich habe ein Wallet auf einem Vultr-Server eingerichtet, das andere in meinem eigenen PC, ein paar Blöcke gemined und dann bin ich ins Bett gegangen.

Die Vultr-Brieftasche lief weiter, aber meine nicht, ich schloss sie.

Als ich aufwachte und die Brieftasche öffnete, versuchte sie, Blöcke herunterzuladen. getblocktemplate sagt im Grunde, dass es Blöcke herunterlädt, aber es gibt keine Blöcke zum Herunterladen. Da steht "8 Stunden Verspätung".

Ich bin mir nicht sicher, ob das passieren soll.

In meiner Unwissenheit gehe ich davon aus, dass es normal ist: Wie behebe ich es, ohne alles löschen und eine neue Kette erstellen zu müssen?

Wenn es nicht normal ist: Was habe ich falsch gemacht?

Antworten (1)

In meiner Unwissenheit gehe ich davon aus, dass es normal ist: Wie behebe ich es, ohne alles löschen und eine neue Kette erstellen zu müssen?

Sie können das Einchecken einfach auskommentieren oder entfernen, getblocktemplatedamit dort kein Fehler auftritt.

Sie sollten dies auch umgehen können, indem Sie die Uhr Ihres Computers ungefähr auf die Zeit des letzten Blocks stellen, bevor Sie die Software starten. Sobald es gestartet ist, können Sie die Uhr Ihres Computers auf Echtzeit zurücksetzen und dann einen Block abbauen.

Danke. Warum passiert das? Hat es etwas mit DEFAULT_MAX_TIP_AGE zu tun?
Dies geschieht, weil Bitcoin (und damit alles, was darauf basiert) einige Metriken verwendet, um festzustellen, ob es eine vollständig synchronisierte Blockchain hat. Eines davon ist das Alter des neuesten Blocks (auch bekannt als Blockchain-Tipp). Wenn es mehr als ein paar Stunden sind (2 Stunden IIRC), dann denkt es, dass es nicht synchron ist und wird daher die InitialBlockDownload-Phase nicht verlassen, in der etwas gesperrt ist. getblocktemplateso codiert ist, dass es nicht abgebaut wird, wenn die Blockchain nicht synchronisiert ist, als ob Sie dies könnten, könnten Sie versehentlich einen Fork verursachen.
Habe es. Danke Andreas. Einwandfreie Erklärung.