Pour les plus pressés :
Télécharger Duniter 1.7.16
Bon, il se trouve que j’ai trouvé la source d’un bug dans Duniter.
C’est la raison pour laquelle la Ğ1 a un retard de pas moins de trois heures.
Ce genre de journaux m’ont emmené à la source :
2019-04-07T23:14:15+02:00 - error: Error: ruleCertificationFromMember
at Function.checkBlock (/home/moul/duniter/app/lib/blockchain/DuniterBlockchain.js:123:19)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
Il se trouve qu’il y a une certification de lecoteau
vers SebasC
qui traine dans les piscines de certains nœuds. Les nœuds qui n’ont pas cette certification en piscine trouvent des blocs valides.
Mais les autres nœuds, qui ont cette certification, n’écrivent pas de blocs valides.
Car…, lecoteau
n’est plus membre depuis le 4 avril 2019.
Il a émit son certificat le 22 mars. Il ne s’agit pas d’un bug client. Même si des clients pouvaient envoyer des certificats même pour une identité non membre, c’est aux nœuds de vérifier ça.
Or, Duniter, ajoute quand même cette certification dans le bloc. Puis, le bloc se voit refusé par lui-même et les autres nœuds, car il ne respecte pas la règle suivante : une certification est inscriptible uniquement pour une identité membre
Duniter vérifie bien que l’identité émettrice est bien membre avant d’ajouter cette certification au bloc à générer, par contre cette vérification est buggé et la condition passe. lecoteau
est considéré membre
Pour le correctif, j’ai copié la méthode juste en dessous qui semble bien faire les choses. Je suis étonné que cette méthode ait bien fonctionné jusqu’à maintenant et que ça n’est pas explosé plus tôt. La gestion d’erreur devait surement bien fonctionner.
Désolé pour le blâme, mais voici le commit incriminé qui introduit le bug que je corrige.
Voilà, je vous livre cette analyse et ce correctif et cette v1.7.16 après y avoir passé l’après-midi et la soirée au lieu de les passer sur Silkaj.
Par ici les junes (désolé, pas trouvé d’émoticone sans UNL ) pour l’analyse et la proposition de correctif. Un petit don ne serait pas de refus. C’est quand même peu ces 20 DU par mois.
Hop, bloc numéro 210 172 généré et accepté par le réseau avec un nœud possédant cette certification et ce correctif.