Ceci est une traduction automatique. L’original en anglais est ici: Update 16 February, 2023
Il est temps de passer en revue rapidement où nous en sommes avec les différentes pièces mobiles qui composent la machine Safe. Comme d’habitude, c’est un mélange d’accélération rapide dans certains domaines, tandis que d’autres attendent des progrès ailleurs avant de pouvoir se mettre en mouvement.
Dans l’ensemble, nous sommes enthousiasmés par les possibilités de simplification offertes par l’idée d’ensemble stable, très heureux de la création de la Fondation et satisfaits des progrès vers le consensus. C’est également formidable d’avoir des réseaux de test communautaires de nouveau opérationnels et d’avoir des gens qui se lancent dans l’action avec leurs propres interfaces graphiques .
Progression générale :
Nous cherchons toujours des moyens d’amener le client à faire plus de travail et @oetyng étudie comment il peut garder les anciens en phase avec ce qui se passe dans la section (avec AE, potins, etc.).
@anselme a refactorisé les DBC et intègre ses modifications dans le code principal, et @Chriso termine la mise en œuvre de la pile de surveillance.
@roland a refactorisé le processus de relocalisation pour que le nœud déplacé pilote le processus.
Mostafa et @davidrusu sont coincés dans l’ensemble stable, travaillant sur un protocole de transfert qui ne nécessite pas de DKG. Mostafa étudie également le processus de compilation binaire pour essayer de l’accélérer.
Également sur l’ensemble stable, @joshuef est convaincu que nous avons un chemin vers le stockage hiérarchisé avec quelques modifications supplémentaires.
Qp2p est toujours en cours de chirurgie avec @bochaco testant les anomalies autour des flux de lecture et d’écriture, tandis que @bzee est passé à l’analyse des journaux en relation avec les retards sur le réseau lorsque les nœuds sont stressés.
Enfin, @JimCollinson a travaillé sur divers éléments juridiques pour le conseil d’administration et a également envisagé une stratégie de lancement.
Rapport d’étape
Ensemble stable
Traiter les aînés et les adultes les plus âgés comme plus dignes de confiance que les nœuds plus jeunes, ne pas les obliger à déménager pour le vieillissement des nœuds et introduire un stockage hiérarchisé . Pourrait bien supprimer le besoin de DKG et de relocalisation, qui sont tous deux difficiles.
Avancement : Phase de conception, hypothèses de test, encore expérimentales.
À faire : Terminez les tests, en cas de succès, travaillez sur la mise en œuvre.
Consensus
De nombreux processus peuvent être gérés par AE et la cohérence éventuelle (CRDT), mais dans certains cas, une commande locale est probablement nécessaire car les fourches pourraient rendre possible la double dépense pendant que nous attendons qu’elles se résolvent. https://github.com/maidsafe/sn_consensus
Progrès : L’algorithme MVBA (Multi Values Byzantine Agreement) a été développé et testé.
À faire : Appliquer aux algorithmes d’adhésion. Essais en environnement réel.
Quicp2p
Qp2p est une bibliothèque de mise en réseau basée sur QUIC qui permet aux pairs sur un réseau P2P de communiquer en toute sécurité. https://github.com/maidsafe/qp2p
Progress : qp2p est en cours de refactorisation dans le but d’apporter la plupart de ses fonctionnalités dans sn_node où il sera plus facile de travailler avec. Quic est une boîte noire.
À faire : Ce travail est en cours.
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. https://github.com/maidsafe/safe_network/tree/main/sn_comms
Progrès : Nous ne voyons presque plus de pics de mémoire. Les messages sont un élément central du fonctionnement du réseau, nous affinons donc constamment les choses. Nous travaillons sur une meilleure contre-pression en exploitant de manière plus fiable le contrôle de la congestion de Quinn.
À faire : Écraser les bogues lorsque nous les voyons, poursuite de la simplification.
Suivi et observabilité
Nous sommes passés de la configuration ELK que nous utilisions auparavant à OpenSearch (un fork open source plus moderne d’ElasticSearch), OpenTelemetry et un Data Prepper, car nous pouvons héberger ces services sur ECS plutôt que d’utiliser des instances EC2. https://github.com/maidsafe/terraform-testnet-infra
Progrès : C’est à peu près là maintenant, bien que nous recherchions toujours la meilleure configuration.
À faire : Terminez, puis ouvrez-le à la communauté, si possible.
Le traitement des données
Gestion des données, redistribution des morceaux lorsqu’un adulte se déconnecte et gestion gracieuse des fractionnements.
Progrès : Encore une fois, il s’agit d’une partie essentielle de la fonctionnalité et le travail est en cours, voir les ensembles stables ci-dessus.
À faire : Établir des données hiérarchisées. Les bases ont été posées, nous devrons tester les choses en plus de couvrir la relocalisation et les ajustements.
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. Handover est l’algorithme qui contrôle ce processus.
Progrès : Complété comme prévu, bien qu’il soit en train d’être affiné avec des commérages, un consensus (voir ci-dessous).
À faire : Introduire des commérages pour accélérer la communication entre edirigeants et examinez le consensus pour vous assurer que les processus se terminent.
Adhésion
C’est ce qui permet aux aînés de garder le contrôle sur les adultes de leur section.
Progrès : Membership est intégré à sn_node mais reste le domaine le plus difficile à résoudre pour s’assurer que chaque l’aîné converge sur le même point de vue. C’est un problème de coordination.
À faire : Supprimez la double vue de l’appartenance que nous avons entre SectionPeers
et Membership
. Le travail a commencé ici pour réduire cela à SectionPeers
et progresse bien.
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 : Rechercher d’autres opportunités où les commérages peuvent nous aider.
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é refactorisé mais souffre encore parfois de délais d’attente.
À faire : Vous cherchez à réduire le besoin de DKG comme dans la prise de décision.
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.
Progrès : La conception de base est en place.
Todo : Conception détaillée pour couvrir la sécurité, l’UX, les incitations économiques. En attendant d’autres évolutions.
Fondation
La Safe Network Foundation est une organisation à but non lucratif en Suisse pour faciliter, soutenir, financer et promouvoir la recherche et le développement, ainsi que pour permettre la livraison, la maintenance et l’adoption continues du Réseau et ses technologies.
Progrès : La Safe Network Foundation a été créée !
À faire : Mettez-le au travail !
Distribution sécurisée des jetons réseau
Après la distribution initiale de jetons au début du réseau (10,6 % aux détenteurs de MaidSafeCoin, 5 % aux actionnaires, 14,4 % au pool de redevances du réseau), les 70 % restants de l’offre maximale totale seront créés et distribués en toute sécurité en conséquence. de personnes téléchargeant des données sur le long terme. https://safenetforum.org/t/updated-rfc-0061-safe-network-token-distribution/37883
Progrès : Proposition initiale rédigée et soumise à la FINMA pour approbation. La mécanique des opérateurs de nœuds qui seront payés lors d’une transaction particulière est toujours en cours d’élaboration.
À faire : Concevoir et tester les paiements de nœuds.
DBC
Les certificats numériques au porteur sont le véhicule de transaction des jetons sur le Safe Network.
Progrès : Les DBC ont été refactorisés en supprimant un élément superflu censé obscurcir les transactions mais avec une capacité douteuse à ajouter à la sécurité et à améliorer les performances. Ce travail touche à sa fin.
À faire : Améliorer les API et l’UX autour de cela. Intégrez les API DBC aux flux de paiement et testez-les.
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. Les anciens stockent désormais des données afin de pouvoir estimer les niveaux de stockage sans interroger les adultes, et nous avons envisagé d’avoir plus de nœuds plus petits dans une section, qui a été testée avec succès dans des réseaux de test.
Progrès : Terminé
À faire : Continuez à surveiller.
** 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 refactorisée en tant que Merkle DAG. Il s’appelle désormais SectionTree.
Progrès : Terminé.
*Ne rien faire.
Détection des pannes (anciennement « 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 : Améliorez les tests avec les réseaux en direct et assurez-vous que tout fonctionne comme prévu. Ajoutez plus de routes de détection de pannes.
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 : Pas de mouvement à ce sujet.
À faire : Modifications de la commande NRS à mettre en œuvre.
Client / UX
sn_client est l’ensemble des API et de l’interface de ligne de commande (CLI) qui permet aux appareils de se connecter et d’interagir avec le réseau. https://github.com/maidsafe/safe_network/tree/main/sn_client
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
- 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é. Ne soyez donc pas timide, rejoignez-nous et créons ensemble le réseau sécurisé!