Abstracto y 1. Introducción
Modelo del sistema
Estado inicial del nodo
Proceso de anexión
4.1 Anexión local
4.2 Anexión desde otro nodo
4.3 Validación de registros
4.4 Consistencia de estado
Proceso de replicación
Prueba de corrección
Conexiones M-de-N
Extensiones y optimizaciones
Referencias
Para acelerar el proceso de sincronización, el nodo puede enviar mensajes a todos los pares conocidos. Esta solución tiene sentido cuando:
\
No hay tantos nodos en el sistema (como 5-9)
\
La latencia es predecible
En caso de que la solución utilice primitivas de sincronización y haya garantía de que no habrá dos o más registros con la misma marca de tiempo, entonces el índice de marca de tiempo puede reducirse.
Para reducir la cantidad de tráfico durante la replicación, el algoritmo utiliza bitmap como reemplazo de las claves públicas. Como todos los nodos deben conocer todas las claves públicas en la red, es justo decir que todos los nodos tienen el mismo conjunto de claves públicas. El algoritmo de bitmap (para la clave pública de un registro determinado):
\
Todas las claves públicas se ordenan en orden ASC
\
Luego el algoritmo itera sobre las claves públicas ordenadas: en caso de que la clave pública esté presente en el registro, el algoritmo devuelve 1, de lo contrario 0. Ejemplo: hay claves públicas en la red [A, B, C, D], el registro incluye firmas y claves públicas para [B, C], entonces el bitmap se verá: 0110 en forma binaria, o 6 en forma decimal
\
Este número en decimal se utiliza en lugar de las claves públicas durante el proceso de replicación
\
La decodificación ocurre de manera opuesta
\
Repositorio GitHub de ABGP: https://github.com/ega-forever/abgp-js
\
Cynthia Dwork, Nancy Lynch y Larry Stockmeyer: Consenso en presencia de sincronía parcial - https://groups.csail.mit.edu/tds/papers/Lynch/jacm88.pdf
\
Denis Rystsov. CASPaxos: Máquinas de estado replicadas sin logs - https://arxiv.org/pdf/1802.07000.pdf
\
Paul Miller: Aprendiendo criptografía de curva elíptica rápida - https://paulmillr.com/posts/noblesecp256k1-fast-ecc/
\
Robbert van Renesse, Dan Dumitriu, Valient Gough, Chris Thomas. Reconciliación eficiente y control de flujo para protocolos anti-entropía - http://www.cs.cornell.edu/home/rvr/papers/flowgossip.pdf
\
Márk Jelasity: Protocolos Gossip - http://www.inf.u-szeged.hu/\~jelasity/ddm/gossip.pdf
\
Colin J. Fidge. Marcas de tiempo en sistemas de paso de mensajes que preservan el ordenamiento parcial - http://fileadmin.cs.lth.se/cs/Personal/Amr_Ergawy/dist-algos-papers/4.pdf
\
A. Shamir. Cómo compartir un secreto", Communications of the ACM 22 (11): 612613, 1979.
\
Sistemas distribuidos por diversión y beneficio - http://book.mixu.net/distsys/single-page.html
\
Tolerancia a fallos bizantinos práctica y recuperación proactiva - http://www.pmg.csail.mit.edu/papers/bft-tocs.pdf
\
:::info Autor:
(1) Egor Zuev (zyev.egor@gmail.com)
:::
:::info Este documento está disponible en arxiv bajo la licencia CC0 1.0 UNIVERSAL.
:::
\