Angenommen, ein Land beschließt, irgendwie alle ausgehenden Stellar-Verbindungen für 30 Minuten zu blockieren. Mit einem abstimmungsbasierten Konsens, dass Stellar Chains in beiden Netzwerken hat, schreiten sie mit ähnlicher Geschwindigkeit voran. Nachdem die Netzwerkaufteilung vorbei ist, wird es zwei Stellar-Netzwerke mit einer unterschiedlichen Geschichte geben.
Wie würde ein solches Ergebnis mit den neuen Konsensänderungen gelöst/vermieden werden? Gibt es eine Möglichkeit festzustellen, welcher Netzwerkstatus nach der Trennung korrekt ist? Kann das kleinere Split-Netzwerk wissen, dass es aufgeteilt ist, und die Annahme von Transaktionen pausieren?
Unter der Annahme, dass die Leute angemessene Quorum-Slices gewählt haben und das System eine Quorum-Schnittmenge hat (wie das System verwendet werden soll), dann wäre mit Stellars neuem Konsensprotokoll mindestens eine der beiden Partitionen nicht in der Lage, Transaktionen für die Dauer von abzuwickeln Netzwerkausfall.
Stellar ermöglicht Redundanz, da Validatoren mehrere Slices haben können. Beispielsweise kann ein Slice aus 5 von 7 Validatoren bestehen, die über Länder verteilt sind. In diesem Fall, wenn das geteilte Land nur 1 oder 2 Validatoren hat, kann der Rest der Welt weiterhin Fortschritte machen.
Ein solches Szenario ist eigentlich unvermeidlich. Sie müssen höchstens zwei aus Konsistenz, Verfügbarkeit und Partitionstoleranz auswählen. Dies wird manchmal als "Theorem von Brewer" bezeichnet, weil Eric Brewer es vermutete und Seth Gilbert und Nancy Lynch es anschließend bewiesen. Siehe: http://www.cs.luc.edu/~pld/353/gilbert_lynch_brewer_proof.pdf
Ich denke, Ihre Frage basiert auf der fehlerhaften Prämisse, dass dies ein Problem ist. Während das Netzwerk aufgeteilt ist, hat höchstens eine Seite genügend Validatoren, um Ledger vollständig zu validieren, obwohl beide Seiten Fortschritte machen. Es ist auch möglich, dass keine Seite eine Supermehrheit haben wird, und daher werden beide Seiten zwar Fortschritte machen, aber keine Seite wird alle Ledger vollständig validieren.
Sobald die beiden Seiten wieder zusammenkommen, wird die eine oder andere Kette aufgrund der Lawine der Validierer beim Wiederbeitritt des Netzwerks eine Supermehrheit erlangen. Dies ist besser, als während der Teilung keinen Fortschritt zu machen, da keine Netzwerktransaktionskapazität verloren geht.
Während der Wiederverbindung ist eine große Anzahl ansonsten kostspieliger Überprüfungen nicht erforderlich. Es besteht keine Notwendigkeit, Transaktionen zweimal auszuführen (einmal, um zu entscheiden, wie darüber abgestimmt werden soll, und dann noch einmal, um ihre tatsächlichen Ergebnisse zu bestimmen). Es ist nicht erforderlich, Transaktionen erneut zu versuchen (da Sie die Reihenfolge kennen, in der sie ausgeführt wurden). Usw. Alles, was Sie tun müssen, ist, jedes Ledger im abschließenden Annahmeprozess zu erstellen, was Sie sowieso tun müssen, weil Sie Ihre Datenbanken aktualisieren, Transaktionsergebnisse an Kunden weiterleiten müssen und so weiter.
Murch
Nick Odell