Bêta-test Duniter 1.6 WS2P

Soit dit en passant, le réseau Ğ1 est déjà bien fourni en nœuds WS2P : au moins 9 nœuds connectés actuellement !

1 Like

Arf je ne vois plus le miens :’(

hum … j’ai du loupé quelque-chose, je n’ai que deux connexions ws2p sur mon nœud mais je vois bien tous les autres :confused:

C’est peux-être le même problème:
https://forum.duniter.org/t/livrables-arm-en-attente-raspberry-pi-3-hs/3249/63

je suis pas sur arm mais j’avais un soucis sur ma conf apparemment

avant

{
“uuid”: “afaa79d8”,
“privateAccess”: true,
“publicAccess”: true,
“upnp”: false,
“host”: “duniter.help-web-low.fr”,
“port”: 7777,
“remoteport”: 7777,
“maxPublic”: null
}

après

{
“uuid”: “afaa79d8”,
“privateAccess”: true,
“publicAccess”: true,
“upnp”: false,
“host”: “151.80.40.148”,
“port”: 7777,
“remoteport”: 7777,
“maxPublic”: null,
“remotehost”: “duniter.help-web-low.fr
}

@vincentux, @stephane, @Pafzedog

Il se passait que mon nœud était l’un des seuls à fournir la connexion WS2P publique, or mon YunoHost a fait des siennes et fermé les ports utilisés pour Duniter, notamment WS2P.

Donc ça fait un gros point central d’échec, et ça a fichu un peu le boxon. Néanmoins, c’est revenu :slight_smile:

Oui mais voilà … l’idée c’est plutôt de faire comme @Pafzedog, et de mettre à disposition son nœud pour du WS2P public. Plus on est nombreux à le faire, plus résilient sera le réseau car décentralisé.

Pour cela : « WebUI > Settings > Network > Enable WS2P access ». Puis sauvegarder et appliquer.

Vous pouvez vérifier que ça fonctionne bien en ayant des entrées « INCOMING » dans votre vue réseau. Vous pouvez également tester votre adresse avec un outil comme Simple WebSocket Client (extension Chrome/Firefox), par exemple avec la mienne :

S’il y a une ligne « CONNECT », c’est que votre configuration fonctionne.

4 Likes

Alors j’ai bien la ligne “CONNECT” avec Simple WebSocket Client mais je n’ai que des OUTCOMING dans la vue WS2P CONNECTIONS :frowning:

en fait, j’avais
"maxPublic": null,

je l’ai passé à 10 et c’est beaucoup mieux :slight_smile:

comment peut-on mettre ce paramètre à ‘non configuré’ ou illimité du coup ?

1 Like

Bitcoin possède 5000 nœuds actifs, si ça peut te donner une idée de valeur haute :slight_smile:

edit : j’ai ajouté le ticket #1124 pour cette histoire de valeur nulle.

Bon vu que la release est candidate j’ai fait le pas, un WS2P public de plus sur le réseau Ğ1, alors ce qui est drôle c’est que sans BMA j’avais zéro connexion WS2P donc j’étais isolé, j’ai activé BMA et boum je me suis pris 10 connexions INCOMING en moins d’une seconde !!

1 Like

Ouai c’est sûrement parce que le document est refusé par la plupart des nœuds <= 1.5, et donc les nœuds WS2P potentiels ne sont pas alertés de ton endpoint disponible.

Mais si tu ajoutes BMA … le document passe comme un colis chez UPS :slight_smile:

1 Like

d’accord, je le note :wink:

Mais je me suis mal exprimé:

En fait je n’ai pas configuré cette valeur au départ en faisant mes commandes duniter config puis j’ai vu au détour d’une capture d’écran que l’on pouvait configurer cela par la WebUI alors j’ai passé rapidement ce réglage à 10 pour finalement l’enlever de la configuration toujours par la WebUI ce qui a eu pour effet de mettre la valeur à “null” et d’empecher toute connexion en INCOMING

Du coup, je pense que le cas pourrait se reproduire chez quelqu’un d’autre sans qu’il ou elle comprenne pourquoi il n’y a pas de connexion entrante.

1 Like

J’ai pas réussit à utiliser cette extension.

J’ai tenté des outils en CLI écrits en Go et Rust, mais sans succès.

Par contre, cet outil en JS wscat fonctionne bien.

Histoire de tester les limites j’ai régler a 8 le nombre max de connexions ws2p publiques alors que j’en avait 10 :

  • Premier constat il faut redémarrer le nœud pour que la limite s’applique (ce serait bien que la web-ui indique qu’il faut le faire, comme a l’install d’un module)
  • Deuxième point, toutes les connexions WS2P m’étais réfusés au redemarrage, il a fallu 10 bonnes minutes avant de réussir ma 1ère connexion WS2P, c’est un comportement normal ?
  • Troisième observation, j’ai bien 8 connexions donc conforme au max mais j’ai deux fois pafzedog, c’est normal ?
  • Quatrième observation, j’avais configuré des clés préférés et privilégiés, et elles ont disparus de ma conf quand j’ai relancé le nœud…

Je suis larguée :wink:

Je viens de remettre en service un noeud G1-test avec cette version. Je calcule bien des blocs mais je n’apparait pas dans les membres, seulement en hors ligne et seulement après le calcul d’un bloc.

Que dois-je faire pour régler le problème?

Très bien ! Ça fera un excellent exercice de coding que de corriger ces points :slight_smile:

2 Likes

J’ai ça chez moi, est-ce que c’est bien configuré ?

schmitta@odroid:~$ duniter ws2p show-conf
{
“uuid”: “0ee9099e”,
“privateAccess”: true,
“publicAccess”: true,
“upnp”: false,
“host”: “192.168.0.152”,
“port”: 10090,
“remoteport”: 10090,
“remotehost”: “78.242.14.140”
}

Et est-ce que tu as un moyen en ligne de commande pour voir si j’ai des incoming ?

Non je n’ai pas développé cela. Tu peux t’en tenir au test du Simple WebSocket Client. Je le fais pour toi :

image

Ton nœud est parfaitement paramétré. Après, tu peux quand même greper dans tes logs les « incoming connection » pour si tu as des nœuds qui se connectent. Mais je n’ai pas de logs sur les déconnexions INCOMING.

Bravo pour tout ce travail. C’est vraiment énorme comme travail cette nouvelle couche !

Simple question : pour éviter de redéfinir un nouveau sous-domaine ou d’ouvrir un nouveau port, y a t’il moyen de configure le endpoint WS2P avec un path ? par exemple pour avoir un URL de ocnnexion wss://g1.duniter.fr/ws2p ?

EDIT: je parle bien de la définition du endpoint avec un path, qui passerai par un reverse_proxy pour pointer vers le port local qui va bien (sans path)

EDIT2 : voila ma config en place avec le path /ws2p :
image

et ma nouvelle fiche de pair :

{
  "version": 10,
  "currency": "g1",
  "endpoints": [
    "BMAS g1.duniter.fr 443",
    "ES_CORE_API g1.data.duniter.fr 443",
    "ES_USER_API g1.data.duniter.fr 443",
    "BASIC_MERKLED_API g1.duniter.fr 88.189.14.141 10901",
    "WS2P fb17fcd4 g1.duniter.fr/ws2p 443"
  ],
  "status": "UP",
  "block": "56494-0000043B96AA593F54FF3F3B152852C3467BC8E97800D3AACAB023697494B4FE",
  "signature": "GVbTTZVc4vAscFrNP91QlZ+ScolpVURut+Dx6Iw57EqIfqcdCxs6ujU7TnMj+GII+ATPVR5AwY6X7V3NLMtIBw==",
  "raw": "Version: 10\nType: Peer\nCurrency: g1\nPublicKey: 38MEAZN68Pz1DTvT3tqgxx4yQP6snJCQhPqEFxbDk4aE\nBlock: 56494-0000043B96AA593F54FF3F3B152852C3467BC8E97800D3AACAB023697494B4FE\nEndpoints:\nBMAS g1.duniter.fr 443\nES_CORE_API g1.data.duniter.fr 443\nES_USER_API g1.data.duniter.fr 443\nBASIC_MERKLED_API g1.duniter.fr 88.189.14.141 10901\nWS2P fb17fcd4 g1.duniter.fr/ws2p 443\nGVbTTZVc4vAscFrNP91QlZ+ScolpVURut+Dx6Iw57EqIfqcdCxs6ujU7TnMj+GII+ATPVR5AwY6X7V3NLMtIBw==\n",
  "pubkey": "38MEAZN68Pz1DTvT3tqgxx4yQP6snJCQhPqEFxbDk4aE"
}

Au sujet de l’URL /network/ws2p/heads de BMA :

Je comprends que les infos publiées par cette URL proviennent forcément de noeuds ayant WS2P activé. Et cela quelque soit la configuration de WS2P (publique ou privée). C’est bien ca ?

Par exemple, mon noeud (sur G1) me donne11 messages WS2P:HEAD:. Je peux en conclure que le nombre de noeud WS2P est de 11 ?

Autre question : comment distinguer dans ces messages lorsqu’une même clef à plusieurs noeuds sous WS2P? (endpoint avec uuid différents). Car je ne vois rien dans le message qui concerne l’uuid du endpoint…

merci de ton aide