Suivre exécution et annulation
À la fin, expliquez le schéma avec vos mots, résolvez le cas et justifiez la correction.
Prérequis : Un état partagé et des comptes · Le gas : payer le travail effectué
Niveau 2 · Intermédiaire →Parcours de lecture · 10 / 35 · Intermédiaire
L’EVM exécute des instructions de manière déterministe.
L’essentiel
L’EVM exécute des instructions de manière déterministe. Les nœuds qui partent du même état et exécutent les mêmes opérations doivent retrouver le même résultat. Un contrat ne peut donc pas récupérer librement un cours sur un site web pendant l’exécution : cette donnée doit être introduite par un mécanisme défini, tel qu’un oracle.
Le mécanisme
Un contrat peut appeler d’autres contrats. Cette composabilité permet de combiner échange, emprunt et remboursement dans une seule transaction. Si une condition essentielle échoue et provoque un revert global, les changements d’état de cette transaction sont annulés, mais les frais du calcul effectué restent dus.
Les points d’attention
Du code déployé peut être immuable, tandis qu’un système de proxy peut permettre de remplacer la logique utilisée. L’adresse seule ne prouve donc pas l’absence de pouvoir d’administration. Il faut examiner les droits de mise à jour, les délais et les contrôles autour des clés.
Comprendre en profondeur
L’EVM exécute des instructions de manière déterministe sur un état donné. Le stockage d’un contrat persiste entre transactions ; la mémoire temporaire d’exécution ne persiste pas. Un appel peut invoquer un autre contrat, puis d’autres programmes. Cette composition est utile mais élargit le comportement à examiner derrière une action apparemment simple.
Limites et erreurs fréquentes
Un revert annule les changements dans le périmètre concerné, tandis que le gas consommé reste important. L’appelant peut gérer volontairement un sous-appel échoué : tout échec interne ne signifie donc pas échec global. Un proxy modifiable ajoute une distinction : l’adresse appelée peut déléguer son comportement à une implémentation modifiable par gouvernance ou administrateur.
Le mécanisme en un schéma
- État initial
- A appelle B
- Réussite ou échec géré
- Valider ou annuler le périmètre
Appliquer la leçon à un cas
Le contrat A enregistre un ordre, appelle B, puis exige un résultat positif. B échoue et A annule. Suivez l’ordre, le mouvement de jetons et les frais. Comparez ensuite avec A qui intercepte l’échec et continue sans déplacer les jetons.
Un reçu positif indique seulement que l’exécution globale n’a pas été annulée. L’événement économique attendu peut manquer. Comparez adresse du contrat, événements décodés et soldes finaux à l’action prévue. Les journaux d’une exécution annulée ne sont pas conservés comme événements réussis de cette transaction.
Les termes de cette leçon
- Oracle
- Un mécanisme fournissant à un contrat des informations provenant d’un autre contexte.
Préparer une note de correction
Décrivez le passage et la correction proposée. Vous pourrez copier cette note pour la partager ; rien n’est envoyé. N’incluez aucune donnée personnelle ou confidentielle.