Une nouvelle version de Duniter est disponible pour la GTest. Elle ajoute des bootnodes gtest et corrige plusieurs bugs survenus suite au forçage de finalité effectué par le comité technique sur la GTest il y a 10 jours :
Un nouveau nœud pouvait parfois bannir tous ses pairs et perdre le réseau en rejetant des justifications GRANDPA qu’il considérait invalides. Cela est dû au fait que la chaîne de preuve GRANDPA est cassée lorsque l’on force la finalité avec le root call grandpa.noteStalled. Pour la réparer, il faut configurer un hard fork GRANDPA, hardcodé dans le binaire.
La warp sync ne fonctionnait plus depuis le hard fork de finalité. Le Polkadot SDK ne supporte pas la warp sync sur les réseaux ayant subi un hard fork de finalité GRANDPA. Je pense que cela n’a jamais été corrigé, car Polkadot n’a jamais eu de hard fork (seuls Kusama et certains réseaux de test en ont eu), et les opérateurs de nœuds sur Kusama acceptent de mettre plusieurs jours à synchroniser (voire des semaines). Ce n’est pas acceptable pour nous si l’on veut supporter du matériel peu puissant sur le long terme. J’ai donc patché le Polkadot SDK pour supporter partiellement la warp sync sur les réseaux avec hard fork GRANDPA. Je n’ai patché qu’un des deux modes de la warp sync, mais c’est le mode par défaut dans Duniter v2.0.5, donc si vous utilisez --sync warp, cela fonctionnera.
Nouvelle image Docker : duniter/duniter-gtest-1000:1100-2.0.5
Parce que le numéro dans la partie image (pas le tag) est censé représenter la version du runtime Genesis. Le test gtest a été lancé avec le runtime 1000. Il y a eu une erreur de nommage de l’image initiale, qui aurait dû s’appeler gtest-1000. Je ne fais que corriger cette erreur.
J’ai essayé de démarrer un noeud Gtest from scratch. J’ai le même docker-compose.yml que pour la g1, avec adaptation des variables et nom d’image pour la Gtest.
Le noeud ne démarre pas et la log affiche :
Generating node key file '/var/lib/duniter/node.key'...
thread 'main' panicked at node/src/command.rs:244:26:
unknown runtime
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Error: Io(Os { code: 2, kind: NotFound, message: "No such file or directory" })
Node peer ID is ''.
Starting duniter with parameters: --name pini-gtest-mirror --node-key-file /var/lib/duniter/node.key --public-addr /dns/gtest.pini.fr/tcp/443/wss --rpc-cors all --no-prometheus --state-pruning archive --blocks-pruning archive --chain g1 -d /var/lib/duniter --unsafe-rpc-external
Il semblerait que ce soit la génération du fichier node.key qui échoue.
Je n’ai pas les droits pour faire ça. Les images sont publiées via la CI, et je ne vais pas développer une CI spécifique pour ça; c’est beaucoup trop chronophage. Il faudrait que quelqu’un qui a les droits puisse dé-publier ces images directement. @poka@Moul Est-ce que vous avez les droits pour dé-publier ces images ?