Was passiert, wenn zwei Ketten sich widersprechen?
Konsens heißt: Alle Beteiligten einigen sich auf dieselbe Kette, obwohl niemand das Sagen hat. Die übliche Regel lautet: Es gilt die gültige Kette mit der meisten Arbeit.
Das ist nötig, weil zwei Personen im selben Moment einen Block an dieselbe Kette hängen können. Dann gibt es kurz zwei Ketten.
Am Ende dieser Lektion
Notiz
Ich kann unter mehreren Ketten die gültige mit der meisten Arbeit auswählen.
Schlüsselwörter
| Begriff | Was er bedeutet |
|---|---|
| Konsens | alle einigen sich auf dieselbe Kette |
| Fork | eine Gabelung: zwei Ketten mit demselben Anfang und verschiedenem Ende |
| Arbeit einer Kette | die Summe der Arbeit, die in all ihren Blöcken steckt |
| Gültige Kette | eine Kette, deren Prüfung keinen schlechten Block findet |
| Verwaister Block | ein Block auf einer Kette, die nicht gewählt wurde |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein Fork entsteht, wenn zwei Blöcke gleichzeitig kommen
Zwei Personen schürfen gleichzeitig einen Block, der an denselben Vorgänger passt. Beide Blöcke sind gültig, beide Ketten ebenfalls. Die Ketten haben denselben Anfang und verschiedene Enden.
Jede Person sieht zuerst nur den Block, den sie selbst bekommt. Damit alle wieder dieselbe Kette haben, braucht es eine Regel, die für alle gleich ist.
Die gültige Kette mit der meisten Arbeit gilt
Die Regel hat zwei Schritte. Erst wirft man jede Kette weg, deren Prüfung einen schlechten Block findet. Von den übrigen nimmt man die mit der meisten Arbeit.
Die Arbeit ist die Summe der Arbeit aller Blöcke. Ein Block mit Schwierigkeit 2 kostet im Schnitt 16 hoch 2, also 256 Versuche. Es zählt die Arbeit und nicht die Zahl der Blöcke.
Die Arbeit der beiden Ketten im Labor
| Kette | Blöcke | Arbeit je Block | Arbeit der Kette |
|---|---|---|---|
| A | 3 | 256 | 768 |
| B | 4 | 256 | 1024 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Die Ausgabe des Labors ist englisch
Notiz
Das Skript fork.py gibt englische Wörter aus, zum Beispiel chain, blocks und work. Achten Sie auf die Zahlen 3, 4, 768 und 1024 und auf den Buchstaben der Siegerkette.
Zwei Ketten bauen und vergleichen
docker exec jupyter python3 steps/fork.pyHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Was das Skript ausgibt
Die erste Zeile zeigt, dass beide Ketten gültig sind: True True. Dann stehen Kette A mit 3 Blöcken und Arbeit 768 und Kette B mit 4 Blöcken und Arbeit 1024 da.
Die Siegerkette ist B. Die letzte Zeile fragt, ob die letzten Blöcke gleich sind. Die Antwort ist False, denn die Ketten haben sich getrennt.
Was mit dem unterlegenen Zweig geschieht
Der Block von Kette A fällt weg und wird zum verwaisten Block. Die Zahlungen darin sind nicht verloren. Sie warten wieder darauf, in einen neuen Block zu kommen.
Darum wartet man vor einer wichtigen Zahlung ein paar Blöcke ab. Je mehr Blöcke nach einer Zahlung kommen, desto unwahrscheinlicher kippt sie noch.
Ein häufiger Fehler
Warnung
Viele glauben, immer gewinne die längste Kette. Es gewinnt die gültige Kette mit der meisten Arbeit. Eine längere Kette mit einem gefälschten Block wird verworfen.