Actualités du développement Safe 🇫🇷 8 septembre 2022

Ceci est une traduction automatique. L’original en anglais est ici: Update 08 September, 2022

Vous configurez un réseau de test, vous téléchargez des données, quelque chose ne va pas. Que s’est-il passé et où cela s’est-il produit exactement ? Localiser où les problèmes surviennent dans les réseaux est un défi délicat, en particulier dans les réseaux décentralisés où chaque nœud est un individu. Cette semaine, @davidrusu nous guide à travers statemaps, un outil de diagnostic qui nous montre exactement dans quel état se trouve chaque nœud à un moment donné. C’est une vue d’ensemble du réseau qui facilitera sans aucun doute la suppression des bogues.

Merci comme toujours à tous ceux qui expérimentent les réseaux locaux et les comnets. Nous sommes raisonnablement convaincus que certains des problèmes liés au téléchargement de fichiers volumineux se situent au niveau de la couche API, et nous examinons cela maintenant.

Progrès général

@bochaco continue d’affiner le processus de rapport d’erreurs pour fournir des messages plus significatifs aux clients.

@anselme étudie AE et les commérages et comment l’un peut être une solution de repli pour l’autre en cas de panne de communication.

Concernant la documentation, @jimcollinson finalise le principal livre blanc requis par l’autorité suisse FINMA. Il s’agit d’un aperçu plutôt que d’une plongée technique approfondie, donc probablement rien de nouveau pour la plupart des gens ici, mais cochez néanmoins ces cases légales prêtes à être lancées.

@Chriso et @bochaco organisent ce qui se passe lorsqu’un DBC est soumis pour réémission, et en vérifiant ce processus, il a été constaté que certaines épreuves épuisées ont été signées avec une clé de section dont la section traitant la demande de réémission n’est pas au courant.

Cartes d’état

Dans un système hautement concurrent, il peut être très difficile de voir ce qui se passe. Les nœuds traversent les états incroyablement rapidement et essayer de corréler les messages entre les nœuds peut donner l’impression que vous essayez de récupérer un document déchiqueté.

Statemaps nous permet de recréer une image partielle de ce qui s’est passé dans un réseau après coup. Ils ont été un outil très utile pour comprendre où les nœuds passent leur temps.

Nous avons instrumenté la base de code sn_node pour enregistrer lorsqu’il entre dans un état et à nouveau lorsqu’il quitte un état. Nous pouvons ensuite traiter ces journaux pour générer un statemap comme celui ci-dessous :


Chaque ligne correspond à un nœud, avec le temps sur l’axe x. Les rectangles sur chaque ligne correspondent à l’état dans lequel se trouvait le nœud pendant cet intervalle de temps.

Chaque état se voit attribuer une couleur :

En analysant cette carte d’état, vous pouvez commencer à comprendre ce qui s’est passé ici, étiquetons les différentes phases et parlons-en.

  1. Nous pouvons voir que la carte commence par 6 Aînés votant sur l’adhésion (saumon)
  2. Une fois l’adhésion terminée, ils lancent immédiatement DKG (orange). Cela devrait être un indice qu’il y aura un changement d’anciens.
  3. Pendant ce temps, nous voyons qu’un 7ème nœud est en ligne. Il reçoit une mise à jour AntiEntropy (bleu clair) l’informant qu’il a été accepté dans le réseau, puis rejoint le DKG (orange). Cela suggérerait que ce nouveau nœud qui vient de rejoindre est promu au statut d’Aîné et que c’est pourquoi les 6 Aînés d’origine ont lancé DKG.
  4. Maintenant, nous voyons que DKG est au point mort, c’est parce que DKG nécessite une participation totale pour se terminer, les 6 nœuds existants ont tous contribué leurs parties mais ils ont besoin que le 7e nœud ajoute sa part pour compléter la clé de section.
  5. Finalement, le 7e nœud rattrape son retard et DKG se termine. La prochaine étape consiste à demander aux 6 anciens anciens de vérifier que la nouvelle clé de section est valide et de transférer le contrôle (bleu foncé) aux nouveaux 7 anciens.
  6. Une fois le transfert terminé, nous voyons une rafale d’anti-entropie être envoyée, vraisemblablement avec le nouveau SAP, montrant que les nouveaux anciens ont pris le contrôle de la section.

Nous avons développé quelques outils autour de ces statemaps, le Safe Network README contient des instructions pour générer les vôtres.

Pour faciliter le développement, nous avons également configuré CI pour générer et télécharger automatiquement des statemaps pour chaque PR.

Nous espérons que vous trouverez ces cartes éclairantes, bon splonking !


Liens utiles

N’hésitez pas à répondre ci-dessous avec des liens vers les traductions de cette mise à jour de développement et les modérateurs les ajouteront ici.

En tant que projet open source, nous sommes toujours à la recherche de commentaires, de commentaires et de contributions de la communauté. Ne soyez donc pas timide, rejoignez-nous et créons ensemble le réseau sécurisé!