Actualités du développement Safe 🇫🇷 25 août 2022

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

« Dites bonjour, dites au revoir » gazouillait Marc Almond de Soft Cell dans les années 80, et à quel point il était prémonitoire. Cette semaine, nous sommes ravis d’accueillir Mo en tant que nouveau membre de l’équipe d’ingénierie de MaidSafe. Mo est informaticien et développeur de logiciels. Il a obtenu son doctorat. en informatique à l’Université de Potsdam en 2020 et s’intéresse à la recherche, à la programmation et aux tests de sécurité pour les services distribués et les systèmes logiciels standard.

En même temps, nous sommes tristes de dire au revoir à @yogesh, qui fait partie de l’équipe depuis plusieurs années maintenant et a vraiment laissé sa marque, appliquant ses capacités de résolution de problèmes médico-légaux et son sens du détail dans tous les aspects de le réseau. Toujours professionnel, le travail le plus récent de Yogesh consistait à s’assurer que le serveur ELK fonctionnait exactement comme il le souhaitait et à compléter toute la documentation. Tous les meilleurs Yogesh et profitez de votre nouveau défi.

Progrès général

@joshuef a retravaillé une partie du module CmdCtrl pour supprimer le dernier verrou restant en dehors de l’instance Node elle-même. Cela a eu un effet positif en termes de simplicité de code, ce qui est toujours une victoire.

@qi_ma étudie maintenant une éventuelle fuite de mémoire lors de la jonction d’un nœud et étudie pourquoi certains messages sont traités très lentement au niveau des nœuds.

@roland a à peu près fini de refactoriser la chaîne de sections en tant qu’arborescence Merkle et met maintenant à jour l’API pour la rendre aussi « compatible avec le drop in » que possible.

Et @anselme a corrigé un problème de seuil dans sn_sdkg, la caisse DKG synchrone. Nous avons maintenant DKG qui fonctionne plutôt bien, y compris avec des divisions de section. L’intégration continue !

@bochaco a repéré quelques problèmes avec la mise en œuvre du stockage de registre, ce qui signifiait que les écritures simultanées sur les mêmes données pouvaient perdre certaines opérations, et en corrigeant cela, nous avons également repéré un autre problème qui aurait pu affecter main, où similaire Les registres xorname pourraient également s’écraser les uns les autres. Un correctif est maintenant en place pour cela.

Rapport d’étape

Messages et pics de mémoire
Nous assistions à une vague de messages et à une augmentation de l’utilisation de la mémoire, en particulier lorsqu’un nouveau nœud contactait les anciens et demandait à se joindre.
Progrès: Beaucoup amélioré. Il y a encore quelques situations qui conduisent à une fuite et celles-ci sont déboguées au fur et à mesure que nous les rencontrons. Ils sont beaucoup moins fréquents maintenant et beaucoup plus faciles à suivre avec le tableau de bord ELK.
Todo: Écraser les bugs lorsque nous voyons des pics.

Tableau de bord ELK
ELK (Elasticsearch, Logstash et Kibana) est une pile d’outils open source permettant d’agréger et de visualiser les fichiers journaux. Plus tard, Beats, qui collecte des métriques à partir du CPU et d’ailleurs, a été ajouté, mais BELK semble stupide, donc le nom ELK reste.
Progrès : Terminé. Nous pouvons maintenant surveiller les réseaux de test et voir ce que fait chaque nœud individuel. Plus ici https://github.com/maidsafe/sn_testnet_tool/tree/main/scripts/ELK
À faire : Déterminez si/comment nous pouvons l’ouvrir en toute sécurité pour que tout le monde puisse le voir.

Le traitement des données
Il était nécessaire de trier les membres de la section pour gérer correctement les données, redistribuer les morceaux lorsqu’un adulte se déconnecte et gérer avec élégance les fractionnements.
Progrès : C’est fait et ça a l’air beaucoup plus solide.
À faire : En attente de la finalisation de l’adhésion afin qu’elle puisse être complétée. D’autres tests sont ajoutés pour renforcer les couches de stockage sous-jacentes.

Remettre
Si un ancien remarque que les anciens actuels ne sont pas les sept nœuds les plus âgés, cela déclenche un vote sur la promotion du ou des adultes les plus âgés et la rétrogradation du ou des anciens les plus jeunes pour faire place. Le transfert est l’algorithme qui contrôle ce processus.
Progrès : Terminé, bien qu’il soit en train d’être affiné avec des commérages - ci-dessous.
À faire : Envisagez d’ajouter des commérages comme solution de rechange.

Adhésion
C’est ce qui permet aux aînés de garder le contrôle sur les adultes de leur section.
Progrès : L’adhésion est désormais intégrée à sn_node et utilise le consensus pour forcer les anciens à se mettre d’accord sur les nouveaux nœuds qui pourront rejoindre la section.
À faire : Amener les adultes à avoir la même vision des membres que les aînés. De nombreuses décisions que les adultes doivent prendre, par ex. les données dont ils sont responsables sont basées sur l’état actuel des membres, mais actuellement ils n’ont pas le même point de vue que les anciens.

Potins
Gossip est un type de protocole p2p où un nœud diffuse périodiquement des connaissances à un autre nœud, souvent sélectionné au hasard, et ce nœud transmet le message à un autre nœud, et ainsi de suite jusqu’à ce qu’il devienne « de notoriété publique ».
Progrès : Nous introduisons des commérages à divers endroits où les processus peuvent parfois se bloquer, tels que les rondes DKG, les adhésions et les divisions du réseau. Dans le cas de ce dernier, les ragots permettent également de reconstruire le réseau après une panne catastrophique.
À faire : Commencer la mise en œuvre.

DKG
La génération de clé distribuée est utilisée lorsque les anciens doivent prendre des décisions concernant l’adhésion.
Progrès : DKG a été remanié avec une implémentation plus propre et sans minuterie et un consensus pour résoudre les cas où DKG échouait et réessayait de manière incohérente en raison de l’utilisation de délais d’attente lors de l’attentepour les messages. Les tests donnent des résultats positifs.
À faire : Correction d’un bogue dans le processus de consensus qui empêche parfois la résiliation. Envisagez d’ajouter des commérages comme couche de communication de secours.

Flux de paiement
Lorsque le client paie pour un téléchargement, il reçoit un reçu et les aînés et les adultes dans les sections qui stockent les données reçoivent une partie de ce paiement. Le flux de paiement concerne le fonctionnement de cette distribution.
Avancement : Nous travaillons sur l’algorithme de gestion des flux de paiement. Pour le moment, l’idée est d’inclure tous les bénéficiaires dans le reçu et de leur permettre de réclamer les fonds en se faisant réémettre un DBC à tout moment. Les bénéficiaires peuvent potentiellement être des clients, des adultes et des aînés.
Todo : Conception détaillée pour couvrir la sécurité, l’UX, les incitations économiques. Essai.

Émissions symboliques
Après la distribution initiale des jetons au début du réseau, les 70 % restants de l’offre totale seront créés et distribués en toute sécurité en raison du téléchargement de données par les personnes sur le long terme. Les SNT ne sont pas créés à chaque téléchargement, mais plutôt lorsque certaines conditions sont remplies. Ces événements doivent se produire avec une probabilité connue, mais être imprévisible quant au moment et à l’endroit où ils se produiront.
Progrès : Nous envisageons actuellement des mécanismes qui récompenseront les anciens, stockeront les adultes et les clients tout en rendant l’exploitation minière par des nœuds voyous non rentable.
À faire : Choisissez une option et testez-la.

Refactorisation de nœud
sn_node a été refactorisé pour supprimer autant d’instances de multithreading que possible afin de simplifier le code et de supprimer les verrous indésirables.
Progrès : Presque terminé. Le code est beaucoup plus simple, les performances sont améliorées et il ne reste qu’un seul nœud verrouillé autour du stockage, ce qui est bien. Il y en a quelques autres autour de la fonction de contre-pression, mais ce n’est pas utilisé par défaut.
À faire : Continuez à surveiller les performances, les cas extrêmes.

** Refactorisation de la chaîne de section **
Chaîne de section, la liste liée sécurisée qui relie les clés de section jusqu’à « Genesis » est en cours de refactorisation en tant que Merkle DAG. Il s’appelle désormais SectionsDAG.
Progrès : Presque terminé.
Todo : Compléter le refactor.

Dysfonctionnement
Tester régulièrement que les nœuds sont en ligne et prendre des mesures s’ils ne le sont pas.
Progrès : Refactorisé avec sa propre suite de tests, en attente de progrès dans d’autres domaines.
À faire : Sera continuellement revisité au fur et à mesure que d’autres composants arriveront à maturité.

DBC
Les certificats numériques au porteur sont le véhicule de transaction des jetons sur le Safe Network.
Progrès : L’intégration DBC et les fonctionnalités de base sont en grande partie là. L’étape suivante consiste à compléter les fonctionnalités de base, en particulier à les faire fonctionner avec les flux de paiement, qui sont beaucoup plus solides qu’il y a six mois.
À faire : Améliorer les API et l’UX autour de cela. Intégrez les API DBC aux flux de paiement et testez-les.

Système de résolution de noms et noms de domaine
Les cartes NRS sont des multicartes (registres sous le capot) qui contiennent le mappage de tous les sous-noms aux URL pour un topname spécifique. Chaque topname a sa propre multimap.
Progrès : L’API a été refactorisée pour simplifier le code. Nous avons choisi le format topname.subname (google.maps) comme étant le plus intuitif.
À faire : Modifications de la commande NRS à mettre en œuvre.

Client / UX
sn_client est l’ensemble d’API et l’interface de ligne de commande (CLI) qui permet aux appareils de se connecter et d’interagir avec le réseau.
Progression : sn_client a été refactorisé - correction de la messagerie indiquant aux utilisateurs s’ils sont connectés ou non, en particulier lors du démarrage.
À faire : Amélioration continue des API et de la CLI à mesure que nous avançons.


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é!