Wenn ein Bitcoin-Client offline geht oder einen neuen Block verpasst, wie wird dann die aktuelle Haupt-Blockchain gefunden? Und wie stellt Bitcoin sicher, dass Aktualisierungen der Blockchain an jedes mit dem Netzwerk verbundene Gerät weitergegeben werden (dh um sicherzustellen, dass verbundene Knoten niemals einen fehlenden Block im Ledger haben?) Geht es irgendwie rekursiv von der Referenz des nächsten übertragenen Blocks zu zurück vorheriger Block? Und wie stellt es dann sicher, dass die aktuell ausgestrahlte Kette eine Ergänzung zur Hauptkette ist und keine Abzweigung? Wenn sich der Client beispielsweise mit dem Netzwerk verbindet und einen Block mit einer bestimmten Höhe empfängt, wie weiß er dann, dass er die meiste Arbeit aller Ketten hat und dass die lokale Kopie alle Blöcke in der Kette enthält?
Peers des Knotens teilen dem Knoten die Höhe ihrer längsten Blockchain mit, und wenn diese größer ist als das, was der Knoten derzeit gespeichert hat, fordert er die fehlenden Blöcke von diesem Knoten an (um sie zu validieren und zu speichern). Wenn sich ein Knoten im Netzwerk befindet und einen neuen Block empfängt, sieht er sich den Hash seines Elternteils an und entscheidet, ob er den Elternteil bereits hat oder nicht. Wenn es den Elternteil nicht hat, wird es seine Kollegen danach fragen. Auf diese Weise lädt es schließlich alle fehlenden Blöcke herunter und ist wieder auf dem neuesten Stand
Der Knoten verfolgt, wie lang jeder Fork der Blockchain ist, und verwendet den längsten, den er findet und den er für gültig hält. Wenn ein langer Fork erscheint, den der Knoten für ungültig hält, wird eine Warnung angezeigt, dass entweder der Knoten oder die Peers veraltet sind.
pebwindkraft
rb612