$DUSK #dusk @Dusk

Eu fui vasculhar a documentação de transações da Dusk porque eu continuava vendo “accepted”, “executed” e “finalized” sendo tratados como se significassem a mesma coisa.

Eles não significam.

No endpoint /on/transactions/propagate da Dusk, uma resposta 202 Accepted apenas significa que o nó aceitou a transação para roteamento. Isso não prova que a transação entrou no mempool, foi propagada para os peers, foi executada com sucesso ou alcançou finalidade.

Depois disso, fica ainda mais interessante.

O ciclo de vida é bem mais longo: broadcast → validation → mempool → bloco candidato → aceitação/execução do bloco → confirmação → finalidade.

E a própria execução não necessariamente significa sucesso. A Dusk pode emitir um evento transaction-executed com um erro quando a ação do contrato falha ou reverte. Então “executed” e “successful” também não são intercambiáveis.

Essa distinção parece especialmente importante para aplicações financeiras, onde tratar um status inicial como sucesso poderia significar agir sobre algo que na verdade não é final.

A parte que eu continuo voltando é o 202 Accepted.

Uma transação pode parecer “aceita” para uma aplicação enquanto a própria documentação de integração da Dusk separa explicitamente roteamento de execução e finalidade.

Me pergunto quantas integrações tratam 202 Accepted como sucesso quando a Dusk separa explicitamente roteamento, execução e finalidade.

O que “Accepted” significa para você? 👀
$ALPINE $ACE
🧐 Finality
43%
💫 Execution
29%
👀 Mempool
14%
🧠 All three
14%
7 Votos • Votação encerrada