#dusk $DUSK @Dusk
Estaba mirando el mecanismo de Fallback de Dusk y una cosa me llamó la atención: el número de iteración realmente importa mucho cuando ocurre un fork.
Como el consenso de Dusk es asíncrono, los mensajes pueden llegar tarde o perderse durante la congestión. Entonces, distintas partes de la red pueden ver bloques diferentes, y a veces más de un candidato puede obtener cuórum en la misma ronda.
La regla básica es que la iteración más baja tiene prioridad. Si se acepta un bloque de la iteración 1 pero más tarde un bloque de la iteración 0 obtiene cuórum, el bloque de iteración más baja puede reemplazarlo. El nodo vuelve al estado anterior al bloque antiguo y reorganiza la cadena.
Eso hace que la iteración 0 sea interesante. La iteración 0 es el primer intento, seguida por la iteración 1, 2, y así sucesivamente. Como no existe la iteración -1, un bloque de iteración 0 no puede ser reemplazado directamente por Fallback mediante una iteración más baja.
Pero no diría que eso sea una finalización definitiva completa. Un bloque de iteración 0 aún puede verse afectado si se revierte un ancestro. La finalización real llega a través de Rolling Finality.
Así que, en mi opinión, Fallback es más que solo limpieza de forks. El número de iteración le da a la red una manera determinista de elegir entre bloques en competencia, con la iteración 0 en el fondo de ese orden de prioridad.
Estaba mirando el mecanismo de Fallback de Dusk y una cosa me llamó la atención: el número de iteración realmente importa mucho cuando ocurre un fork.
Como el consenso de Dusk es asíncrono, los mensajes pueden llegar tarde o perderse durante la congestión. Entonces, distintas partes de la red pueden ver bloques diferentes, y a veces más de un candidato puede obtener cuórum en la misma ronda.
La regla básica es que la iteración más baja tiene prioridad. Si se acepta un bloque de la iteración 1 pero más tarde un bloque de la iteración 0 obtiene cuórum, el bloque de iteración más baja puede reemplazarlo. El nodo vuelve al estado anterior al bloque antiguo y reorganiza la cadena.
Eso hace que la iteración 0 sea interesante. La iteración 0 es el primer intento, seguida por la iteración 1, 2, y así sucesivamente. Como no existe la iteración -1, un bloque de iteración 0 no puede ser reemplazado directamente por Fallback mediante una iteración más baja.
Pero no diría que eso sea una finalización definitiva completa. Un bloque de iteración 0 aún puede verse afectado si se revierte un ancestro. La finalización real llega a través de Rolling Finality.
Así que, en mi opinión, Fallback es más que solo limpieza de forks. El número de iteración le da a la red una manera determinista de elegir entre bloques en competencia, con la iteración 0 en el fondo de ese orden de prioridad.
