- Deux pannes sont dues à un bug de chargement de gaz qui a provoqué des plantages de validateurs lorsque des transactions échouées déclenchaient des erreurs de solde.
- Un bogue distinct lié à l'état de aléatoire a causé la troisième suspension en empêchant les validateurs de fermer correctement un epoch du réseau.
- Sui a déclaré que les fonds des utilisateurs n'ont pas été affectés, a mis en œuvre des correctifs et a ajouté des mesures de sécurité pour améliorer la résilience du réseau.
La Sui Foundation a détaillé dimanche les causes des trois pannes du mainnet qui ont perturbé les opérations du réseau jeudi et vendredi, les attribuant à deux bogues distincts introduits lors de la mise à jour logicielle v1.72. Les pannes sont survenues alors que les validateurs tentaient de résoudre des problèmes liés à la fonctionnalité de nouveaux soldes d'adresses et à un problème séparé lié à l'état de la randomisation. Selon la fondation, aucun fonds d'utilisateur n'était en danger et aucune transaction validée n'a été annulée lors de la récupération.
Un bug de recharge de gaz a déclenché les deux premières pannes
La première panne a commencé vers 7 h PT jeudi et a duré jusqu’à environ 13 h 30 PT. Toutefois, une deuxième interruption a suivi vendredi matin après que les validateurs ont déployé une solution provisoire.
Selon Sui Foundation, les deux interruptions proviennent d'une faille liée à la facturation du gaz et à la fonctionnalité récemment introduite des soldes d'adresses. Le problème est apparu lorsque des transactions concurrentes pour les mêmes fonds ont déclenché une erreur InsufficientFundsForWithdraw.
Bien que la transaction ait été annulée, les étapes ultérieures de traitement du gaz ont tenté de dépenser à nouveau le même solde. En conséquence, les validateurs ont rencontré un solde négatif lors du règlement, provoquant le plantage des nœuds.
Pour rétablir rapidement les opérations, l'équipe Sui Core a proposé une solution provisoire jeudi. Toutefois, l'équipe a reconnu qu'un risque connu à faible probabilité persistait dans cette solution temporaire.
Par conséquent, le réseau a rencontré une variante du même problème vendredi matin, entraînant la deuxième interruption avant que les validateurs n'implémentent une correction plus complète.
Un bogue de aléatoire a provoqué le troisième arrêt
Après la deuxième récupération, le réseau a fonctionné normalement jusqu'au prochain changement d'époque prévu vendredi après-midi. À ce moment-là, un autre bogue a déclenché la troisième panne.
Selon la fondation, les validateurs ont relancé l'installation du correctif du vendredi, mais n'ont pas satisfait aux exigences de participation pour la génération distribuée de clés. Comme conçu, le processus a désactivé la randomisation pour l'époque.
Cependant, un bogue latent empêchait les validateurs de conserver cet état entre les redémarrages. En conséquence, les transactions dépendantes de la randomisation sont restées non résolues, provoquant un accumulage de files d'attente qui a empêché la fermeture de l'époque.
La panne a duré de environ 13h30 heure PT à 19h20 heure PT vendredi.
Foundation présente les corrections et les leçons
Suite aux incidents, les validateurs ont corrigé les bugs liés à la facturation du gaz et à l'état de la randomisation. De plus, la fondation a mis en place un mécanisme permettant aux validateurs de forcer la fermeture d'un epoch en panne si nécessaire.
Le rapport a également mis en évidence des domaines à améliorer, notamment la logique de facturation du gaz, la résilience à la fin de l'époque et la containment des pannes. De plus, Sui Foundation a indiqué que les agents IA ont aidé les ingénieurs à diagnostiquer plus rapidement les incidents en analysant les journaux des validateurs, les données de production et les métriques du réseau pendant les pannes.


