Wie wird ein neuer Block verteilt?

Ich verstehe, wie ein neuer Block erstellt und von dem Miner, der ihn erstellt hat, verifiziert wird.

Aber bewirbt es diesen neuen Block dann bei nahen Knoten? Und wie gehen diese Knoten vor, um dies zu überprüfen? Hören sie auf, ihre eigenen Blöcke abzubauen?

Wie verhindern Sie, dass andere Nodes den neuen Block stehlen und vorgeben, es sei ihr eigener? (Ich denke, die mit der eigenen Adresse enthaltene Übertragung verhindert dies?)

Ich verstehe, dass es mehrere Zweige gleichzeitig geben kann, und schließlich überlebt einer, aber wie wird verhindert, dass mehrere Zweige über einen längeren Zeitraum am Leben bleiben?

Fragen Sie in Zukunft bitte nur noch zu einem Thema pro Frage und stellen Sie lieber mehrere Fragen, um alle Ihre Informationen zu erhalten.

Antworten (1)

Wenn ein Knoten einen neuen Block entdeckt, sendet er eine (unaufgeforderte) inv(Bestandsnachricht), um den neuen Block seinen Peers anzukündigen. Die Peers sollten dann antworten, indem sie eine getdataNachricht senden, in der sie entweder den Header oder den vollständigen Block anfordern.
Die Entwicklerreferenz beschreibt die ausgetauschten Nachrichten ausführlicher.

Die Nodes überprüfen dann den Header und jede enthaltene Transaktion auf Einhaltung der Konsensregeln. Höchstwahrscheinlich werden sie sofort mit dem Mining neuer leerer Blöcke auf der Grundlage des Headers beginnen (da sie nicht wissen, welche Transaktionen noch unbestätigt sind) und dann zum Mining eines nicht leeren Blocks wechseln, sobald der empfangene Block validiert wurde.

Jeder Block enthält eine Transaktion, die die Mining-Belohnung an seinen Miner sendet. Andere Knoten können diese Transaktion nicht ändern, da der Block nicht mehr gültig wäre. Siehe Was ist die Coinbase?

Wenn zwei Blöcke 1Aund 1Bgleichzeitig gefunden werden, wird jede Kettenspitze von einem Teil des Netzwerks als gültig betrachtet. Sobald ein neuer Block 2gefunden ist, kann er nur eine der beiden Kettenspitzen verlängern (hier 1A→2A), wodurch eine der beiden Kettenspitzen als Teil der Kette mit der meisten Arbeit ausgezeichnet wird. Wenn die Knoten von diesem neuen Block 2Aerfahren, werden sie ihre veraltete Kettenspitze verwerfen 1Bund zur "längsten Kette" neu organisieren 1A→2A.
Da es unwahrscheinlich ist, dass eine darauf aufbauende Kette 1Bjemals in der Lage sein wird, die 1A→2AKette zu überholen, würden Miner ihre Kraft verschwenden, um weiter an der veralteten Kette zu arbeiten. Somit wird dem Netzwerk ein starker Anreiz geboten, auf der einen Kette mit der meisten Arbeit zusammenzulaufen.

Wird der neue nicht leere Block nicht einen anderen Hash erzeugen, da der Merkle-Baum anders ist? Warum sollte ein Miner anfangen, einen leeren Block abzubauen?
Natürlich wird es einen anderen Hash haben. Aber darum geht es beim Mining: So viele verschiedene Hashes wie möglich ausprobieren, bis einer der erforderlichen Schwierigkeit entspricht. Sie beginnen mit einem leeren Block (nur Coinbase), weil sie nicht wissen, welche Transaktionen sie einschließen können, da sie den vorherigen Block noch nicht validiert haben.
Dies ist eine gute Antwort, aber aufgrund von Compact Blocks (BIP 152) und FIBRE ist sie jetzt etwas veraltet.