Quand vous construisez une application qui soumet des transactions à Dusk L1, obtenir une réponse réussie du nœud semble être le moment évident pour dire à l’utilisateur que l’action a fonctionné.

Je me suis surpris à le lire ainsi, jusqu’à ce que je suive plus attentivement le cycle de vie des transactions de Dusk. Un `202 Accepted` provenant de l’endpoint de propagation signifie seulement que le nœud a accepté la transaction pour l’acheminement. Cela ne veut pas dire que la transaction est arrivée dans un bloc, qu’elle a été exécutée avec succès ou qu’elle est devenue finale.

Cela transforme une intégration qui semblait simple « envoyer une transaction » en une forme plus proche du suivi d’état. Une fois qu’une transaction s’exécute, Dusk expose un champ `err`, où `null` signifie que l’exécution a réussi. Même alors, un bloc accepté peut encore être annulé. La finalité arrive lorsque le bloc atteint l’état `finalized`.

Je pense que cela requalifie utilement le rôle du concepteur.

Vous ne faites pas que connecter un bouton à un endpoint et attendre un succès HTTP. Vous décidez quel état du réseau votre application est réellement prête à traduire en « terminé » pour la personne qui l’utilise.

« Soumise » est un état.

« Exécutée avec succès » en est un autre.

« Finale » est celle qui clôt la boucle.

@Dusk $DUSK #dusk