Actualités du développement Safe 🇫🇷 10 mars 2022

Ceci est une traduction automatique. L’original en anglais est ici: Update 10 March 2022

À l’heure actuelle, rejoindre un réseau de test en tant que nœud, c’est comme commencer le pire travail que vous ayez jamais eu. Celui où vous avez été plongé dans le vif du sujet par un patron sadique, sans formation ni instructions appropriées ; où vous deviez faire face à des demandes constantes pour transmettre ce message ou accomplir cette tâche ; et où, à un moment donné, vous avez manqué de temps ou négligé de sourire - à ce moment-là, vous avez été rapidement renvoyé.

Bien que nous ne voulions pas que des nœuds simulés bousillent le réseau, les règles telles qu’elles sont actuellement mises en œuvre se résument à « un coup et vous êtes éliminé », c’est pourquoi les terrains de jeux récents ont été de courte durée : chaque fois que nous sabotons un nœud , les données qu’il contient doivent être déplacées, ce qui provoque des inondations de blocs et de messages, qui conduisent finalement à la saisie du réseau.

Ce n’est pas tout à fait inattendu car de nombreuses optimisations doivent encore être mises en place, comme nous l’expliquons ci-dessous, mais rien ne remplace les tests dans le monde réel pour montrer sur quoi nous devons nous concentrer. aires de jeux et comnets. On a parfois l’impression de revenir en arrière, mais n’ayez crainte ! Tout cela fait partie du plan.

Progrès général

@Jimcollinson, @heather_burns et @andrew.james ont travaillé sur la documentation requise par les autorités suisses pour créer la nouvelle fondation là-bas. La bonne nouvelle est que tout est parfaitement faisable et qu’il n’y a pas d’obstacles évidents, ce qui valide notre choix de ce pays. Notre documentation a été soumise pour la constitution de la fondation et nous allons bientôt commencer à travailler sur notre enregistrement auprès de l’autorité financière suisse.

@Anselme a travaillé sur les transferts de section et consensus - comment nous sélectionnons les adultes qui seront promus aux anciens lors d’une scission et comment nous résoudre la situation lorsqu’un adulte qui rejoint une section est plus âgé que les anciens. Nous devons nous assurer que les anciens s’entendent sur le même ensemble de candidats lors de la passation de pouvoir, un consensus est donc nécessaire. @Davidrusu a maintenant pratiquement terminé l’intégration de l’algorithme de consensus, nous sommes donc prêts à l’intégrer.

En plus de finaliser le modèle pull et les tests de vivacité (voir ci-dessous), @Yogesh a mis en place un tableau de bord local utilisant ELK et Filebeat afin que nous peut analyser les logs plus facilement. Jusqu’à présent, les résultats sont bons, et il s’efforce maintenant de le rendre plus robuste et de s’assurer qu’il capture toutes les mesures dont il a besoin.

Les nœuds sont là pour vous aider, alors arrêtez de les submerger

Alors pourquoi le réseau est-il moins stable en ce moment ? La réponse est que les mesures introduites pour tester les comportements dysfonctionnels sont actuellement tout ou rien : auparavant, elles étaient désactivées, donc « rien », maintenant elles sont « toutes ». Nous tuons essentiellement des nœuds pour des délits mineurs, ce qui signifie un roulement excessif et une relocalisation des données. Nous devons donc rappeler les sanctions et introduire d’autres contrôles.

À l’heure actuelle, les anciens ne suivent que la «vivacité» d’un nœud autour de sa gestion des données. Cependant, il ne s’agit que d’une métrique permettant de déterminer si les nœuds se comportent de manière dysfonctionnelle. Nous devons également gérer (et comparer) des éléments tels que : la connectivité, la qualité des messages et le nombre de messages.

Nous devons surveiller la connectivité en cas de redémarrage/mise à niveau des nœuds. S’ils peuvent redémarrer et être toujours réactifs, nous ne devons pas les rétrograder, mais nous devons d’abord vérifier que c’est le cas. Parce que le réseau n’a pas de temps, leur réactivité doit être relative aux activités des voisins. La messagerie peut être surveillée de la même manière.

Parce qu’il est pratique d’avoir toutes ces fonctionnalités pour vérifier les nœuds malveillants ou défectueux en un seul endroit, nous envisageons une nouvelle caisse de niveau supérieur pour aller dans le dépôt safe_network, remplaçant le suivi de la vivacité que nous avons maintenant. Cette nouvelle caisse aura des fonctionnalités étendues pour nous permettre de suivre et de gérer toutes sortes de dysfonctionnements de nœuds.

Réplication des données

La réplication des données est un autre facteur important pour un réseau stable et en bon état de marche.

Lorsqu’un nœud se déconnecte, nous devons transférer ses données vers d’autres nœuds. Dans le passé, les données étaient poussées d’un nœud à l’autre, contrôlées par les aînés.

Nous avons maintenant une messagerie adulte à adulte pour la réplication des données, par laquelle si un adulte se déconnecte ou qu’un nouvel adulte se joint, tous les autres adultes le savent. Connaissant les membres actuels, chaque adulte peut calculer quelles données il doit détenir et quelles données doivent être redistribuées/répliquées aux autres adultes pour s’assurer que le réseau conserve un nombre minimum de copies d’un morceau.

Cela fonctionne en théorie, mais les terrains de jeux et les comnets ont démontré quelques lacunes pratiques, notamment des messages de réplication n’atteignant pas leurs cibles et étant perdus, des nœuds malveillants laissant délibérément tomber des messages, et des rafales de données et de messages lorsque de nombreux adultes remarquent qu’un nœud se déconnecte à en même temps - ce qui conduit à nouveau à la suppression de messages.

La nouvelle approche, sur laquelle @yogesh travaille, vise à résoudre ces limitations en implémentant un modèle « pull ». Chaque fois qu’il y a un changementDans l’ensemble des adultes, les nœuds se notifieront les données qu’ils doivent conserver. Les nœuds récepteurs seront alors chargés d’extraire ces données de l’un des nœuds existants qui les détiennent.

Cela garantit que les adultes n’extraient que les données qu’ils sont censés détenir et qu’ils sont responsables de leur résolution. S’ils disposent déjà des données, le flux s’interrompt à la ronde des messages de notification. Les données sont envoyées uniquement lorsque la réplication est requise - au lieu de la messagerie actuelle de type « fire-and-forget » qui prend la capacité du réseau pour acquise.

Nous regrouperons également les données pour réduire le nombre de messages requis. Notre réseau de test de terrain de jeu a prouvé qu’un message par bloc n’était pas efficace et que les nœuds allaient :boom: lorsqu’il y avait beaucoup de données à répliquer.

Une fois que cela sera entièrement en place, nous lancerons un nouveau terrain de jeu pour le tester.


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