@Dusk
Zunächst ging ich davon aus, dass Dusk’s Wahlverfahren hauptsächlich darin besteht, vor Ablauf einer Frist ein Quorum zu erreichen. Doch je genauer ich hinsah, desto mehr zog die Behandlung eines fehlenden Quorums meine Aufmerksamkeit auf sich. Wenn der Validierungsschritt nicht rechtzeitig genug Stimmen sammeln kann, erklärt er den Block nicht einfach für ungültig. Stattdessen ergibt sich ein NoQuorum-Ergebnis, das dann in die Ratifizierung übernommen wird. Das nächste Komitee darf über dieses Ergebnis abstimmen, statt den gesamten Prozess sofort von vorn zu starten. Das schafft eine kleine Unterscheidung zwischen „dem Block ist fehlgeschlagen“ und „das Netzwerk konnte keine Entscheidung treffen“. Das sind sehr unterschiedliche Situationen, insbesondere wenn Bereitsteller (Provisioner) möglicherweise offline sind oder Nachrichten verzögert eintreffen. Das Protokoll hält diese Ungewissheit für einen weiteren Schritt sichtbar, bevor es entscheidet, ob die Iteration fehlschlagen soll. Ich finde das interessanter als die Timeout-Frist selbst. Es legt nahe, dass Schweigen als Information behandelt wird, aber nicht zwingend als Ablehnung.
Vielleicht ist die ruhigere Frage also, wie viel Unsicherheit ein Konsenssystem bewahren sollte, bevor es schließlich das Ausbleiben einer Einigung in einen Fehler verwandelt?
@Dusk #dusk $DUSK