Synchronisiert ein 2009-Knoten die gesamte Bitcoin-Blockchain

Synchronisiert ein Knoten von 2009 also die gesamte Bitcoin-Blockchain und hat die vorübergehende Trennung von 2013 irgendwelche Auswirkungen darauf?

Antworten (2)

Theoretisch kann es, da sich die expliziten Konsensregeln nicht geändert haben. In der Praxis wird es jedoch ohne einige spezielle Modifikationen nicht synchronisieren können.

Erstens ist die Netzwerkversion so alt, dass keine moderne Knotensoftware Verbindungen von ihr akzeptiert. Außerdem hat sich das Format der Netzwerknachrichten seit dem ersten Release geändert, sodass es jetzt eine Prüfsumme der Nachricht enthält. Die erste Version des Bitcoin-Clients hatte keine Prüfsumme für Nachrichten. Dieser Unterschied im Netzwerkprotokoll führt zu Nachrichten, die für keinen der Knoten in einer Verbindung sinnvoll sind.

Zusätzlich zur Änderung der Netzwerknachricht kann der ursprüngliche Bitcoin-Client keine Knoten finden, mit denen er sich verbinden kann. Es war nur in der Lage, eine Verbindung ausschließlich über die IRC-Knotenerkennung herzustellen, die inzwischen deaktiviert und entfernt wurde. Sie müssen also die Datei peers.dat speziell erstellen, damit sie einen Peer finden kann, mit dem sie sich verbinden kann.

Schließlich kann der ursprüngliche Bitcoin-Client nicht über den Fork von 2013 hinaus synchronisieren, es sei denn, die Anzahl der BDB-Sperren wird erhöht. Bei Verwendung der Standardeinstellungen gehen ihm zu ungefähr dieser Zeit die Sperren aus und die Synchronisierung schlägt fehl.

Wenn Sie all diese Probleme vermeiden können (z. B. indem Sie eine spezielle Node-Software speziell zum Synchronisieren verwenden) und die Anzahl der BDB-Sperren erhöhen, sollte der ursprüngliche Bitcoin-Client in der Lage sein, die aktuelle Blockchain zu synchronisieren, wenn auch sehr langsam und möglicherweise niemals in der Lage sein, mit dem Tipp zu synchronisieren. In Richtung der aktuellen Spitze der Blockchain wird es wahrscheinlich länger dauern, einen Block zu validieren, als es dauert, bis ein neuer Block gefunden wird.


Vor einigen Monaten habe ich eine Version von Bitcoin Core so modifiziert, dass sie mit Bitcoin 0.1.0 kompatibel ist, und dann versucht, sie zu synchronisieren. Der Code dafür ist hier . Ich habe dieses Experiment nach ein paar Tagen abgebrochen, als es nur ~25.000 Blöcke synchronisieren konnte.

(ja / nein / irgendwie ... siehe bessere Antwort von Andrew Chow)

Ja, es wird synchronisiert. Obwohl es sehr langsam sein wird, da die Blockchain heutzutage ziemlich groß ist und der Code damals nicht so gut optimiert war.

Das Ereignis 2013 hat keine Auswirkungen, da es mit der längsten Kette (mit der meisten Arbeit) synchronisiert wird.

Eigentlich nicht, aber aus einem dummen Grund. Prüfsummen wurden in das P2P-Protokoll in v0.2.10 (Juni 2010) eingeführt, und 2012 wurde die Unterstützung ohne Prüfsumme entfernt. Sie benötigen einen Knoten zwischen diesen Daten, um als Brücke zwischen den beiden zu fungieren.
Der Hard Fork von 2013 wird immer noch ein Problem verursachen, da dem ursprünglichen Bitcoin-Client nicht genügend BDB-Sperren zur Verfügung stehen.