Duniter et le choix du contenu des blocs

J’ai un contre-exemple : Bcabon et EveJOURDIN pouvait passer à la même date (08/08/2017 20:35:44), mais un seul pouvait passer à la fois puisqu’ils avaient deux certificateurs en commun (LudovicPecquot et HubertGicqueau). Dans l’ordre alphabétique du champ uid, Bcabon aurait du passer le 8 août, mais c’est EveJOURDIN qui est arrivée la première…

En effet ça n’a pas l’air d’être l’UID, mais un truc un peu plus compliqué :

https://github.com/duniter/duniter/blob/dev/app/modules/prover/lib/blockGenerator.ts#L174

let newcomers = _(joinData).keys()

Je parcours le tableau newcomers dans l’ordre donné par la méthode .keys(), mais je ne le maîtrise pas. C’est la librairie _ (underscore.js) qui le donne. Je ne suis même pas sûr que cet ordre soit déterministe, même si les tests semblent indiquer que si (et donc que le mélange soit nécessaire pour avoir une entrée aléatoire).

1 Like

Oui, effectivement. C’est dur à maitriser, ces imbrications de bibliothèques. Il faudrait à chaque fois relire tout le code. Vivement la version 1.4 !