Ceci est une traduction automatique. L’original en anglais est ici: Update 9 February, 2023
À la suite de l’intéressant testnet de la semaine dernière, qui n’a pas fonctionné aussi longtemps que d’autres mais qui est néanmoins resté actif et a produit des résultats utiles, nous avons décidé de faire un petit explicatif sur la jonction des nœuds. C’est quelque chose que nous essayons de rendre plus fiable et plus facile à essayer pour les gens. Donc, si vous remarquez des événements étranges dans vos journaux, ce sera pourquoi.
Un grand merci à @josh pour son application Gooey, une interface graphique conviviale pour aider à surmonter FCL (peur de la ligne de commande). En utilisant Gooey, vous pouvez METTRE et OBTENIR des fichiers à votre guise, sans avoir l’impression d’entrer dans la matrice. Des initiatives comme celle-ci, l’application de surveillance Vdash de @happybeing et les scripts de @southside sont ce qui en fait une si grande communauté. :Clap clap clap:
Progrès général
D’abord une bonne nouvelle sur le plan juridique : Safe Network Foundation a été dûment enregistrée au registre du commerce de Genève. @JimCollinson et @andrew.james y travaillent depuis de nombreux mois et cela représente une étape majeure franchie. Nous avons également soumis une lettre de non-action à la FINMA. Cela énonce l’avis juridique selon lequel SNT est un jeton utilitaire pour l’achat de stockage et non une sécurité, ce qui signifie que nous pouvons craquer avec le lancement.
Nous sommes toujours en train d’approfondir l’idée d’ensemble stable : utiliser les anciens et les nœuds adultes les plus âgés comme stockage de données principal, tandis que les nœuds qui sont passant par le processus d’âge des nœuds se voient confier des tâches de stockage secondaires moins importantes à effectuer. @davidrusu mène des expériences à ce sujet, tandis que @anselme travaille sur d’éventuelles implications en matière de sécurité.
L’idée d’ensemble stable apporte quelques changements intéressants :
- Pas de DKG (car les nœuds les plus anciens sont instantanément les anciens). Cela supprime une charge réseau importante sur le changement des anciens.
- Aucun nœud dans l’ensemble stable n’est déplacé, il s’agit donc d’un ensemble d’ajout uniquement
- Les nœuds dans l’ensemble stable n’ont pas de marqueur d’âge, leur âge est leur emplacement relatif dans l’ensemble (basé sur la première vue)
- Les nouveaux anciens signent les anciens dans le SAP (Section Authority Provider), cela nous permet de récupérer des nœuds de consensus perdus (gestion des désabonnements de masse)
- Il est probable que nous puissions gérer les partitions assez facilement avec ces modifications, bien que nous n’ayons pas encore de mécanisme permettant aux réseaux partitionnés de se reconnecter.
@oetyng est profondément impliqué dans les communications entre les clients et les nœuds, en nettoyant les types et les modèles redondants et en essayant de redresser les choses.
@anselme continue de refactoriser les DBC. Hier, il a remplacé bls_bulletproofs par les bulletproofs en amont dans sn_dbc. Cela rend non seulement le code plus sûr car nous utilisons du code audité, mais améliore également considérablement les performances !
2096 ms → 234 ms : Benchmarking reissue split 1 à 100
160s → 40s : exécution de tous les tests
Sur le front des nœuds, @joshuef a remarqué que lorsqu’un nœud se rejoint, il reçoit un nom différent, ce qui nécessite une logique supplémentaire. Cela a été corrigé et les nœuds se rejoignent maintenant avec le même nom.
@Chriso a réussi à obtenir des instances EC2 qui participent à un testnet configuré pour les services de collecte de télémétrie et de préparation de données, nécessaires à la répartition de la charge et à d’autres tâches. Il a également un testnet opérationnel sur AWS qui soumet des traces à OpenSearch. Devrait être un PR entrant.
@Roland a écrit un explicatif sur la télémétrie, pourquoi elle est nécessaire et comment nous l’utilisons, que nous devrions pouvoir partager bientôt.
@qi_ma débogue les jointures de nœuds et la relocalisation, et @bochacho supprime les messages et qp2p.
Et @bzee a supprimé le code redondant du processus de jointure de nœud
Joindre un nœud
Ce qui nous amène parfaitement aux nœuds de la maison. Le dernier testnet était la première fois depuis longtemps que nous permettions aux nœuds de se joindre depuis la maison (ou la machine virtuelle cloud), ainsi que le premier test « officiel » avec des nœuds plus petits (après qu’un comnet y ait vu des succès). Dans l’ensemble, nous avons été ravis que de nombreuses personnes aient réussi à nous rejoindre, bien que les PUT se soient grippés assez rapidement. Nous avons identifié ce qui se passait ici, les relocalisations de nœuds étant plus rares que prévu, notre réseau initial n’était pas suffisamment « vieilli » pour fournir une phase de démarrage stable.
Idéalement, nous voulons que tout le monde puisse se joindre de n’importe où sur n’importe quel appareil, lorsque le réseau a besoin de plus de stockage. Il y a eu quelques problèmes avec les délais d’attente, lorsqu’un nœud demande à rejoindre puis perd la connexion avec l’aîné, que nous avons en grande partie corrigé maintenant (les nœuds recevront une réponse indiquant que le vote est en cours, par opposition à aucune réponse ; les nœuds aussi maintenant juste continuez à essayer avec le même nom au lieu de changer de nom, ce qui a déjà confondu le processus de jointure).
Certaines erreurs peuvent se produire lorsqu’un nœud rejoint juste après que l’adhésion (la composition de la section) a été partagée entre les anciens après une session DKG. Lorsque cela se produit, le nouveau nœud n’est pas compté et il y a une vue fractionnée. C’est quelque chose que @qi_ma corrige maintenant.
Les drapeaux safe node join
de --skip-auto-port-forwarding
et --public-addr
sont désormais obsolètes car nous avons supprimé le transfert de port UPnP/IGD, qui n’a jamais été fiable. Cela a été effacé pour simplifier qp2p pour le moment. Nous pourrions bien ramener cela sur la ligne, mais ce n’est pas une priorité pour le moment. Vous devriez juste être en mesure de vous joindre à safe node join --network-name
maintenant, bien que NAT sera sans aucun doute un problème pour certains nœuds domestiques.
En effet, pour que les nœuds d’un réseau P2P puissent parler, ils doivent pouvoir se trouver, mais avec NAT, leur adresse exacte est masquée par le routeur qui n’affiche que l’adresse IP publique. NAT a été présenté comme un hack pour contourner IPv4 à court d’adresses, mais malheureusement, il est resté. Différents routeurs et FAI ont différentes manières d’implémenter la redirection de port, ce que tout le monde ne sera pas sûr d’essayer de toute façon. IPv6 résout le problème, mais malheureusement, l’adoption est encore assez faible. C’est un problème pour tous les réseaux décentralisés, et nous continuons à chercher des solutions.
Nous prévoyons de supprimer progressivement la commande safe node
en faveur de l’utilisation directe du binaire sn_node
, comme le suggère @Chriso dans ce post. La commande node
est essentiellement une mince enveloppe autour du binaire sn_node
et n’offre pas beaucoup d’avantages par rapport à l’utilisation directe du binaire du nœud. De plus, cela entraîne des problèmes de maintenance en termes de synchronisation des arguments pris en charge entre les deux. Le nœud obtiendra très probablement son propre script d’installation. La commande safe node run-baby-fleming
sera conservée, mais deviendra probablement safe run-baby-fleming
.
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é!