Todo mundo fala sobre o modo de emergência do Dusk como se fosse apenas uma rede de segurança quando a produção de blocos trava. Mas o que realmente chamou minha atenção é algo menor do que isso: quando uma etapa expira, o Dusk não para e espera. Ele simplesmente inicia uma nova iteração, enquanto a anterior ainda está em execução, ainda permitida a alcançar o quórum. Duas tentativas vivas ao mesmo tempo — e isso não é acidente.

Isso é uma coisa estranha de aceitar, se você pensar. A maioria dos sistemas de consenso trata esperar como o movimento seguro e discordar como o assustador. O Dusk basicamente inverte isso durante emergências. Ele diz: um caminho travado é pior do que um fork temporário, desde que exista uma regra clara para limpar esse fork depois — a menor iteração vence, pronto.

Mas o que me incomoda é o seguinte. Essa regra só funciona se cada provedor de serviço conseguir realmente concordar sobre qual iteração atingiu o quórum primeiro, sem discutir. E o momento em que você entra no modo de emergência é exatamente o momento em que é mais difícil saber: validadores ausentes, conexões falhas, mensagens atrasadas.

Então eu não acho que a pergunta interessante seja se o Dusk tolera bagunça. Pelo visto, ele tolera — de propósito. A verdadeira questão é se a saída dessa bagunça continua limpa quando a rede já está com dificuldades, ou se só costuma ficar assim.

#dusk @Dusk $DUSK