$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
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