Arriver à bon port avec les IP

J’ai du mal (euphémisme) à comprendre l’identification des nœuds par IP et les ports associés.
Pour ma part, j’ai deux machines qui tournent avec Duniter et cela donne :

  • 1 connexion BMA qui correspond bien à son port associé mais dont l’adresse IP publique ne correspond pas à celle de ma box (à moins qu’il ne s’agisse d’une IP alternative mais je ne l’ai pas retrouvée dans les paramètres de la box).
  • 1 autre connexion BMA (port correct) que je ne retrouve ni sur Cesium ni sur les “Peers” de Duniter.
  • 2 connexions WS2P avec le bon port et la bonne IP.
  • 1 troisième WS2P avec un port que je n’ai jamais configuré sur une troisième IP que je ne connais pas.
  • 2 autres canaux ouverts en UPnP sur les ports 10902 et 10903 correspondant à la machine de la première BMA.

J’ai bien constaté dans les réglages IPv4 : “UPnP + mon IP” ou bien “conf + IP n°2” mais je ne sais pas à quoi cela correspond.

Quelqu’un de patient pourrait-il m’expliquer tout ça siouplaît ?^^

D’abord on va partir des données, voici ce que je vois :

{
  "version": 10,
  "currency": "g1",
  "status": "UP",
  "first_down": null,
  "last_try": null,
  "pubkey": "LFoG1wupku6PnkY42CBNvR8kx5f9nCCTt87A18pjEDr",
  "block": "72615-0000037E6DA1B17410D4C124A538CF12638910FB8532B304671C48FCCD1B131B",
  "signature": "+7aGvIHBRPkJsEv/yL6qPocfe+a96tIwhaxDbV+6GrFnViBjMvS4Y7VAOj7+6ef0OnxNbMglIqq4tllUxqDsBA==",
  "endpoints": [
    "BASIC_MERKLED_API 81.48.207.151 50574",
    "WS2P 67140a81 81.48.248.47 20901",
    "WS2P 57bceb6a 81.48.248.47 20900",
    "WS2P a7026568 81.48.244.184 20903"
  ]
}

Tu confirmes ?

1er problème

Je vois déjà 1 chose incorrecte : il y a 3 entrées WS2P, or dans ce cas c’est la dernière qui est utilisée. Si celle-ci n’est pas correcte vis-à-vis de ton nœud, alors ce dernier ne pourra pas être contacté.

Si l’on considère que l’entrée correcte est WS2P 67140a81 81.48.248.47 20901, ce que suppose car je vois que ton nœud publie un HEAD avec l’identifiant 67140a81 :

image

Alors tu peux retirer les entrées invalides avec les commandes suivantes :

duniter config --remep "WS2P 57bceb6a 81.48.248.47 20900"
duniter config --remep "WS2P a7026568 81.48.244.184 20903"

Il te suffira de redémarrer ton nœud pour que ces 2 entrées disparaissent, et après un bon quart d’heure il se peut que ton nœud reçoive des connexions entrantes.

2ème problème

Ton nœud affiche 3 IP différentes … or s’il les a trouvées lui-même, tu as certainement une IP dynamique. Dans ce cas avoir un nœud stable en permanence au niveau IP est impossible, et ton nœud disparaîtra régulièrement de Cesium jusqu’à ce que ton nœud détecte le changement et publie une nouvelle IP pour BMA et WS2P.

Sauf que … cette détection et le changement automatique ne sont pas implémentés aujourd’hui. :confused:

1 Like

Merci beaucoup pour ta réponse !
Je n’ai pas retrouvé le doc que tu présentes mais en tout cas, ça correspond à mes machines (manque une BMA tout de même :thinking:).
Les deux premières WS2P sont correctes mais la troisième s’est mise en place toute seule. IP dynamique ok. Mais cela explique-t-il aussi la config auto du port 20903 ?
Je vais l’enlever sur les deux machines, on verra bien ce qu’il se passe.
En tous les cas, malgré ce troisième WS2P (qui pointe je ne sais où), mes machines sont bien connectées et calculantes.

Bien reçu pour le deuxième problème, qui est relatif puisque le calcul des blocs s’effectue correctement.

Je l’ai trouvé ici, en cherchant sur ta clé : https://g1.cgeek.fr/network/peers. Mais tu es censé le trouver également là : http://81.48.207.151:50574/network/peer, sauf que l’URL ne répond pas :slight_smile: (tu as certainement changé de port depuis ma recherche).

J’ai supposé ici que tu n’avais qu’une machine faisant tourner Duniter avec ta clé de membre, mais si ce n’est pas le cas et que chaque machine a une IP différente, ça explique ces multiples valeurs d’IP.

Si tu as plusieurs machines, active WS2P Public sur une seule machine, et laisse l’autre faire du privé. C’est le plus simple.

Ah non celui-là je ne l’ai pas touché justement. :face_with_raised_eyebrow:
Ok pour le WS2P public, je vais arranger ça dans l’aprem.
Merci !

  • Les URL correspondant à mes connexions BMA ne répondent pas tandis que ceux correspondant aux WS2P me renvoient “Upgrade required”. J’avoue ne comprendre ni l’un ni l’autre.
  • Aussi, la machine désormais non publique ne connecte apparemment plus aucun nœud (interface graphique “Overview”). Est-ce normal ?

http://81.48.248.47:50574/network/peer
et
http://81.48.248.47:42185/network/peer
(qui correspondent à mes nœuds)
renvoient (quand ils répondent)

Cannot GET /network/peer

http://81.48.248.47:42185/network/peers

C’est “peers” avec un “s”.

1 Like

Ok merci pour la correction. Mais du coup ça ne répond pas. Je n’arrive pas à en comprendre la raison.

Es-ce le bon port que tu as choisi? as-tu fait un essai en local sur ton raspberry?

Le port est bon.
En local avec IP local ça marche, en localhost ça ne marche pas.
(Un petit merci à Google qui m’a proposé au passage de traduire la page du maltais vers le français.^^)
C’est comme si ce n’était pas accessible de l’extérieur, pourtant le nœud connecte bien par le même port…

WS2P signifie Web Socket To Peer, il est donc normal que tu ne puisse pas y accéder en http… Il te faut utiliser un client websocket, sur firefox tua par exemple l’extension Simple Websocket Client :wink:

Oui WS2P v1 provoque de gros problèmes avec le multi noeud, les noeud supplémentaires se retrouvent isoler, j’ai le même problème donc je tourne mes nœuds supplémentaires sur la branche stable/ws2p-v1.1 sur laquelle j’ai refondu une bonne partie de ws2p pour que l’usage multi noeud fonctionne :slight_smile:

Cette branche me semble stable, donc s’il y a de la demande je pourrais l’intégrée à la 1.6 d’autant que je doit dev le ticket #1214 cette semaine et qu’il serait préférable que je parte de la branche stable/ws2p-v1.1 donc il y a de bonnes chances que çà se retrouve sur la 1.6 officielle :slight_smile:

1 Like

Pas de problème pour moi a priori. La 1.6 était pas sortable en production telle quelle de toute façon, trop de petite anomalies qui pouvaient devenir très génantes.

2 Likes

Ah ok, je m’en doutais un peu.

Si quelqu’un à un moment le temps de me donner un exemple de configuration multi-nœuds qui fonctionne, je suis preneur.

Il faut compiler manuellement depuis la branche stable/ws2p-v1.1 ou attendre la prochain release qui sera livrée des que j’aurais traiter et tester avec succès les tickets 1.6 :slight_smile:

1 Like