Actualités du développement Safe 🇫🇷 07 octobre 2021

Ceci est une traduction automatique. L’original en anglais est ici: Update 07 October, 2021

Nous avons introduit l’idée du Client écrivant le Spentbook il y a peu de temps, et avons baissé la tête depuis lors pour travailler la meilleure façon de mettre cela en œuvre. Cette semaine, nous expliquerons notre réflexion jusqu’à présent.

Progrès général

Quelques bogues réussis cette semaine. @Chriso a fait fonctionner correctement les tests CLI / API, ce qui signifie que la combinaison sn_cli / sn_api / safe_network est maintenant plus ou moins stable. En fait, la CLI et l’API sont maintenant prêtes à être fusionnées dans le référentiel principal, ce qui vous évitera de devoir combiner des versions compatibles. :tada:

Sur cette note, c’est fantastique de voir des gens se retrouver coincés avec le community testnet. Félicitations à @josh pour l’avoir fait décoller. Il a volé pendant un certain temps, ce qui est bon à voir, et surtout les fichiers journaux qu’il a générés sont d’une grande aide pour notre chasse aux bogues, alors merci d’avoir partagé les mises à jour jusqu’à présent !

@bochaco a travaillé sur des outils de débogage qui lisent les journaux des nœuds pour vérifier que chaque message reçu est traité jusqu’à la fin. À la réception d’une commande, un nœud doit (a) faire comme indiqué ou (b) renvoyer une erreur, mais parfois ils restent assis et ne font rien qui © puisse provoquer des bogues étranges ou même (d) verrouiller efficacement le nœud. À l’aide de cet outil, ils ont retrouvé et corrigé certains coupables possibles et jusqu’à présent, la situation semble s’être beaucoup améliorée. La même analyse peut également être utilisée pour le reste de la recherche de bogues de l’équipe, y compris @yogesh et @qi_ma qui enquêtent sur des occurrences similaires de blocage (boucles sans fin) se produisant avec des commandes internes. Nous prévoyons d’intégrer cet outil de vérification dans le processus d’IC.

Le client écrit un cahier des charges

Avant de dépenser un DBC, le client doit créer une entrée Spentbook. Il s’agit d’un élément de données immuable stocké sur les nœuds adultes du réseau qui contient les détails de la transaction souhaitée et garantit qu’une fois la transaction (réémission DBC) effectuée, le même DBC ne peut plus être dépensé.

Dans notre pensée actuelle, le flux se présente comme suit :

  • Le client crée une entrée Spentbook et la signe avec sa clé publique
  • Le client envoie l’entrée Spentbook signée aux 7 Aînés dans la section appropriée
  • Les Aînés écrivent cette entrée Spentbook aux 3 adultes les plus proches de son adresse
  • Les Aînés de la section 7 signent l’entrée Spentbook avec leur partage de clé BLS et le renvoient au Client
  • À condition que le client reçoive au moins 5 de ces messages (une majorité qualifiée), il combine les partages de clé BLS pour créer Spentbook signé par une clé de section valide. À ce stade, il est appelé un Spentproof
  • Le Client peut désormais demander aux Aînés (qui exécutent également le logiciel Mint) de rééditer son DBC. Il renvoie le DBC avec le Spentproof aux Elders qui signent maintenant la réédition.

Ce processus présente de nombreuses caractéristiques intéressantes : le réseau n’est pas impliqué dans le processus complexe de conservation de l’état (informations actuelles sur les soldes des comptes, etc.) ; le client fait le gros du travail ; le nombre de messages aller-retour est acceptable ; et il devrait être raisonnablement simple à mettre en œuvre sans aucune réorganisation ou refactorisation majeure.

Nous travaillons toujours sur des questions d’auditabilité (preuve de paiement, etc.) et d’optimisations, mais c’est la structure de base pour éviter les doubles dépenses.


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