Welche Art von Konsensalgorithmen verwendet Ripple? Ist das ein Leader- oder Leaderless-Distributed-Consensus-Algorithmus? Dann was?
Es ist führerlos.
Ein Validator beginnt eine Konsensrunde, wenn er entweder mindestens eine unbestätigte Transaktion hat, die er für gültig hält, die Leerlaufzeit abgelaufen ist oder er sieht, dass genügend Validatoren, denen er vertraut, eine Konsensrunde begonnen haben. Jeder teilnehmende Validator macht einen ersten Vorschlag, der die Transaktionen auflistet, die seiner Meinung nach in der aktuellen Runde angewendet werden sollten. Die Server Lawine zum Konsens.
Wenn es widersprüchliche Transaktionen gibt, werden alle Fälle behandelt. Wenn nur einer in die Runde kommt, wird er angewendet und der andere ist für immer ungültig. Wenn beide dies tun, bestimmt ein deterministischer Algorithmus, welcher zuerst angewendet wird, und der andere schlägt fehl. Wenn beides nicht der Fall ist, bestimmt ein deterministischer Algorithmus, was in der nächsten Runde bekannt gegeben wird, sodass in dieser Runde eine Einigung erzielt werden sollte.
Da ein byzantinisches Scheitern möglich ist, erstellen Validatoren am Ende der Runde das nächste Ledger und senden dann eine signierte Validierung dieses Ledgers. Zu sehen, dass eine große Mehrheit vertrauenswürdiger Prüfer Validierungen für dasselbe Hauptbuch unterschreibt, stellt sicher, dass ein tatsächlicher Konsens erreicht wurde. (Wenn aufgrund eines byzantinischen Versagens kein wirklicher Konsens zustande kam, versucht es das Netzwerk einfach erneut.)
Der Avalanche-Algorithmus ist so ausgelegt, dass eine minimale Vertrauensüberlappung erforderlich ist. Wenn es keinen Grund gibt, warum eine Transaktion nicht aufgenommen werden sollte, sollte jeder ehrliche Knoten damit einverstanden sein, sie aufzunehmen. Wenn es einen Grund gibt, warum eine Transaktion nicht aufgenommen werden sollte, schadet es nicht, sie auszuschließen. (Solange es in der nächsten Runde enthalten ist, wenn es noch gültig ist.)
dchapes