Bêta-test Duniter 1.6 WS2P

en fait c’est plutot la rédirection HTTPS dans la conf nginx qui est mauvaise.
Faut vraiment que je m’en occupe, tu as raison.

1 Like

Je penche pour un problème de RAM. Est-ce que le Raspi est une nouvelle installation ou pas ? Tu peux en tout cas surveiller ta consommation mémoire pendant la synchro pour vérifier.

Car la synchro initiale est gourmande en mémoire, et plus la blockchain avance pire est le phénomène. Ceci dit, ça sera corrigé un jour où l’autre.

Non ce n’est pas ça. La conso est modeste, que ce soit en RAM ou en processeur…
Nouvel essai, nouveau plantage (mais pas du raspi cette fois-ci). Je sèche…
(Pour info j’avais déjà réussi une install récemment mais j’ai souhaité réinstaller le tout pour un problème de clé publique non entièrement “relayée” par duniter et qui semble-t-il empêchait les connexions aux nœuds pour le calcul des blocs -> calcul dans le vide.)

En tout cas tu peux remonter ton fichier de logs ($HOME/.config/duniter/duniter_default/duniter.log) pour voir ce qui se passe précisément.

C’est au téléchargement ou pendant l’application que ça « bloque » ? Et qu’est-ce qui te fait penser qu’il y a blocage ?

1 Like

Bon, cette fois-ci le rasp n’a pas planté. Dans le log, ça montre qu’il farfouille à droite à gauche dans les nœuds pour chopper les briques suivantes mais la quasi totalité récolte des “ETIMEDOUT”.
En fait, c’est juste très long.^^

Edit : nœud actif après deux bonnes heures d’install ! Quelques plantages sur le navigateur, en local, mais l’essentiel tourne sans caler : ouf !^^

2 Likes

Quel est le format attendu des endpoints WS2P ?

J’ai certains noeuds comme ça :

WS2P fb17fcd4 g1.duniter.fr/ws2p 443

Et d’autres comme ça :

WS2P 9bb687b1 g1.imirhil.fr 53011 /

D’après moi, seule la seconde version peut-être correcte (on ne peut pas mettre une URI dans un champs qui peut matcher sur un host ou une IP)

2 Likes

@Inso c’est la deuxième qui est correcte :

WS2P uuid host port patch

la première c’est kima qui avait créer un endpoint d’exemple pour expliciter son besoin (c’est lui qui a demander cette fonctionnalité)

2 Likes

Oui, j’avais configurer mon noeud ainsi avant que @cgeek ne développe le format avec le path ^^

Je corrige de suite

Par contre savez-vous comment on configure le path dans le fichier de config ?

 "ws2p": {
  (...)
  "remoteport": 443,
  "remotehost": "g1.duniter.fr/ws2p"
 },

Est-ce avec un remotepath ?
EDIT: visiblement non ;( je trouve rien dans le code la dessus

Oui tout à fait.

Tu as dû rechercher dans la branche master, car l’option est bien présente sur la branche dev :

Merci @cgeek.

Tiens, j’ai fait la correction et redémarré mon noeud (mais le EP précédent apparait encore)

Oui pas étonnant, il ne répond pas à la syntaxe WS2P donc il est considéré comme un EP externe.

Tu ne peux le supprimer qu’avec l’option --remep <endpoint>.

@inso, c’est bon, mon EndPoint a mainteannt la bonne config WS2P.

3 Likes

Tien d’ailleurs j’en ai profité pour configurer un ws2p remote path sur mon nœud g1-monit et quel ne fût pas ma surprise de découvrir que ça ne fonctionne pas :stuck_out_tongue:

J’ai donc lancé un nœud de dev avec ma clé membre pour qu’il tente d’abord de se connecter a mon nœud g1-monit et ça a fonctionne j’ai pu déboguer l’établissement d’une connexion ws2p sur mon nœud g1-monit avec path.

En fait le path obtenu depuis la fiche de peer comporte un espace initial qu’il faut donc supprimer ! En outre, si le path déclaré ne commence pas par / ça ne fonctionne pas, je viens de corriger ces deux points et de rendre le test unitaire wstp/host.ts plus exigeant pour qu’il vérifie l’ajout automatique du /.
Il m’a fallu 4 commit parce que j’ai fait des erreurs que j’ai corrigé ensuite mais la part de code modifiée est minime, et maintenant ça fonctionne :

1 Like

Du coup aucun nœud ne peut se connecter en ws2p a g1-monit a part les nœuds de dev, faudra attendre la prochaine release :laughing:

Juste pour préciser, si j’ai bien compris : ce qui ne fonctionne pas c’est la connexion des autres nœuds vers celui qui a configuré un path.

Concernant le correctif, ça me paraît OK. Aussi une autre façon de le corriger, c’est de modifier la regex de capture :

En effet si l’on fait le test suivant dans la console d’un navigateur :

"WS2P 12345678 duniter.org 9000 path".match(/^WS2P ([a-f0-9]{8}) ([a-z_][a-z0-9-_.]*|[0-9.]+|[0-9a-f:]+) ([0-9]+)( (.+))?$/)

On a comme sortie :

(6) ["WS2P 12345678 duniter.org 9000 path", "12345678", "duniter.org", "9000", " path", "path", index: 0, input: "WS2P 12345678 duniter.org 9000 path"]

Or en effet, la position [4] donne le path avec l’espace. Mais la position [5] donne la capture sans l’espace.

@cgeek; d’ailleurs à ce propos, j’imagine que tu connais la syntaxe de regexp “(?: )” pour faire un group, et non un capturing group. Ca rallonge les regexp, mais ca simplifie la gestion des index.

Du coup, tu peux écrire :

"WS2P 12345678 duniter.org 9000 path".match(/^WS2P ([a-f0-9]{8}) ([a-z_][a-z0-9-_.]*|[0-9.]+|[0-9a-f:]+) ([0-9]+)(?: (.+))?$/)

et avoir le path dans la position [4] :wink:

3 Likes

Non, tu vois, celui-là je ne le connaissais pas :slight_smile:

Oui c’est ça, d’ailleurs le websocket fonctionnais très bien lorsque je tentais d’établir une connexion à wss://g1-monit.elois.org/ws2p via l’extension firefox Simple Websocket Client.

Oui c’est bien plus propre de faire ainsi, adjugé :slight_smile:

2 Likes

arf ! du coup, j’ai viré le endpoint BMA sur mon noeud, pour le load balancing g1-monit ça va pas être terrible :confused:
c’est grave docteur ? (Je peux le réactiver rapidement ;))