Bêta-test Duniter 1.6 WS2P

Oui tu as raison, pour la compatibilité ascendante.

Je vais même gérer l’ancienne version pour assurer la rétro-compatibilité. Mais les nœuds en 1.6.7 propageront leur message dans le nouveau format.

1 Like

@cgeek d’ailleurs dans WS2P, est-ce que tu gère la version de duniter, dans la négociation d’ouverture de la WebSocket ?
EDIT: plutot la version de WS2P

Non, ceci dit on peut gérer une négociation différente en démarrant avec un message différent de CONNECT pour indiquer le protocole, car c’est le message initial.

1 Like

C’est grave, docteur ?

2017-09-30T08:29:14+02:00 - info: Block resolution: 0 potential blocks after current#56730…
2017-09-30T08:38:03+02:00 - info: SIDE Block #56733-000007E2 added to the blockchain in 99 ms
2017-09-30T08:38:03+02:00 - info: Block resolution: 0 potential blocks after current#56730…
2017-09-30T08:38:03+02:00 - info: Fork resolution: 1 potential block(s) found…
2017-09-30T08:38:04+02:00 - info: Fork resolution: 1 potential suite(s) found…
2017-09-30T08:38:04+02:00 - info: Fork resolution: HEAD = block#56730
2017-09-30T08:38:04+02:00 - info: Fork resolution: suite 1/1 (-> #56733-000007) revert to fork point block#56729
2017-09-30T08:38:06+02:00 - info: Block #56730 added to the blockchain in 465 ms
2017-09-30T08:38:06+02:00 - info: Fork resolution: suite 1/1 added block#56730-000000B1C37C6C75CC681D8784BE6C29D87BFF744DDBBBE0231EE850F700793B
2017-09-30T08:38:06+02:00 - info: Block #56731 added to the blockchain in 236 ms
2017-09-30T08:38:06+02:00 - info: Fork resolution: suite 1/1 added block#56731-0000013EB5C2380EE403BB8D66E91987BFAD77183F7591DEF6F2F4F4FC18E448
2017-09-30T08:38:07+02:00 - info: Block #56732 added to the blockchain in 230 ms
2017-09-30T08:38:07+02:00 - info: Fork resolution: suite 1/1 added block#56732-00000638578AB1F24F698B49CD4B2793DD21777F591608A173C36CE18B4904E6
2017-09-30T08:38:07+02:00 - info: Block #56733 added to the blockchain in 278 ms
2017-09-30T08:38:07+02:00 - info: Fork resolution: suite 1/1 added block#56733-000007E239A33304A6BCBC19F0E566A99FF98F92AD05EBE8673C0D210B1AB153
2017-09-30T08:38:07+02:00 - info: Fork resolution: suite 1/1 reached HEAD + 3. Now rolling back.
2017-09-30T08:38:09+02:00 - info: Block #56730 added to the blockchain in 112 ms
2017-09-30T08:38:09+02:00 - info: Block #56730 added to the blockchain in 119 ms
2017-09-30T08:38:09+02:00 - info: Block #56731 added to the blockchain in 146 ms
2017-09-30T08:38:10+02:00 - info: Block #56732 added to the blockchain in 156 ms
2017-09-30T08:38:10+02:00 - info: Block #56733 added to the blockchain in 249 ms
2017-09-30T08:38:10+02:00 - error: Unhandled rejection: TypeError: res.clone is not a function
2017-09-30T08:38:10+02:00 - error: TypeError: res.clone is not a function
at Server. (/opt/duniter/server.js:293:66)
at next (native)
at /opt/duniter/server.js:7:71
at __awaiter (/opt/duniter/server.js:3:12)
at Server.emitDocument (/opt/duniter/server.js:292:16)
at BlockchainService.pipe.es.mapSync (/opt/duniter/server.js:169:26)
at Stream.write (/opt/duniter/node_modules/event-stream/index.js:204:20)
at Stream.stream.write (/opt/duniter/node_modules/through/index.js:26:11)
at BlockchainService.ondata (_stream_readable.js:555:20)
at emitOne (events.js:96:13)
at BlockchainService.emit (events.js:188:7)
at readableAddChunk (_stream_readable.js:176:18)
at BlockchainService.Readable.push (_stream_readable.js:134:10)
at BlockchainService. (/opt/duniter/app/service/BlockchainService.js:218:22)
at next (native)
at fulfilled (/opt/duniter/app/service/BlockchainService.js:4:58)
at process._tickCallback (internal/process/next_tick.js:109:7)

(Et est-ce que c’est le bon endroit pour indiquer des erreurs ? Ou tu préfères un ticket ?)

Oui un ticket stp :slight_smile:

Non ce n’est pas grave je pense, si ton nœud reste bien synchronisé. Mais mieux vaut consigner l’erreur et y jeter un œil :slight_smile:

Nouvelle version 1.6.8

Fonctionnalités

  • Ceux qui possèdent plusieurs nœuds calculateurs de blocs peuvent désormais s’assurer qu’ils calculeront chacun leur propre preuve à l’aide d’un préfixe de preuve. Utilisation : duniter config --prefix <valeur>. Le champ valeur doit être un entier compris entre 1 et 899.
    Vous pouvez donc avoir jusqu’à 899 nœuds efficaces pour la preuve de travail.
    Fonction développée par @elois .

Correctifs

  • Sécurité :
    • Il était possible de spammer indéfiniment un nœud via le document fiche de pair
    • WS2P : en cas d’envoi répété d’un même document refusé de la part d’une connexion, bannir celle-ci pendant 2 minutes

Lien de téléchargement : Release v1.6.8 · duniter/duniter · GitHub

Cette version n’est pas une Release Candidate, d’autres corrections/nouveautés sont prévues (voir Jalon 1.6).

5 Likes

Je viens d’essayer d’installer la version 1.6.8 sur raspberry (raspbian, c’est une jessie), mais j’obtiens l’erreur suivante, quoi que je fasse, lorsque je lance duniter:

  return process.dlopen(module, path._makeLong(filename));
                 ^

Error: /usr/lib/arm-linux-gnueabihf/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /opt/duniter/node_modules/sqlite3/lib/binding/node-v48-linux-arm/node_sqlite3.node)
    at Error (native)
    at Object.Module._extensions..node (module.js:597:18)

Visiblement l’environnement dans lequel il a été buildé est différent car ça fonctionnait très bien avant. Des idées?

J’ai eu le même probleme avec l’installation du package car celui-ci n’est pas compatible avec Jessie. Les solutions qui fonctionnent sont l’installation à partir des sources ou de passer le Rapsberry Pi en Stretch.

Oui, ma carte SD ayant rendu l’âme j’ai dû réinstaller un Raspbian que se trouve être en dernière version, sur lequel je fais les build : Livrables ARM en attente : Raspberry PI 3 HS

Je vais downgrader pour la v1.6.9. En attendant, soit tu réinstalles ton Raspi en toute dernière Raspbian, soit tu attends la nouvelle version. Je te conseille cette dernière option, tu feras un parfait cobaye. :slight_smile:

Ok, super! :slight_smile: Faut dire que j’ai eu carrément du mal à suivre ces derniers temps…

Bonjour. Je tente de contribuer à G1-test en faisant tourner un nœud 1.6.8. Mon niveau en informatique est modeste et je bricole à peine en ligne de commande (ubuntu 16.04). Pour le moment mon aide se limite à ça, vu ma manie de pas déranger les gens qui bossent et qui en plus maîtrisent leur sujet.
Mais, à force de vous lire, je vois bien que vous êtes dérangés :wink: parce que dérangeables donc je me lance un peu en faisant un retour sur l’installation et l’utilisation de Duniter.
D’abord, à la lecture des différents posts sur Duniter dans le forum .org,il me semble que la plupart de mes difficultés pourraient être réglées par de la ligne de commande mais bon je dois butter sur des broutilles et dans les faits je n’y arrive pas.
Questions :
1° Avant d’installer une nouvelle version de Duniter, je ferme Duniter, je désinstalle le dossier « Duniter » dans le dossier « .config » et je désinstalle ensuite Duniter dans le « Gestionnaire de paquets Synaptic » . J’en fait trop, pas assez, ou c’est bon ?

2° J’installe ensuite avec Gdeby puis je cherche et ouvre Duniter avec « Synapse » car « chercher sur votre ordinateur » ne le trouve pas.
A l’ouverture de Duniter je me connecte à g1-test.duniter.org.10900 en laissant, de mémoire, le mode par défaut puis en choisissant (~) G1-test ……. (main mirror). Je coche ensuite la case « manual », ce qui m’inscrit « g1-test.duniter.org » je n’ai plus qu’à rajouter dans la fenêtre à côté « 10900 ». Je dois bien vous faire rire mais j’ai pas compris, ou trouvé mieux, pour que « ça marche ». Qu’est ce que je loupe ?
Dans « Settings/Crypto », je rentre ensuite ma clé publique 68jjs…. Puis je valide.
Là, Duniter tente de calculer des blocks mais n’en « trouve » pas. À la longue je me suis aperçu qu’il faut aller dans la fenêtre de Duniter, en haut à droite, sur les trois points et faire « stop serveur ». Je ferme ensuite Duniter puis l’ouvre mais peut-être que faire « stop serveur » puis « start serveur » suffit ?
Et là ça marche !
Si c’est faisable, cela est il possible « d’automatiser », à un moment, ce « stop serveur » puis « start serveur » pour les bleus comme moi ou à venir.
Remarque : dans « Settings/Network », la « fenêtre de choix » pour la limite de connexions m’a induit en erreur car le petit graph (au maxi) avec « maximum » au-dessus m’a semblé indiquer que j’autorisais le maximum de connexions alors que la valeur par defaut est « 1 ». Il me semble que, combiné au texte au dessus « you can limit the number of active private/public connections » cela prête encore plus à confusion. Propositions ; ou entrer, par défaut, un nombre supérieur de connections, ou bien, à la place de « maximum », inscrire « Nombre de connections » ou tout simplement afficher le “1”.

3° A force de bricoler sur G1-test pour comprendre,il me semble qu’il y a,+ou- deux jours, j’ai « créé » un forck car, dans Duniter, seule la valeur de mes blocks était bien supérieure au block courant (visuel Sakia et Césium). Ma « logique » a été alors de décocher l’option WS2p privée pour ne recevoir que de l’exterieur, cela m’a permis de revenir dans le rang rapidement. J’ai ensuite pu réactiver cette option sans problèmes. Coup de bol ou bien y a t’il quelque chose de cohérent dans ce procédé. Une alerte « Vous et tel ou tel noeud avez rejoint un forck » et un bouton « Rejoindre le block courant » serait-il utile, envisageable ?
Excusez les termes imprécis ou erronés et indiquez-moi si ma compréhension de l’utilisation de Duniter à déjà trop forcké et à quels endroits.
Merci

C’est un bug connu depuis peu : ticket #1145.

On ne va pas automatiser le clic sur le « Stop server », puis « Start server », mais plutôt corriger le bug sous-jacent qui fait que ta clé n’est pas correctement prise en compte. Aujourd’hui, un redémarrage de Duniter permet de contourner le problème.

C’est étrange que tu aies cette valeur “1”, la valeur par défaut étant plutôt de 10.

Ceci dit, il existait tout de même un bug en version 1.6.8 au cas où tu sauvegardais ta configuration en laissant les champs « Max » vides. Dans la version 1.6.9 (en cours de livraions), cela est corrigé et passe la valeur à 10 dans ce cas.

C’est possible, toutefois ce n’est pas vraiment prioritaire car sur la Ğ1 il y a beaucoup plus de nœuds et les forks ne se produisent pas si facilement.

C’est vrai que Ğ1-Test est dans un sale état …

En tout cas merci de ce retour précis :slight_smile:

Nouvelle version 1.6.9

Améliorations

  • Duniter est de nouveau installable sur la plupart des versions de Debian pour ARM

  • Élagage important des messages de logs redondants

  • WS2P : reconnexion automatique au pairs connus si le nombre de connexions actives passe sous la barre des 3 nœuds

  • WS2P devient compatible avec l’IPv6

    • Pour la partie WS2P Privé, la gestion est automatique
    • Pour la partie WS2P Public, option disponible par ligne de commande en indiquant votre IPv6 via l’option --ws2p-remote-host.
  • WS2P autorise la connexion par un chemin web additionnel, permettant l’exposition de WS2P Public par un serveur Nginx (ex. : mon-noeud-duniter.com/websocket/ws2p)

  • WS2P passe le message HEAD de la version 0 à la version 1, ce qui augmente les méta-informations réseau en diffusant également les champs suivants :

    • Identifiant de nœud WS2P
    • Logiciel utilisé (« duniter » dans le cas présent)
    • Version du logiciel (1.6.9 ici)
    • Préfixe de preuve de travail utilisé

Correctifs

  • Bugs majeurs :

    • Fuite mémoire au niveau de WS2P : en cas d’échec de connexion (refus d’une des 2 parties), la connexion WebSocket était maintenue par les 2 parties causant une accumulation de connexions.
  • Bugs mineurs :

    • Exception non contrôlée lorsqu’une transaction malformée était envoyée (merci @Max)

Lien de téléchargement : Release v1.6.9 · duniter/duniter · GitHub

Cette version est une Release Candidate. Toutefois restons prudents dans son utilisation, et veillons à repérer d’éventuels bugs restants.

3 Likes

Pour info, nous avons détecté un bug graphique (d’ailleurs visible sur l’impression d’écran ci-dessus) : les nœuds membres en v1.6.9 ne voient pas leur pseudo de membre affiché dans la WebUI, section « Network view ».

Ticket #1146 ajouté, criticité : mineure.

Nouvelle version 1.6.10

Correctifs

  • Bugs majeurs :

    • La protection anti-spam de WS2P était déclenchée de façon intempestive, empêchant le réseau de rester bien connecté et synchronisé (votre nœud pouvait ne même plus trouver de blocs, se raccrochant systématiquement trop tard s’il n’utilisait que WS2P)
  • Bugs mineurs :

    • Changer de trousseau cryptographique par la WebUI ne permettait pas de trouver de blocs, sauf à redémarrer le nœud.
    • Dans la WebUI > Network view, les nœuds membres n’avaient plus le pseudo affiché (voir impression écran ci-dessous, une fois corrigé : les pseudos sont bien affichés)

Lien de téléchargement : Release v1.6.10 · duniter/duniter · GitHub

Cette version est une Release Candidate.


N.B. : je n’ai pas eu trop de retours vis-à-vis de ARM, avez-vous pu installer cette version sans encombre ? J’ai downgradé mon Raspberry PI 3 utilisé pour les builds.

3 Likes

Sur G1-test, mise à jour (sur Ubuntu 16.04) vers la 1.6.10 sans problèmes :grinning: sans suppression du dossier “Duniter” dans “.config”, d’ailleurs je ne sais plus pourquoi je le supprimais :thinking:.
C’est à part, mais, malgré le fait que mon nœud calcule régulièrement des bocks je n’apparais jamais en “Nœuds membres” dans Césium mais toujours en " Nœuds hors ligne" malgré les F5.
Il me semble que c’est pareil pour “Alan Test”.
Je suppose que c’est provisoire?
Merci.

1 Like

J’aurais besoin de l’aide de @kimamila pour comprendre ce qu’il se passe sur la vue réseau de de Cesium, mais je ne crois pas que ce soit un gros soucis.

Oui, certainement.
Bonne nuit.

Pas de soucis pour l’installation sur mon odroid. J’avais réussi à rattraper mon retard sur la chaîne ğ1-test avec la 1.6.9 en le relançant plusieurs fois, et il est resté dans le réseau toute la nuit.

Je confirme que je ne suis pas visible dans la vue réseau. Ce qui est surprenant, c’est que je suis visible sur ğ1 quand je calcule dessus, alors que j’utilise les mêmes paramètres.

Actuellement est-tu en 1.6.10, et si oui, sur quelle monnaie ?

edit: en fait tu es sur Ğ1-Test, je le vois ici :

Et il est vrai que dans Cesium, la vision est plus limitée :

On n’y voit pas :

  • AlanTest
  • Mententin
  • jytou

Qui sont pourtant bien déclarés dans les méta-informations :

Mais d’ailleurs c’est curieux car si je regarde sur https://g1-test.duniter.fr/#/app/network, je vois Mententin ! Mais pas AlanTest ni jytou.

Par ailleurs @jellium, tu n’es plus membre sur Ğ1-Test, il te faut renouveler ton adhésion pour l’être à nouveau ! :slight_smile:

Pour cette différence avec la vue réseau Cesium, est-ce que ça ne viendrait pas tout simplement du fait que cette version 0.17.6 ne gère pas encore les méta-informations v1, @kimamila ? La position de la clé publique a changé, elle se trouve désormais en position 3 contre 2 en v0.

1 Like