🔍 Au cœur de @Rayls Axyl : que se passe-t-il lorsque le calcul parallèle de la racine d’état échoue ?

L’exécution parallèle peut améliorer les performances, mais que se passe-t-il lorsque le calcul parallèle de la racine d’état échoue pendant la construction d’un bloc ?

J’ai examiné le code d’exécution de Rayls Axyl et découvert trois méthodes distinctes pour calculer la racine d’état.

⚡ 1. Calcul creux

Axyl lance le calcul de l’arbre de Merkle creux pendant l’exécution des transactions EVM. Les deux opérations peuvent ainsi se dérouler en parallèle. Si le calcul parallèle réussit, Axyl utilise la racine d’état obtenue et les mises à jour de l’arbre.

🔄 2. Repli sur le calcul séquentiel

Si le calcul parallèle renvoie une erreur, Axyl tente de recalculer la racine d’état à l’aide d’une méthode séquentielle. Le code transforme également en résultat d’erreur toute panique survenant dans l’opération protégée de calcul de la racine creuse, ce qui permet à l’appelant de passer à la branche de repli.

🛠️ 3. Calcul séquentiel direct

Si la tâche parallèle ne peut pas être lancée, Axyl suit une autre voie. Comme la fonction de calcul de la racine creuse n’est pas disponible, la racine d’état est calculée directement à l’aide de la méthode séquentielle.

Le point essentiel est que l’échec de la configuration de la tâche et l’échec du calcul sont traités dans des branches différentes, même si tous deux peuvent conduire à un calcul séquentiel de la racine d’état.

Une fois la racine d’état choisie, Axyl la transmet à l’assemblage du bloc. Le code consigne également dans ses journaux la méthode de calcul sélectionnée.

Il est important de noter qu’un repli ne garantit pas la récupération après chaque échec. Si le calcul séquentiel renvoie lui aussi une erreur, celle-ci est propagée au lieu d’être ignorée silencieusement.

Ces détails d’implémentation montrent comment Axyl relie calcul parallèle, gestion des erreurs, reprise séquentielle et construction des blocs.