Uma transação que o Dusk consegue reenviar deve ser admissível ao vivo também.

Essa fronteira é mais rígida.

Eu assumi que o formato de transação era uma regra: decodifique com sucesso e a rede fica satisfeita.

O Dusk dividiu esse caminho.

A implementação atual do Rusk separa a entrada de transações ao vivo dos dados canônicos do ledger. Os envelopes do Aegis e do Boreas podem entrar pela admissão ao vivo e serem normalizados para o formato de entrada ativo, então passam por `CanonicalTransaction` e `LedgerTransaction` antes de a transação localmente selada ser canonicada para o compromisso do bloco. A consistência ainda verifica se a codificação do ledger corresponde ao formato canônico exigido naquela altura do bloco.

E a parte estranha é o que acontece com formatos mais antigos.

O default de ativação do Aegis no mainnet do Dusk é o bloco **3,590,904**. Formatos históricos de transações continuam decodificáveis para o replay do ledger, mas esses mesmos formatos históricos são rejeitados durante a admissão ao vivo no mempool quando o formato deixa de ser permitido lá.

Então imagine uma transação antiga, de antes dessa fronteira, situada no histórico da cadeia.

O Dusk ainda consegue entendê-la ao reenviar o ledger.

Mas tente fazer essa forma histórica passar pela admissão ao vivo depois que o protocolo avançou, e ela será rejeitada.

O nó pode preservar o passado sem permitir que o passado defina o que se torna novos dados do ledger.

Quanto da compatibilidade de transações do Dusk vem de preservar formatos antigos para o histórico da cadeia, e quanto de sua consistência vem de recusar que esses formatos voltem ao caminho ao vivo?

@Dusk $DUSK #dusk