Eine Fortsetzung einer der klassischen Fragen auf dieser Seite:
Eine der Antworten auf diese Frage schlug vor, das Geth-
--fast
Flag zu verwenden, um die Blockdaten schnell zu synchronisieren.
Kommt jetzt parity
mit einem --warp
Flag, um die Synchronisierung in 10 Minuten zu aktivieren.
--warp Enable syncing from the snapshot over the network. (default: false)
Wie funktioniert das --warp
Flag und wie beschleunigt seine Verwendung die Synchronisation? Synchronisieren wir weniger Daten oder führen wir in gewisser Weise weniger Überprüfungen ihrer Integrität oder Quelle durch?
Es ist schwierig, eine Antwort zu geben, ohne die Erklärung im Parity-Wiki erneut zu wiederholen ...
Der relevante Teil lautet wie folgt:
Diese Momentaufnahmen können verwendet werden, um schnell eine vollständige Kopie des Zustands eines bestimmten Blocks zu erhalten. Alle 30.000 Blöcke machen Knoten einen konsenskritischen Schnappschuss des Zustands dieses Blocks. Jeder Knoten kann diese Snapshots über das Netzwerk abrufen, was eine schnelle Synchronisierung ermöglicht.
Der Schnappschuss selbst besteht aus 3 Teilen:
Chunks sind derzeit auf eine Größe von 4 MB eingestellt.
Wie beschleunigt dies also tatsächlich die Synchronisierung? Was diese Wiki-Seite nicht sagt, ist, dass wir zunächst nur die Schnappschüsse synchronisieren. Für jeden Block in Intervallen von 30.000 erhalten wir also einen Satz von 4-MB-Blöcken. Dann synchronisieren wir im Hintergrund weiterhin die verbleibenden Blockdaten.
Dies entspricht der --fast
Synchronisierung von Geth, die zuerst die Blockheader synchronisiert und dann im Hintergrund den Rest der Daten synchronisiert. Es ist nur so, dass --warp
beim ersten Durchgang noch weniger Daten synchronisiert werden und später die größeren Lücken gefüllt werden.
Bearbeiten:
Siehe auch den entsprechenden offiziellen Ethcore- Blogbeitrag , insbesondere den Abschnitt mit dem Titel Core Strength.
Uranik