Ceci est une traduction automatique. L’original en anglais est ici: Safe Network Dev Update - January 14, 2021
Sommaire
Voici quelques-unes des principales choses à souligner depuis la dernière mise à jour du développement:
- Nous continuons à déplacer toutes les définitions de messages clients et la logique de sérialisation vers la nouvelle caisse sn_messaging.
- Le travail pour supprimer la gestion des flux dans les nœuds, comme mentionné dans la mise à jour de la semaine dernière, a été achevé et fusionné
- Nous avons travaillé et résolu les problèmes mis en évidence par notre nouvel outil de test de stress de routage.
-
Un grand cri et merci à quelques membres de la communauté pour les PR cette semaine - @mav et @tfa ont tous deux contribué avec plusieurs PR dans différents dépôts pour nous aider et améliorer notre travail. Toujours inspirant à voir
- Nous sommes toujours en train de tester une dernière résolution de bogue qui, nous l’espérons, signifiera que nous pourrons publier la prochaine itération du testnet.
Safe Client, Nodes et qp2p
Plan de projet des transferts sécurisés sur le réseau
Plan de projet Safe Client
Plan de projet du nœud de réseau sécurisé
Au cours de la semaine dernière, nous avons passé un peu plus de temps à améliorer les exemples de qp2p afin qu’ils démontrent mieux les fonctionnalités de la bibliothèque séparément. Parallèlement à cela, nous avons étendu l’exemple de service d’écho pour prendre en charge la redirection de port manuelle. Lors de l’implémentation, nous avons identifié et implémenté une petite extension qui a vérifié le point de terminaison fourni par l’utilisateur en tant qu’entrée. Cela nous permet de renvoyer une erreur beaucoup plus tôt au lieu d’attendre que le réseau identifie et signale le nœud comme inaccessible.
Nous avons également continué à déplacer toutes les définitions de messages clients et la logique de sérialisation vers la nouvelle caisse sn_messaging. Nous avons amélioré le protocole et nous utilisons maintenant Msgpack pour sérialiser tous les messages envoyés par les clients aux nœuds. C’est une tâche en cours cependant, car certaines parties internes des messages client utilisent toujours la sérialisation bincode et nous devons donc les migrer pour utiliser également Msgpack.
Le travail s’est poursuivi avec les transitions d’acteurs distribués lors du changement d’ancien, c’est-à-dire la signature des fonds de la section vers les nouvelles constellations d’anciens. Un petit bogue gênant la transition (dû à l’échec de la validation sig) a mis un certain temps à se déraciner, mais vient d’être trouvé. Les prochaines étapes de la transition doivent maintenant être testées.
Enfin, nous avons progressé dans la mise à jour du client / nœud pour supprimer les défis des clients et pour réactiver l’intégration * appropriée * des clients, après le travail de suppression de la gestion de flux dans les nœuds, comme mentionné dans la mise à jour de la semaine dernière, a été achevée et fusionnée. Cela a à son tour soulevé des problèmes potentiels dans la réception ou l’analyse des messages des clients, donc nous creusons là-dedans.
API et CLI
Cette semaine, nous avons pu générer avec succès des builds musl
pour CLI et authd dans notre CI, et donc tout est configuré et prêt pour notre toute prochaine version. Cela signifie que les applications CLI et authd doivent être compatibles avec n’importe quelle plate-forme Linux prête à l’emploi à partir du package de publication, nous aurons besoin de la communauté pour nous aider à valider que c’est réellement le cas en l’essayant sur autant de plates-formes Linux différentes que possible. Nous publierons les nouvelles versions en temps voulu.
BRB - Diffusion fiable byzantine
Le travail s’est poursuivi cette semaine pour peaufiner davantage les caisses BRB. L’API DataType a été modifiée afin que les détails de l’erreur de validation puissent être renvoyés à l’appelant. Plus loin dans ce sens, la caisse rust-crdt a été améliorée de sorte que chaque type CRDT que nous utilisons dispose désormais d’une méthode validate ()
qui peut être appelée avant d’appliquer une opération. Des demandes d’extraction pour CI / CD (intégration continue et déploiement et livraison continus) ont été faites pour chaque caisse BRB. Nous avons encore quelques changements à terminer cette semaine, après quoi nous prévoyons de faire la première version de crates.io.
Routage
La semaine dernière, nous avons mentionné comment l’outil de test de résistance a découvert certains problèmes cachés dans le routage. Cette semaine, nous avons entrepris de les retrouver et de les corriger. Un problème était que les membres non-anciens d’une section ne sauraient pas qu’une scission s’est produite en raison d’un bogue dans la façon dont les messages Sync
ont été créés. Cela a été corrigé et fusionné. Il y a un autre PR actuellement en cours qui corrige quelques autres de ces problèmes. Les problèmes restants après cela sont probablement tous liés à la façon dont nous gérons les changements d’appartenance à la section. Nous espérons résoudre ces problèmes en intégrant le nouvel algorithme d’appartenance à la BRB qui a également été mentionné la semaine dernière. Ce travail commencera très bientôt, peut-êtredès la semaine prochaine, si tout va bien.
Semblable à notre récent mouvement pour avoir toutes les définitions de messages client et la logique de sérialisation dans une caisse séparée (sn_messaging), nous avons commencé à chercher à faire de même avec les messages sn_routing. Le but est de pouvoir séparer toute la logique de définition et de sérialisation des messages de la logique de routage principale. Cela devrait nous permettre d’avoir une définition claire de l’interface exposée par les services de routage, et donc comment toute implémentation (dans n’importe quel langage de programmation) peut être rendue compatible avec notre implémentation sn_routing existante. Nous en sommes aux toutes premières étapes de ce processus, mais nous voulions partager notre objectif ici.
Liens utiles
- Site Web du réseau sécurisé
- Safe Network Primer
- Principes de base du réseau
- Feuille de route
- Glossaire
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é. Alors ne soyez pas timide, rejoignez-nous et créons ensemble le réseau sécurisé!