Articles explicatifs & techniques sur Duniter

Concernant Duniter-Rust, je ne me reconnaît pas dans la description que tu y donne.

Comme je vous le présenterai aux rml11 et comme j’en ai déjà touché mot a cgeek, ce n’est pas lié spécifiquement a un nouveau protocole, j’implémente le protocole actuel.

C’est d’abord pour une protection par la diversité : si tout le réseau utilise le même logiciel avec la même version, les même bugs, les mêmes failles, etc. il suffit de trouver la faille et rip la Ğ1.
Mes motivations principales sont, outre le plaisir de le faire (car ça reste principalement bénévole quand même) d’apporter a moyen terme plus de fiabilité et de robustesse au réseau par le fait d’avoir deux implémentations :

  • Sécurité par la diversité (pas les mêmes failles)
  • Haute dispo (si bug critique sur une implémentation, l’autre peut prendre le relai temporairement et donc pas de coupure de la monnaie)
  • Oblige des spécifications du protocole plus détaillés (dc moins de bug)
  • 2 points de vues réduit drastiquement les oublis : il y a toujours des erreurs d’implémentation, des choses qu’on ne voit pas, l’erreur est humaine. En implémentant chaque évolution du protocole sur deux logiciels différents on réduit drastiquement le risque que les dev des 2 logiciels fassent les mêmes erreurs. Avec une seule implémentation on n’a pas de repère extérieur et l’on se retrouve parfois avec un code qui ne fait pas tout a fait ce qu’il est censé faire d’après les spec.

Enfin ce que tu présente @Inso ce n’est pas spécifique a Duniter-Rust, l’implémentation Duniter-Typescript incluera les mêmes évolutions de protocole, donc les changements a venir pour le protocole devrait faire l’objet d’une section a part dans ton article, ce n’est pas lié au projet de coder une 2ème implémentation en Rust :slight_smile:

5 Likes