¿Qué tipo de algoritmos de consenso utiliza Ripple? ¿Es un algoritmo de consenso distribuido líder o sin líder? ¿Y que?
Es sin líder.
Un validador comienza una ronda de consenso cuando tiene al menos una transacción sin confirmar que cree que es válida, el tiempo de inactividad ha expirado o ve que suficientes validadores en los que confía han comenzado una ronda de consenso. Cada validador participante hace una propuesta inicial que enumera las transacciones que cree que deberían aplicarse en la ronda actual. Los servidores avalancha de consenso.
Si hay transacciones en conflicto, se manejan todos los casos. Si solo uno entra en la ronda, se aplica y el otro es inválido para siempre. Si ambos lo hacen, un algoritmo determinista determina cuál se aplica primero y el otro falla. Si ninguno lo hace, un algoritmo determinista determina cuál se anuncia en la siguiente ronda, por lo que debe haber un acuerdo en esa ronda.
Debido a que la falla bizantina es posible, los validadores construyen el siguiente libro mayor al final de la ronda y luego transmiten una validación firmada de ese libro mayor. Ver a una gran mayoría de validadores de confianza firmar validaciones para el mismo libro mayor asegura que se alcanzó un consenso real. (Si no hubo un consenso real debido a una falla bizantina, la red simplemente vuelve a intentarlo).
El algoritmo de avalancha está diseñado para que se requiera una mínima superposición de confianza. Esencialmente, si no hay razón para no incluir una transacción, todos los nodos honestos deberían estar de acuerdo en incluirla. Si hay alguna razón por la que una transacción no debería incluirse, no hay ningún problema en excluirla. (Siempre que se incluya en la siguiente ronda si aún es válido).
dchapes