Pour vérifier tu peux par exemple lancer un netstat dans le container directement, tu devrais voir que le port n’est pas “bindé” (docker exec -it “container_name” netstat -tnlp) en version 1.8.7-pini2 alors que cela fonctionne correctement en version 1.8.7
Je suppose que la raison pour cela est probablement que les variables d’environnement que tu as listées ne sont pas bien prises en compte au démarrage de Duniter (pour l’image 1.8.7-pini2) ?
Cela expliquerais également que lorsque l’on ouvre le gui d’admin dans la partie “Réseau”; les settings pour ws2ppublic ne sont pas bien remplis.
Le “bind” du port n’est pas fait au niveau de l’image. C’est fait au moment de l’instanciation du conteneur. Quand tu lances le conteneur à la main c’est l’option -p de la commande docker run. Et via docker-compose c’est la directive ports:.
Peux-tu me montrer ton fichier docker-compose ?
Pour illustrer le soucis (de mon point de vue):
La partie utile de mon compose.yaml
services:
duniter:
image: pinidh/duniter:1.8.7-pini2
container_name: duniter-v1
platform: linux/arm64/v8
restart: unless-stopped
ports:
- 127.0.0.1:9220:9220
- 0.0.0.0:10901:10901
- 0.0.0.0:20901:20901
environment:
# ...
DUNITER_WS2P_PUBLIC: "true"
DUNITER_WS2P_HOST: "0.0.0.0"
DUNITER_WS2P_PORT: "20901"
# When exposing remotely through reverse proxy
DUNITER_WS2P_REMOTE_HOST: "g1.brussels.ovh"
DUNITER_WS2P_REMOTE_PORT: "443"
DUNITER_WS2P_REMOTE_PATH: "ws2p"
Que je démarre normalement avec “docker compose up -d”.
Et quand je vais voir dans le gui d’admin, dans Paramètres > Réseau :
On voit bien que la partie WS2P Public n’est pas prise en compte, il reste en mode UPnP
Trouvé ! Avec l’image 1.8.7-pini2 il faut configurer en plus DUNITER_UPNP: “false”. pour que le WS2P soit correctement activé.
$ wscat --connect wss://duniter-18-dev.pini.fr/ws2p/
Connected (press CTRL+C to quit)
< {"auth":"CONNECT","pub":"8Dy5S4KwQ5SWXucEoRw41aRzBxxzXQk3EAYy9CFxSWA2","challenge":"03f8c85e-8e60-492c-b626-49ac986e2b802f0bdf67-003f-45d0-b3d2-51ee7796bf7f","sig":"xgEP9hhkJQJ5XG1F7RfsPgPPTheNW+qOetn5nX0oA+B05JNqF63NbmYYpCCUXZEzOOvX4hKFtpAApDWWqo82CQ==","currency":"g1"}
Je viens de tester cela fonctionne correctement. Merci
Je viens de tester également, ça fonctionne ![]()
# J'ai bien le endpoint WS2P listé maintenant
curl -i https://g1.brussels.ovh/network/peering
>
...
"endpoints": [
"BMAS g1.brussels.ovh 443",
"WS2P 7c71beb2 g1.brussels.ovh 443 ws2p"
],
# Et il est bien fonctionnel
nix run nixpkgs#websocat -- wss://g1.brussels.ovh/ws2p
{"auth":"CONNECT","pub":"EnFfLNWnonXwxmzipLbbqa1fybSs7xdPoYhmbkMYzR3G","challenge":"a1d08393-7601-4b48-8c69-6cd27838635be110c6f0-3264-4930-ac49-7344a1cd63bb","sig":"xNFGiCyJBWh+yxVYc02sv5lSFBi7TRRp/1gDPAg5c3JNMZKSfM03P66mR8+ROyoYThCdhkXbM9YslQ/IkqqUAg==","currency":"g1"}
J’ai beaucoup aimé que vous nous informatiez que vous n’eussiez point connaissance de cette maudite fourche ![]()
![]()
![]()
Mon nœud est également rentré dans un fork non résolvable (même avec des redémarrages). J’ai tenté une synchronisation sur g1.duniter.org. Voici ce que j’ai dans les logs :
2026-01-12T13:24:26+01:00 - error: Wrong number of blocks from g1v1.coinduf.eu
2026-01-12T13:24:26+01:00 - error: Wrong number of blocks from g1v1.coinduf.eu
2026-01-12T13:24:26+01:00 - error: Wrong number of blocks from g1v1.coinduf.eu
2026-01-12T13:24:27+01:00 - error: Wrong number of blocks from g1v1.coinduf.eu
2026-01-12T13:24:27+01:00 - error: Wrong number of blocks from g1v1.coinduf.eu
2026-01-12T13:24:27+01:00 - error: Error: Wrong number of blocks from g1v1.coinduf.eu
at /home/moul/duniter/app/modules/crawler/lib/sync/p2p/p2p-candidate.js:86:23
at async /home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:118:31
at async P2PSyncDownloader.p2pDownload (/home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:104:16)
at async P2PSyncDownloader.downloadChunk (/home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:158:26)
at async /home/moul/duniter/app/modules/crawler/lib/sync/v2/DownloadStream.js:47:29
2026-01-12T13:24:28+01:00 - error: Error: not opened
at WebSocket.send (/home/moul/duniter/node_modules/ws/lib/WebSocket.js:218:38)
at /home/moul/duniter/app/modules/ws2p/lib/WS2PConnection.js:524:21
at new Promise (<anonymous>)
at WS2PConnection.request (/home/moul/duniter/app/modules/ws2p/lib/WS2PConnection.js:522:16)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async /home/moul/duniter/app/modules/crawler/lib/sync/p2p/p2p-candidate.js:70:30
at async /home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:118:31
at async P2PSyncDownloader.p2pDownload (/home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:104:16)
at async P2PSyncDownloader.downloadChunk (/home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:158:26)
at async /home/moul/duniter/app/modules/crawler/lib/sync/v2/DownloadStream.js:47:29
2026-01-12T13:24:28+01:00 - error: Wrong number of blocks from 82.65.206.220:20900
2026-01-12T13:24:28+01:00 - error: Error: not opened
at WebSocket.send (/home/moul/duniter/node_modules/ws/lib/WebSocket.js:218:38)
at /home/moul/duniter/app/modules/ws2p/lib/WS2PConnection.js:524:21
at new Promise (<anonymous>)
at WS2PConnection.request (/home/moul/duniter/app/modules/ws2p/lib/WS2PConnection.js:522:16)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async /home/moul/duniter/app/modules/crawler/lib/sync/p2p/p2p-candidate.js:70:30
at async /home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:118:31
at async P2PSyncDownloader.p2pDownload (/home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:104:16)
at async P2PSyncDownloader.downloadChunk (/home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:158:26)
at async /home/moul/duniter/app/modules/crawler/lib/sync/v2/DownloadStream.js:47:29
2026-01-12T13:24:28+01:00 - error: Wrong number of blocks from 82.65.206.220:20900
2026-01-12T13:24:28+01:00 - error: Error: not opened
at WebSocket.send (/home/moul/duniter/node_modules/ws/lib/WebSocket.js:218:38)
at /home/moul/duniter/app/modules/ws2p/lib/WS2PConnection.js:524:21
at new Promise (<anonymous>)
at WS2PConnection.request (/home/moul/duniter/app/modules/ws2p/lib/WS2PConnection.js:522:16)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async /home/moul/duniter/app/modules/crawler/lib/sync/p2p/p2p-candidate.js:70:30
at async /home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:118:31
at async P2PSyncDownloader.p2pDownload (/home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:104:16)
at async P2PSyncDownloader.downloadChunk (/home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:158:26)
at async /home/moul/duniter/app/modules/crawler/lib/sync/v2/DownloadStream.js:47:29
2026-01-12T13:24:28+01:00 - error: Wrong number of blocks from 82.65.206.220:20900
2026-01-12T13:24:28+01:00 - error: Error: not opened
at WebSocket.send (/home/moul/duniter/node_modules/ws/lib/WebSocket.js:218:38)
at /home/moul/duniter/app/modules/ws2p/lib/WS2PConnection.js:524:21
at new Promise (<anonymous>)
at WS2PConnection.request (/home/moul/duniter/app/modules/ws2p/lib/WS2PConnection.js:522:16)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async /home/moul/duniter/app/modules/crawler/lib/sync/p2p/p2p-candidate.js:70:30
at async /home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:118:31
at async P2PSyncDownloader.p2pDownload (/home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:104:16)
at async P2PSyncDownloader.downloadChunk (/home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:158:26)
at async /home/moul/duniter/app/modules/crawler/lib/sync/v2/DownloadStream.js:47:29
2026-01-12T13:24:28+01:00 - error: Wrong number of blocks from 82.65.206.220:20900
2026-01-12T13:24:28+01:00 - error: Error: not opened
at WebSocket.send (/home/moul/duniter/node_modules/ws/lib/WebSocket.js:218:38)
at /home/moul/duniter/app/modules/ws2p/lib/WS2PConnection.js:524:21
at new Promise (<anonymous>)
at WS2PConnection.request (/home/moul/duniter/app/modules/ws2p/lib/WS2PConnection.js:522:16)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async /home/moul/duniter/app/modules/crawler/lib/sync/p2p/p2p-candidate.js:70:30
at async /home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:118:31
at async P2PSyncDownloader.p2pDownload (/home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:104:16)
at async P2PSyncDownloader.downloadChunk (/home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:158:26)
at async /home/moul/duniter/app/modules/crawler/lib/sync/v2/DownloadStream.js:47:29
2026-01-12T13:24:28+01:00 - error: Wrong number of blocks from 82.65.206.220:20900
2026-01-12T13:24:28+01:00 - error: Error: Wrong number of blocks from 82.65.206.220:20900
at /home/moul/duniter/app/modules/crawler/lib/sync/p2p/p2p-candidate.js:86:23
at runMicrotasks (<anonymous>)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async /home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:118:31
at async P2PSyncDownloader.p2pDownload (/home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:104:16)
at async P2PSyncDownloader.downloadChunk (/home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:158:26)
at async /home/moul/duniter/app/modules/crawler/lib/sync/v2/DownloadStream.js:47:29
2026-01-12T13:39:48+01:00 - error: Wrong number of blocks from duniter-v1-g1.axiom-team.fr
2026-01-12T13:39:48+01:00 - error: Wrong number of blocks from duniter-v1-g1.axiom-team.fr
2026-01-12T13:39:48+01:00 - error: Wrong number of blocks from duniter-v1-g1.axiom-team.fr
2026-01-12T13:39:48+01:00 - error: Wrong number of blocks from duniter-v1-g1.axiom-team.fr
2026-01-12T13:39:48+01:00 - error: Wrong number of blocks from duniter-v1-g1.axiom-team.fr
2026-01-12T13:39:48+01:00 - error: Error: Wrong number of blocks from duniter-v1-g1.axiom-team.fr
at /home/moul/duniter/app/modules/crawler/lib/sync/p2p/p2p-candidate.js:86:23
at async /home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:118:31
at async P2PSyncDownloader.p2pDownload (/home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:104:16)
at async P2PSyncDownloader.downloadChunk (/home/moul/duniter/app/modules/crawler/lib/sync/P2PSyncDownloader.js:158:26)
at async /home/moul/duniter/app/modules/crawler/lib/sync/v2/DownloadStream.js:47:29
2026-01-12T13:39:54+01:00 - error: Wrong number of blocks from g1.e-is.pro
2026-01-12T13:39:54+01:00 - error: Wrong number of blocks from g1.e-is.pro
2026-01-12T13:39:54+01:00 - error: Wrong number of blocks from g1.e-is.pro
2026-01-12T13:39:54+01:00 - error: Wrong number of blocks from g1.e-is.pro
2026-01-12T13:39:54+01:00 - error: Wrong number of blocks from g1.e-is.pro
2026-01-12T13:39:54+01:00 - error: Error: Wrong number of blocks from g1.e-is.pro
at /home/moul/duniter/app/modules/crawler/lib/sync/p2p/p2p-candidate.js:86:23
2026-01-12T13:46:39+01:00 - info: Mem2File [wotb]...
2026-01-12T13:46:39+01:00 - error: Unhandled rejection: Error: ruleToBeKickedArePresent
2026-01-12T13:46:39+01:00 - error: Error: ruleToBeKickedArePresent
at Function.checkBlock (/home/moul/duniter/app/lib/blockchain/DuniterBlockchain.js:180:19)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async GlobalIndexStream.finalizeSync (/home/moul/duniter/app/modules/crawler/lib/sync/v2/GlobalIndexStream.js:373:33)
at async GlobalIndexStream.transform (/home/moul/duniter/app/modules/crawler/lib/sync/v2/GlobalIndexStream.js:253:17)
at async /home/moul/duniter/app/modules/crawler/lib/sync/v2/GlobalIndexStream.js:82:13
Il se trouve que les nœuds listés ci-dessus sont tous désynchronisés, n’étant pas sur le dernier bloc 898566 pour g1.duniter.org :
curl -s g1.e-is.pro/blockchain/current | grep number
"number": 879449,
curl -s https://g1v1.coinduf.eu/blockchain/current | grep number
"number": 731499,
# Pas réussis à faire une requête sur 82.65.206.220:20900
curl -s https://duniter-v1-g1.axiom-team.fr/blockchain/current | grep number
"number": 889077,
La synchronisation ne se finit pas dans mon cas du fait d’un échec pour trouver un consensus.
Donc, les mainteneurs de nœuds @smith-v1, si votre nœud n’est pas synchronisé (en particulier @kimamila, @HugoTrentesaux et @poka), éteignez-le le temps de vous occuper de le remettre sur pied. Ça gêne la synchronisation des autres !
Edit: en fait se sont les trois nœuds BMA non synchronisés affichés dans Kazou !
Accessoirement, je remarque que mon noeud en 1.9.0 avec l’image de @Pini n’est plus fonctionnel… Il plante au démarrage en boucle avec ce genre de logs:
...
duniter-v1-1.9.0 | 2026-01-12T19:06:46+00:00 - info: Server::run; addr=0.0.0.0:30901
duniter-v1-1.9.0 | 2026-01-12T19:06:46+00:00 - info: listening on http://0.0.0.0:30901
duniter-v1-1.9.0 | 2026-01-12T19:06:50+00:00 - error: NotFoundError: Key not found in database [0000897509]
duniter-v1-1.9.0 | at /duniter/node_modules/levelup/lib/levelup.js:192:15
duniter-v1-1.9.0 exited with code 1 (restarting)
duniter-v1-1.9.0 | Starting duniter with:
duniter-v1-1.9.0 | /usr/bin/duniter --max-old-space-size 18432 direct_webstart
duniter-v1-1.9.0 | 2026-01-12T19:07:17+00:00 - info: mode=Start
duniter-v1-1.9.0 | 2026-01-12T19:07:17+00:00 - info: open duniter databases...
duniter-v1-1.9.0 | 2026-01-12T19:07:19+00:00 - info: Databases successfully opened.
duniter-v1-1.9.0 | 2026-01-12T19:07:19+00:00 - info: Current block: #897507-000000155FA547F05937B265444E5F62D84961E78BC37043A0D25B51313B9DE2
duniter-v1-1.9.0 | 2026-01-12T19:07:19+00:00 - info: start dbs threadpool...
duniter-v1-1.9.0 | 2026-01-12T19:07:19+00:00 - info: Duniter sever started.
duniter-v1-1.9.0 | 2026-01-12T19:07:19+00:00 - info: start duniter modules...
duniter-v1-1.9.0 | 2026-01-12T19:07:20+00:00 - info: generated self endpoints: ["GVA S g1-1.9.0.de.brussels.ovh 443 gva"]
duniter-v1-1.9.0 | 2026-01-12T19:07:20+00:00 - info: GvaServer::start: conf=GvaConf { enabled: true, ip4: 0.0.0.0, ip6: None, path: "gva", playground: true, port: 30901, remote_host: Some("g1-1.9.0.de.brussels.ovh"), remote_port: Some(443), remote_path: Some("gva"), remote_tls: None, whitelist: [127.0.0.1, ::1] }
duniter-v1-1.9.0 | 2026-01-12T19:07:20+00:00 - info: GVA server listen on http://0.0.0.0:30901/gva
duniter-v1-1.9.0 | 2026-01-12T19:07:20+00:00 - info: Server::run; addr=0.0.0.0:30901
duniter-v1-1.9.0 | 2026-01-12T19:07:20+00:00 - info: listening on http://0.0.0.0:30901
duniter-v1-1.9.0 | 2026-01-12T19:07:20+00:00 - info: Block resolution: 2 potential blocks after current#897508...
duniter-v1-1.9.0 | 2026-01-12T19:07:20+00:00 - info: Block #897509 added to the blockchain in 229 ms
duniter-v1-1.9.0 | 2026-01-12T19:07:20+00:00 - info: Block resolution: 0 potential blocks after current#897509...
duniter-v1-1.9.0 | 2026-01-12T19:07:20+00:00 - info: Fork resolution: 56 potential block(s) found...
duniter-v1-1.9.0 | 2026-01-12T19:07:20+00:00 - info: Fork resolution: 4 potential suite(s) found...
duniter-v1-1.9.0 | 2026-01-12T19:07:20+00:00 - info: Fork resolution: HEAD = block#897509
duniter-v1-1.9.0 | 2026-01-12T19:07:20+00:00 - info: Fork resolution: suite 1/4 (-> #897565-000000) revert to fork point block#897508
duniter-v1-1.9.0 | 2026-01-12T19:07:25+00:00 - info: Fork resolution: suite 1/4 REFUSED block#897509: Try to apply non genesis block on empty blockchain
duniter-v1-1.9.0 | 2026-01-12T19:07:25+00:00 - error: Error: ruleNumber
duniter-v1-1.9.0 | at Function.checkBlock (/duniter/app/lib/blockchain/DuniterBlockchain.js:62:19)
duniter-v1-1.9.0 | at process._tickCallback (internal/process/next_tick.js:68:7)
duniter-v1-1.9.0 exited with code 1 (restarting)
Ça m’arrive occasionnellement, depuis longtemps (bien avant la dernière modification de cette image).. Et dans ce cas je n’ai pas d’autre solution que resynchroniser ou repartir d’un backup.
Que ce soit en synchro avec duniter.org ou cgeek ou en copie de backup de nicolas (brussels.ovh) ou copie du backup de cgeek, pas mieux … Mon noeud en V1.8.7 boucle sur ![]()
2026-01-12T21:33:13+01:00 info WS2P: connection \[8Dy5S4Kw \`WS2P duniter.pini.fr 443\`\] has been closed
2026-01-12T21:33:14+01:00 info WS2P: connection \[GGdW5Rxd \`WS2P ws2p.nodo5.red-g1.ovh 443\`\] has been closed
2026-01-12T21:33:34+01:00 info SIDE Block #898595-00000016 added to the blockchain in 0 ms
2026-01-12T21:33:34+01:00 info Block resolution: 2 potential blocks after current#897538...
2026-01-12T21:33:34+01:00 error
2026-01-12T21:33:34+01:00 error
2026-01-12T21:33:34+01:00 info Fork resolution: 42 potential block(s) found...
2026-01-12T21:33:34+01:00 info Fork resolution: block #897539-00000002 is known as incorrect. Skipping.
2026-01-12T21:33:45+01:00 info ⬇ CTSAvAQzrUDg9AaGtUGPZm9D1G5f867t41sMjVB5Dzmq IN
2026-01-12T21:33:45+01:00 warn
2026-01-12T21:33:45+01:00 info ⬇ CTSAvAQzrUDg9AaGtUGPZm9D1G5f867t41sMjVB5Dzmq IN
2026-01-12T21:33:45+01:00 warn
2026-01-12T21:33:49+01:00 info ⬇ CTSAvAQzrUDg9AaGtUGPZm9D1G5f867t41sMjVB5Dzmq IN
2026-01-12T21:33:49+01:00 warn
2026-01-12T21:36:37+01:00 info SIDE Block #898596-00000013 added to the blockchain in 1 ms
2026-01-12T21:36:37+01:00 info Block resolution: 2 potential blocks after current#897538...
2026-01-12T21:36:37+01:00 error
2026-01-12T21:36:37+01:00 error
2026-01-12T21:36:37+01:00 info Fork resolution: 42 potential block(s) found...
J’ai eu aussi de temps en temps ce genre de pbs.
C’est pour cela que je suis revenu en 1.8.7. Cette version semble plus stable.
Je suis conscient néanmoins que cela pénalise G1nko ![]()
Mon noeud 1.9.0 est de nouveau synchro après récupération du backup de Pini.
En espérant que ça tiendra un peu plus longtemps cette fois-ci ![]()
Le noeud axiom-team est a nouveau synchro.
@aya ? Merci pour le nœud d’Axiom. Il n’a plus la variable pour être utilisé avec https://wotwizard.axiom-team.fr/fr ?
Il y a quelque chose d’étrange, tous les noeuds 1.9.0 (sauf un) sont en retard de 2 blocks ou plus.
On le voit clairement sur Kazou (qui semble ne pas authoriser de décallage):
Et une vue de 2 noeuds 1.8.7 et 2 noeuds 1.9.0 problématiques avec les commandes de current block exécutées en parallèle:
On voit que les 4 noeuds 1.9.0 ont tout de même avancés de 2 blocks (898726 → 898728) mais ils restent bien en arrière des noeuds 1.8.7 !
Peut-être que ce comportement est normal et que je ne l’avais juste jamais remarqué avant ![]()
Edit: J’ai l’impression que ces 4 noeuds 1.9.0 sont maintenant désynchronisés et bloqués sur 898728 ??
Bon, j’ai fini par partir sur une copie de base de donnée.
La synchronisation, l’algorithme de consensus et des règles protocolaires non respectées doivent être débuggées pour fonctionner.
Probablement des forks, que donne le hash à n° identique ?
Je ne connais pas l’API pour faire ces requêtes ![]()
Je connais:
/→ Version/network/peering→ Infos de peering/blockchain/current→ Infos block courant
J’ai testé /blockchain/<NUMBER> mais ça n’existe pas ![]()
Quel est l’appel pour recevoir les détails d’un bloc donné ?


