Bêta-test Duniter 1.6 WS2P

Tu devrais voir un message “WS2P […] listen” quelque part si ton nœud est correctement configuré. Il te manque l’option --ws2p-public je pense.

Pour voir la config, la commande est duniter ws2p show-conf.

Cool ! Ca a l’air mieux mais :

2017-09-22T08:07:24+02:00 - info: Sibling endpoints:
2017-09-22T08:07:24+02:00 - info: WS2P 5GXtSTTXpvnhLq4TiQM1uaFuiSZaXyEZGYETX95j6WMU: new incoming connection from 37.187.192.109:37544!
2017-09-22T08:07:24+02:00 - info: ⬇ PEER 5GXtSTTX
2017-09-22T08:07:24+02:00 - info: ✘ PEER 5GXtSTTX
2017-09-22T08:07:24+02:00 - error:  httpCode=400, ucode=2023, message=Peer document already known
2017-09-22T08:07:24+02:00 - info: Next peering signal in 31 min
2017-09-22T08:07:24+02:00 - error: WS2P >>> >>> WS ERROR: REJECTED_PUBKEY_OR_INCORRECT_ASK_SIGNATURE_FROM_REMOTE
2017-09-22T08:07:34+02:00 - info: WS

C’est normal cette erreur ?

Soit la clé publique qui répond n’est pas celle attendue à l’adresse indiquée, soit le nœud qui répond n’est pas sur la même monnaie que le nœud qui tente la connexion. Ou les deux à la fois, ce qui est tout à fait possible si la connexion pointe vers un nœud d’une autre monnaie.

@SimonLefort

Je crois que ton nœud est connecté au mien, mais le tiens semble désynchronisé.

Si tu as accès à l’interface graphique, pourrais-tu aller dans “Settings > Backup > Create a data backup” et m’envoyer le fichier via https://framadrop.org ? Tu peux m’envoyer le lien par MP sur le forum.

Par avance merci !

edit : il semble que ce ne soit plus vrai depuis quelques minutes, je ne sais pas si tu as fait quelque chose ou non.

Dans ce cas ce serait bien de faire un backup de duniter.db et wotb.bin, et de les partager pour qu’on puisse tous regarder.

Et concernant les nombreux messages :

WS2P >> Streamer >> WS2P connection timeout

Je reproduis. Il semble que la connexion websocket soit perdue à un moment donné mais incorrectement traitée dans Duniter, ce qui fait que la connexion n’est jamais réétablie.

J’ai créé le ticket #1116 à cet effet.

Je viens de tester, et j’ai quelques questions.

  • J’ai l’impression que je reste bloqué sur le premier bloc après le “sync”. J’essaye d’arrêter et de relancer pour voir. (Effectivement, après redémarrage cela a l’air d’aller mieux.)
  • Même après duniter stop, j’ai 4 processus node qui tournent en prenant plein de cpu. Je peux les tuer ? Quand je relance duniter, j’ai 8 nodes qui tournent, et j’ai toujours 8 nodes après l’avoir quitté.
  • Mon nœud continue à calculer une PoW pour un bloc qui a déjà été trouvé (je vois bien les messages comme quoi on annule le calcul sur le cluster, mais je continue à voir des messages « matched 3 zeros … » pour le vieux bloc).
  • Est-ce que cette erreur est grave: « error: Peer with zero endpoints that is not already known » ?
  • Est-ce que mon nœud sera visible sur la page https://g1.duniter.fr/#/app/network ? Ce sera sous quel nom ?

Ça semble être un bug. On a déjà rencontré ce bug. Quelle est l’architecture processeur de ton Odroid. Si c’est sur ARM64, tu dois être le premier à tester sur cette architecture.

Je pense pas que ça soit grave. C’est à titre informatif.

Normalement oui dans le cas de BMA.
Pour WS2P, c’est sur /network/ws2p/{info,heads}

C’est un armv7l, donc 32 bits.

Qu’est-ce que je peux faire pour aider à débugger ?

@cgeek, je pensais avoir la journée pour tester un peu en détails mais ça ne s’est pas passé comme ça.

Je n’arrive plus à voir l’interface graphique, même en lançant duniter avec l’argument webstart. J’ai peut-être fait une bêtise dans la configuration du réseau…

Peux-tu me préciser où sont les fichiers à sauvegarder?

https://librelois.fr/public/duniter;db
https://librelois.fr/public/wotb.bin

Ok, c’est si c’est de l’armv7l, c’est une architecture armhf et non 32bits.
Oui, mais cgeek pourra mieux te guider pour débugger ça.

Je confirme que c’est une armhf. Je ne savais pas que c’était différent de 32 bits.

En effet, je viens de reproduire avec la 1.6.4. J’ai ouvert le ticket #1117.

C’est étrange comme comportement, es-tu bien sur la version 1.6 de Duniter ? La plateforme armhf y est peut-être aussi pour quelque chose vu qu’il n’existe pas de binaire NodeJS disponible pour celle-ci. J’ai besoin d’investiguer, mais je ne possède pas cette plateforme pour tester moi-même :confused:

Oui. Je vais changer le niveau de log pour ce message à debug.

Si j’ai bien compris tu ne vas pas activer BMA, donc non ton nœud n’y sera pas visible pour l’instant. Sauf si @kimamila décide d’ajouter les nœuds découverts sous /network/ws2p/heads.

Tu ne peux pas faire de bêtise concernant l’UI, elle est toujours disponible sur http://localhost:9220. Mais pour cela il te faut utiliser la commande duniter webstart ou duniter direct_webstart.

À noter qu’un bug a été découvert à ce sujet pour ceux qui installent Duniter manuellement, en le compilant. https://forum.duniter.org/t/livrables-arm-en-attente-raspberry-pi-3-hs/3249/31

Dans le répertoire ~/.config/duniter/duniter_default/, fichiers wotb.bin et duniter.db.

Merci, j’ai repéré le bug et après correction les blocs manquants sont bien téléchargés et la résolution s’effectue correctement. Tu peux suivre l’évolution du correctif dans le ticket #1118.

J’utilisais la 1.6.4 fournie sur le github. J’essaye de compiler une version manuellement, mais pour le moment les tests ne passent pas. Dès que cela marchera, je testerai avec.

Je croyais qu’activer BMA était déconseillé. Je peux le faire, en ouvrant des ports sur ma box.

Oui je le déconseille étant donné les retours faits par des utilisateurs ARM. Car BMA est vraiment très peu optimisé et gourmand en ressources. De plus il est voué à être abandonné sur le moyen/long terme.

Le fait d’avoir uniquement WS2P privé devrait suffire à faire fonctionner ton nœud et lui permettre le calcul de blocs.

Si ton nœud fonctionne bien avec WS2P (privé et/ou public), il devrait être visible ici sous 5 minutes :

Pour le moment il ne fonctionne pas bien. La version binaire ne sait pas abandonner le calcul d’une PoW (même quand elle apprend que le bloc a été calculé, elle continue à le chercher), et la version compilée à la main ne passe pas les tests (manque de RAM, cf Livrables ARM en attente : Raspberry PI 3 HS - #32 by Alan_Schmitt)

Pourrais-tu fournir la suite de logs de la PoW qui te fait dire cela ? Voici la mienne par exemple, une fois retirés les logs non pertinents :

18:41:33+02:00 - info: Matched 3 zeros 000FA7FFD71252EF8D7D961B8AAFF55E5911D81BD46A43DDAD3FB009E400E87B with Nonce = 100000054260 for block#54922 by 2ny7YA
18:41:37+02:00 - info: Matched 3 zeros 0008623EBD683CC3A97C6FC730ED96AD2A79AC78052288AF9430E8A5F30569D0 with Nonce = 300000055131 for block#54922 by 2ny7YA
18:41:42+02:00 - info: Matched 3 zeros 000586E45836BA83B0AEDCF9497286D61B082863AB630299BE43D3C1BA257DA4 with Nonce = 300000056466 for block#54922 by 2ny7YA
18:41:46+02:00 - info: Matched 3 zeros 000EAD1899712FBE8F4B34A7A369E7D9CFD3491F43CDD4A408EA8E119D354C10 with Nonce = 100000057627 for block#54922 by 2ny7YA
18:41:48+02:00 - info: Matched 3 zeros 0007967031DAE178CB8EF9941EB52C0FE08897B14BD6165D2C9417D0938E2C55 with Nonce = 200000058229 for block#54922 by 2ny7YA
18:41:50+02:00 - info: SIDE Block #54922-000008A2 added to the blockchain in 12 ms
18:41:50+02:00 - info: Block resolution: 1 potential blocks after current#54921...
18:41:50+02:00 - info: POST Block block#54922
18:41:50+02:00 - info: Block #54922 added to the blockchain in 96 ms
18:41:50+02:00 - info: Cancelling the work on PoW cluster
18:41:50+02:00 - info: GIVEN proof-of-work for block#54922 with 5 leading zeros followed by [0-9A-E]! stop PoW for 2ny7YA
18:41:50+02:00 - info: Cancelling the work on PoW cluster
18:41:50+02:00 - warn: The proof-of-work generation was canceled: Proof-of-work computation canceled because block received
18:41:50+02:00 - info: Block resolution: 0 potential blocks after current#54922...
18:41:54+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-9A-E]... (CPU usage set to 55%) for block#54923 2ny7YA
18:41:57+02:00 - info: Matched 3 zeros 0004F5C36EC923BA6DD1C3B736122472F135FE707F3B15FACC4E38687F54BD74 with Nonce = 10200000000770 for block#54923 by 2ny7YA
18:42:06+02:00 - info: Matched 3 zeros 0009DC0A695567A74C72A0492EF6822FF739833351AD65B5F3FEF689C47BF8CA with Nonce = 10300000003218 for block#54923 by 2ny7YA
18:42:08+02:00 - info: Matched 3 zeros 000A9D25B9FAC3DA2551BFE6F2EEB9A1E82F01F55B54E6BDC41159647B4FB2B5 with Nonce = 10300000003745 for block#54923 by 2ny7YA

On peut voir que le nœud calculait la PoW pour le bloc 54922, puis que le bloc a été reçu de façon externe et ajouté à la blockchain ce qui a déclenché l’annulation de la preuve courante (“GIVEN proof-of-work[…]”, puis “Cancelling[…]”). Enfin le nœud est parti sur la preuve du bloc 54923, le bloc suivant donc.

C’est le comportement normal.

Voici ce que me disaient mes logs

2017-09-22T14:24:55+02:00 - ESC[32minfoESC[39m: Block #54595 added to the blockchain in 746 ms
2017-09-22T14:24:55+02:00 - ESC[32minfoESC[39m: Cancelling the work on PoW cluster
2017-09-22T14:24:55+02:00 - ESC[33mwarnESC[39m: WS2P >> Streamer >> WS2P connection timeout
2017-09-22T14:24:55+02:00 - ESC[32minfoESC[39m: GIVEN proof-of-work for block#54595 with 5 leading zeros followed by [0-9A-B]! stop PoW for 48SLtT
2017-09-22T14:24:55+02:00 - ESC[32minfoESC[39m: Cancelling the work on PoW cluster
2017-09-22T14:24:55+02:00 - ESC[33mwarnESC[39m: The proof-of-work generation was canceled: Proof-of-work computation canceled because block received
2017-09-22T14:24:55+02:00 - ESC[32minfoESC[39m: Block resolution: 1 potential blocks after current#54595…
2017-09-22T14:25:03+02:00 - ESC[32minfoESC[39m: Matched 3 zeros 000E3F32D8314C21040BA7B539BBC2F8C630A7F216B9E66DC7690A678F169112 with Nonce = 200000000323 for block#54595 by 48SLtT

Plus bas je vois encore des histoires de « Matched 3 zeros » pour ce même bloc, alors que d’autres sont trouvés depuis.

J’essaye de relancer duniter mais il n’arrive pas à se connecter donc il cherche un vieux bloc

2017-09-25T14:16:39+02:00 - info: >> Server starting…
2017-09-25T14:16:39+02:00 - info: Node version: 1.6.4
2017-09-25T14:16:39+02:00 - info: Node pubkey: 48SLtTLL3CxAXUcmbKwp2PUg1hUvEh2s5EwEpRh8RaoR
2017-09-25T14:16:40+02:00 - info: Sibling endpoints:
2017-09-25T14:16:40+02:00 - info: :arrow_down: PEER 48SLtTLL
2017-09-25T14:16:40+02:00 - info: ✘ PEER 48SLtTLL
2017-09-25T14:16:40+02:00 - error: Peer with zero endpoints that is not already known
2017-09-25T14:16:40+02:00 - info: Next peering signal in 9 min
2017-09-25T14:16:50+02:00 - info: WS2P: Could not connect to peer -------- using WS2P g1.duniter.org 20903: WS2P connection timeout
2017-09-25T14:17:00+02:00 - info: WS2P: Could not connect to peer -------- using WS2P 88.174.120.187 20901: WS2P connection timeout
2017-09-25T14:17:10+02:00 - info: WS2P: Could not connect to peer -------- using WS2P 163.172.178.252 8999: WS2P connection timeout
2017-09-25T14:17:15+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-9A]… (CPU usage set to 60%) for block#54609 48SLtT

Merci, il me faudrait encore davantage de logs comprenant “Matched x zeros” de ce cas précis, le 22/09 à 14h25.

Quelques secondes après, j’ai

2017-09-22T14:25:09+02:00 - ESC[32minfoESC[39m: Block resolution: 0 potential blocks after current#54602…
2017-09-22T14:25:09+02:00 - ESC[32minfoESC[39m: >> Server ready!
2017-09-22T14:25:13+02:00 - ESC[32minfoESC[39m: :arrow_down: PEER 3UqHPdK9
2017-09-22T14:25:19+02:00 - ESC[32minfoESC[39m: :arrow_down: PEER TENGx7Wt
2017-09-22T14:25:26+02:00 - ESC[33mwarnESC[39m: httpCode=400, ucode=1015, message=Document already under treatment
2017-09-22T14:25:27+02:00 - ESC[32minfoESC[39m: Matched 3 zeros 000CBE23C00774DF911C3B69DB0DC81BD8DA44BCB6E0CDDC05AA0883D3262777 with Nonce = 200000001214 for block#54595 by 48SLtT
2017-09-22T14:25:31+02:00 - ESC[32minfoESC[39m: :arrow_down: PEER 4GX5gUFw
2017-09-22T14:25:32+02:00 - ESC[32minfoESC[39m: Matched 3 zeros 00090EC1420CBCE84B6D7EB7E3730AA816BC30BD0964D7498E9F015FF42C8005 with Nonce = 200000001410 for block#54595 by 48SLtT
2017-09-22T14:25:33+02:00 - ESC[32minfoESC[39m: Matched 3 zeros 00014CAE5D5090AC68638A3F80AADA7126B19FFD4A2D99A5A17BA2A9956AAD58 with Nonce = 300000001436 for block#54595 by 48SLtT
2017-09-22T14:25:38+02:00 - ESC[32minfoESC[39m: Generating proof-of-work with 5 leading zeros followed by [0-9A]… (CPU usage set to 60%) for block#54603 48SLtT

Et deux minutes après

2017-09-22T14:27:50+02:00 - ESC[32minfoESC[39m: Matched 3 zeros 0003E8FCB8BF9BFEA2C01F0AF614FA24EAB5CA70C3EAFB03ECCA86E4675E2675 with Nonce = 100000005967 for block#54595 by 48SLtT
2017-09-22T14:27:51+02:00 - ESC[32minfoESC[39m: :arrow_down: PEER t5RR5eVe
2017-09-22T14:27:51+02:00 - ESC[32minfoESC[39m: :heavy_check_mark: PEER t5RR5eVe
2017-09-22T14:27:51+02:00 - ESC[33mwarnESC[39m: WS2P >> Streamer >> WS2P connection timeout
2017-09-22T14:27:51+02:00 - ESC[33mwarnESC[39m: WS2P >> Streamer >> WS2P connection timeout
2017-09-22T14:28:24+02:00 - ESC[32minfoESC[39m: :arrow_down: PEER 2t6NP6Fv
2017-09-22T14:28:24+02:00 - ESC[32minfoESC[39m: :heavy_check_mark: PEER 2t6NP6Fv
2017-09-22T14:28:24+02:00 - ESC[33mwarnESC[39m: WS2P >> Streamer >> WS2P connection timeout
2017-09-22T14:28:24+02:00 - ESC[33mwarnESC[39m: WS2P >> Streamer >> WS2P connection timeout
2017-09-22T14:28:26+02:00 - ESC[32minfoESC[39m: :arrow_down: PEER CRBxCJrT
2017-09-22T14:28:26+02:00 - ESC[32minfoESC[39m: :heavy_check_mark: PEER CRBxCJrT
2017-09-22T14:28:26+02:00 - ESC[33mwarnESC[39m: WS2P >> Streamer >> WS2P connection timeout
2017-09-22T14:28:26+02:00 - ESC[33mwarnESC[39m: WS2P >> Streamer >> WS2P connection timeout
2017-09-22T14:28:32+02:00 - ESC[32minfoESC[39m: Matched 3 zeros 0008138EB83C80D3F2ED72667F8723B71BB36CE2829ABEC1005EDB177FE20D2F with Nonce = 300000007388 for block#54595 by 48SLtT
2017-09-22T14:28:44+02:00 - ESC[32minfoESC[39m: Matched 3 zeros 0005E1C6557FB9CDB9CC55507AABF89F2289EC0818ADE1ABEB0AEA3CAE4AF0AF with Nonce = 300000007872 for block#54595 by 48SLtT

J’ai redémarré le serveur (ce qui fait que cela remarche), et je revois la même chose

2017-09-22T14:37:35+02:00 - ESC[32minfoESC[39m: Block resolution: 1 potential blocks after current#54604…
2017-09-22T14:37:37+02:00 - ESC[32minfoESC[39m: Block #54605 added to the blockchain in 748 ms
2017-09-22T14:37:37+02:00 - ESC[32minfoESC[39m: Cancelling the work on PoW cluster
2017-09-22T14:37:37+02:00 - ESC[33mwarnESC[39m: WS2P >> Streamer >> WS2P connection timeout
2017-09-22T14:37:37+02:00 - ESC[33mwarnESC[39m: WS2P >> Streamer >> WS2P connection timeout
2017-09-22T14:37:37+02:00 - ESC[33mwarnESC[39m: WS2P >> Streamer >> WS2P connection timeout
2017-09-22T14:37:37+02:00 - ESC[32minfoESC[39m: GIVEN proof-of-work for block#54605 with 5 leading zeros followed by [0-9A]! stop PoW for 48SLtT
2017-09-22T14:37:37+02:00 - ESC[32minfoESC[39m: Cancelling the work on PoW cluster
2017-09-22T14:37:37+02:00 - ESC[33mwarnESC[39m: The proof-of-work generation was canceled: Proof-of-work computation canceled because block received
2017-09-22T14:37:37+02:00 - ESC[32minfoESC[39m: Block resolution: 0 potential blocks after current#54605…
2017-09-22T14:37:38+02:00 - ESC[33mwarnESC[39m: Block already known
2017-09-22T14:37:38+02:00 - ESC[32minfoESC[39m: Matched 3 zeros 000BBFA728C87EE2BB926CA2B216EA1BE1FFF8872CAC6BF4471BFA67D4555280 with Nonce = 200000003652 for block#54605 by 48SLtT
2017-09-22T14:37:54+02:00 - ESC[32minfoESC[39m: :arrow_down: PEER t5RR5eVe
2017-09-22T14:38:23+02:00 - ESC[33mwarnESC[39m: httpCode=400, ucode=1015, message=Document already under treatment
2017-09-22T14:38:35+02:00 - ESC[32minfoESC[39m: Matched 3 zeros 000646487975746D4423766905FF8216AA57F878D17B5B0882021FB34FA10478 with Nonce = 200000004609 for block#54605 by 48SLtT

et même quelques minutes après

2017-09-22T14:41:16+02:00 - ESC[32minfoESC[39m: Matched 3 zeros 00098C50EEA4BA47BD01FC9646B05C6E5B950BC71EA9CEB2F994FD3547DFE26B with Nonce = 400000007396 for block#54605 by 48SLtT

Je n’ai pas trouvé une seule occurrence de chercher un bloc plus tard.