Mon intuition s’est vue confirmée par l’analyse suivante :
N.B.: Opérations à réaliser depuis l’environnement de développement, c’est-à-dire après
git clone https://git.duniter.org/nodes/typescript/duniter.git -b dev yarn
-
Lancer une synchro jusqu’au bloc précédent l’anomalie :
bin/duniter sync g1.cgeek.fr 284604
-
Puis mettre un point d’arrêt sur la ligne suivante #888 :
Ce code est la partie que je soupçonnais de mal compter le nombre de certifications lors de l’entrée / le renouvellement de l’adhésion du membre. Ce code reflète le protocole (regarder la règle BR_G27). -
Et enfin exécuter la commande qui “pull” (tire vers le nœud local) le bloc suivant #285605 :
bin/duniter pull g1.cgeek.fr 285605
-
Que voit-on ? Le protocole compte 2 certifications existantes :
Et 3 certifications entrantes :
Et bien entendu si j’évalue l’expression :
Bingo ! GerardSiegle rentre parce que le protocole compte 2 fois la même certification (celle entrante existe déjà dans la blockchain). On obtient2 + 3 >= 5 => true
.
Bref, tout cela est parfaitement conforme au protocole. De ce point de vue il n’y a pas de bug.
Oui mais, relativement à la licence, il y a bien un soucis. Manifestement GerardSiegle est rentré avec 4 certifications.
Du coup, des avis pour patcher le protocole ?