Abstrakt und 1. Einleitung
Systemmodell
Anfangszustand des Knotens
Anhangsprozess
4.1 Lokaler Anhang
4.2 Anhang von einem anderen Knoten
4.3 Datensatzvalidierung
4.4 Zustandskonsistenz
Replikationsprozess
Korrektheitsbeweis
M-von-N Verbindungen
Erweiterungen und Optimierungen
Referenzen
Um den Synchronisierungsprozess zu beschleunigen, kann der Knoten Nachrichten an alle bekannten Peers senden. Diese Lösung ist sinnvoll, wenn:
\
Es nicht so viele Knoten im System gibt (wie 5-9)
\
Die Latenz vorhersehbar ist
Falls die Lösung Synchronisierungsprimitive verwendet und es eine Garantie gibt, dass es nicht zwei oder mehr Datensätze mit demselben Zeitstempel geben wird, dann kann der Zeitstempelindex reduziert werden.
Um die Verkehrsmenge während der Replikation zu reduzieren, verwendet der Algorithmus Bitmap als Ersatz für öffentliche Schlüssel. Da alle Knoten alle öffentlichen Schlüssel im Netzwerk kennen sollten, ist es fair zu sagen, dass alle Knoten den gleichen Satz öffentlicher Schlüssel haben. Der Bitmap-Algorithmus (für den bestimmten öffentlichen Schlüssel des Datensatzes):
\
Alle öffentlichen Schlüssel werden in aufsteigender Reihenfolge sortiert
\
Dann iteriert der Algorithmus über sortierte öffentliche Schlüssel: falls der öffentliche Schlüssel im Datensatz vorhanden ist, gibt der Algorithmus 1 zurück, andernfalls 0. Beispiel: Es gibt öffentliche Schlüssel im Netzwerk [A, B, C, D], der Datensatz enthält Signaturen und öffentliche Schlüssel für [B, C], dann sieht die Bitmap so aus: 0110 in binärer Form oder 6 in dezimaler Form
\
Diese Zahl in Dezimalform wird dann anstelle der öffentlichen Schlüssel während des Replikationsprozesses verwendet
\
Die Dekodierung erfolgt auf umgekehrte Weise
\
ABGP GitHub-Repository: https://github.com/ega-forever/abgp-js
\
Cynthia Dwork, Nancy Lynch und Larry Stockmeyer: Consensus in the Presence of Partial Synchrony - https://groups.csail.mit.edu/tds/papers/Lynch/jacm88.pdf
\
Denis Rystsov. CASPaxos: Replicated State Machines without logs - https://arxiv.org/pdf/1802.07000.pdf
\
Paul Miller: Learning fast elliptic-curve cryptography - https://paulmillr.com/posts/noblesecp256k1-fast-ecc/
\
Robbert van Renesse, Dan Dumitriu, Valient Gough, Chris Thomas. Efficient Reconciliation and -Flow Control for Anti-Entropy Protocols - http://www.cs.cornell.edu/home/rvr/papers/flowgossip.pdf
\
Márk Jelasity: Gossip Protocols - http://www.inf.u-szeged.hu/\~jelasity/ddm/gossip.pdf
\
Colin J. Fidge. Timestamps in Message-Passing Systems That Preserve the Partial Orderinghttp://fileadmin.cs.lth.se/cs/Personal/Amr_Ergawy/dist-algos-papers/4.pdf
\
A. Shamir. How to share a secret", Communications of the ACM 22 (11): 612613, 1979.
\
Distributed systems for fun and profit - http://book.mixu.net/distsys/single-page.html
\
Practical Byzantine Fault Tolerance and Proactive Recovery - http://www.pmg.csail.mit.edu/papers/bft-tocs.pdf
\
:::info Autor:
(1) Egor Zuev (zyev.egor@gmail.com)
:::
:::info Dieses Papier ist auf arxiv verfügbar unter der CC0 1.0 UNIVERSAL-Lizenz.
:::
\

