Manque de places WS2P sur le réseau Ğ1!

With @wellno1, we are investigating why its mirror node is not staying synchronized to the network.

Looking at the WS2P connections, after a while, they disappear, and the node starts to be disconnected:

curl https://g1mall.nohost.me/network/ws2p/info
{
  "peers": {
    "level1": 0,
    "level2": 0
  }
}⏎   

Just after a restart, we get two connections:

│2021-04-19T20:02:53+01:00 - info: WS2P: init: bundle of peers 3/6                                                                                                                                                                                           ┤
│2021-04-19T20:02:53+01:00 - info: WS2P: connected to peer 2ny7YAdm using `WS2P 82.65.206.220 20900`!                                                                                                                                                        ┤
│2021-04-19T20:03:08+01:00 - info: WS2P: Could not connect to peer GfKERHnJ using `WS2P nuc.moul.re 10900: WS2P connection timeout`                                                                                                                          ┤
│2021-04-19T20:03:08+01:00 - info: WS2P: Could not connect to peer 8UXZWg5Y using `WS2P duniter.dethegeek.eu.org 20901: WS2P connection timeout`                                                                                                             ┤
│2021-04-19T20:03:08+01:00 - info: WS2P: Could not connect to peer 4FgeWzpW using `WS2P 82.64.35.65 20900: WS2P connection timeout`                                                                                                                          ┤
│2021-04-19T20:03:08+01:00 - info: WS2P: Could not connect to peer EJXX8EgT using `WS2P 91.163.124.198 20901: WS2P connection timeout`                                                                                                                       ┤
│2021-04-19T20:03:08+01:00 - info: WS2P: init: bundle of peers 4/6                                                                                                                                                                                           ┤
│2021-04-19T20:03:08+01:00 - info: WS2P: connected to peer 9R9VtA9f using `WS2P duniter.pini.fr 443`!                                                                                                                                                        ┤
│2021-04-19T20:03:08+01:00 - info: WS2P: connected to peer HnQH8P6n using `WS2P obelix.toutat.is 443`!     

After a while, all the connections get closed:

WS2P: connection [*] has been closed  
│2021-04-19T20:04:09+01:00 - info: [CKWTXWTF] ⬇ PEER 9R9VtA9f 416705-0                                                                                                                                                                                       ┤
│2021-04-19T20:04:11+01:00 - info: WS2P: connected to peer 9R9VtA9f using `WS2P duniter.pini.fr 443`!                                                                                                                                                        ┤
│2021-04-19T20:04:12+01:00 - info: WS2P: connection [9R9VtA9f `WS2P duniter.pini.fr 443`] has been closed                                                                                                                                                    ┤
│2021-04-19T20:05:09+01:00 - info: WS2P: connection [Abpio1ZP `WS2P g1.halpanet.org 443`] has been closed                                                                                                                                                    │
│2021-04-19T20:05:09+01:00 - info: WS2P: connection [HnQH8P6n `WS2P obelix.toutat.is 443`] has been closed                                                                                                                                                   ┤
│2021-04-19T20:05:09+01:00 - info: WS2P: connection [9UuWHs3Z `WS2P g1.neptura.org 443`] has been closed                                                                                                                                                     ┤
│2021-04-19T20:05:09+01:00 - info: [CKWTXWTF] ⬇ PEER 5fPevx21 416705-0                                                                                                                                                                                       ┤
│2021-04-19T20:05:09+01:00 - info: [CKWTXWTF] ✔ PEER 5fPevx21 416705-0                                                                                                                                                                                       ┤
│2021-04-19T20:05:24+01:00 - info: WS2P: Could not connect to peer 5fPevx21 using `WS2P 91.121.157.13 20903: WS2P connection timeout`                                                                                                                        ┤
│2021-04-19T20:05:24+01:00 - error: Unhandled rejection: WS2P connection timeout                                                                                                                                                                             ┤
│2021-04-19T20:05:24+01:00 - error: WS2P connection timeout                                                                                                                                                                                                  ┤
│2021-04-19T20:05:55+01:00 - info: WS2P: connection [2ny7YAdm `WS2P 82.65.206.220 20900`] has been closed    

Is there anything we can do here? Thanks for the help.

  • Demander à des propriétaires de nœuds connus d’ajouter dans leurs clés privilégiées la clé publique du nœud miroir.
  • Demander à tous les propriétaires de nœud connus de bien paramétrer leur WS2P Public (et le faire soi-même).
1 Like

Thanks for the solutions. Is there any solution on the implementation, the protocol or default configuration to overcome the issue of having to ask to add a mirror pubkey as privileged into other nodes. That’s quite rough to ask that when setting up a Duniter mirror node for the first time.

Should we do an other announcement request to go into this direction?

Should it be due to the fact that I’m still not a member?

In the meanwhile, I set up a cron restart every 2 hours to work around the problem

Non

Oui fait donc, que ce ne soit pas toujours moi :slight_smile:

Yes

Unsure what you mean here. I thought that the only difference between a member node and a non-member node was the fact that non-member does not calculate blocks. Are you saying that there is also an impact on connectivity to the network?

Oui, chaque nœud WS2P Public à un quota de connexion entrantes, et s’il y a trop de demandes de connexion, les demandes provenant de nœuds membres sont priorisées.

Le premier post date de 3 ans, il faudrait le maj où en faire un nouveau afin de mettre à jour la liste des membres qui n’ont pas activé WS2P Public.

Je viens de tester tous les endpoints WS2P avec nom de domaine connus par mon nœud.

Il y en a 19, et seulement 11 sur 19 qui répondent ! On a vraisemblablement un problème de nœuds WS2P Public mal configurés ou trop intermittents.

Voici une liste non-exhaustive des endpoints WS2P qui ne répondent pas :

wss://duniter.adn.life
wss://duniter.lucho14.website/ws2p
wss://g1.help-web-low.fr/ws2p
wss://g1.leprette.fr
wss://duniter-g1.p2p.legal/ws2p
ws://g1a.jytou.fr/ws2p:9002
ws://nuc.moul.re:10900
wss://duniter.moul.re

@fdrubigny @lciviero @Pafzedog @Thatoo @poka @jytou votre WS2P Public est mal configuré (où votre nœud est down au moment de mes tests).

@Moul tu as 3 endpoints WS2P dont un seul répond, merci de supprimer les 2 autres (où de les reconfigurer si tu souhaites qu’ils fonctionnent).

La doc pour configurer WS2P Public est ici :

Pour vérifier si votre endpoint WS2P répond correctement, vous pouvez utiliser l’extension firefox « Simple Websocket Client », exemple d’un endpoint qui répond correctement :

5 Likes

Bonjour @elois :slight_smile:
Merci pour cette piqûre de rappel.

Sans changer ma configuration qui me semble opérationnelle, j’ai testé comme indiqué avec l’extension préconisée et le endpoint répond apparemment…

Amicalement, Francis

A-t-on pensé à faire un DDOS sur les nœuds Duniter, juste en squattant les connexions WS2P ? Peut-on le faire avec plein d’endpoints factices sur une même IP ou il y a une limite par IP ?

Idem ma configuration est bonne normalement, mais le nœud freeze de temps en temps, que ce soit en BMA, WS2P ou l’interface d’administration, je n’ai pas eu le temps de cibler exactement quand ca se produit mais j’ai une piste sur le « saving block … ».
Le système de fichier était auparavant sur du Ceph et depuis la réinstalle du nœud sur du ssd local.

Je viens de tester le websocket ws2p, première tentative en timeout et seconde ok.

J’ai un souci dans la config de mon noeud (Banana Pi) :

$ curl http://5.51.176.238:19001/network/peering
...
  "endpoints": [
    ...
    "WS2P 9ec40ddc 5.51.176.238 10900 /"
  ],
...

voici mon fichier de conf pour ws2p:

"ws2p": {
  "uuid": "bb5e697f",
  "privateAccess": true,
  "publicAccess": true,
  "preferedOnly": false,
  "privilegedOnly": false,
  "upnp": false,
  "port": 19002,
  "remotehost": "5.51.176.238",
  "remotepath": "/",
  "maxPrivate": 4,
  "maxPublic": 10,
  "sync": true,
  "privilegedNodes": [
   "A5LQXCkx8b6rzppfqdqeHbKPDGmKZtRcqwxP4BSeag5r"
  ]

Le port public indiqué dans la conf est 19002 (et mon NAT est bien configuré), cependant le port renvoyé par la requête peering est 10900.

Le port BMA est bon (19001).

Je n’arrive pas à me connecter avec Simple Websocket Client sur aucun port (19002, 10900). J’ai une erreur undefined.

NB : il m’arrive de faire tourner un noeud sur mon laptop, dans ce cas son port WS2P est effectivement 10900, et son port BMA est 10904. Cependant, je ne l’ai pas fait depuis au moins un mois.

C’est comme si mon noeud Banana Pi avait enregistré la config pour mon noeud Laptop… Ou p-ê est-ce le reste d’une ancienne config… Je sais que j’ai réglé cette config directement dans le fichier, sans passer par la commande --config.

J’attends des retours, et après je pense essayer en repassant par la commande --config.

essaye en forçant le port distant pour voir.

A rajouter dans ta config ws2p
"remoteport": 19002

1 Like

Effectivement, j’ai fait stop ; duniter config --ws2p-remote-port 19002 ; start.

Mon peering est…Mieux. Pas encore parfait.

$ curl http://5.51.176.238:19001/network/peering
...
  "endpoints": [
    ...
    "WS2P bb5e697f 5.51.176.238 19002 /", # bon port !
    "WS2P 9ec40ddc 5.51.176.238 10900 /" # mauvais port :-(
  ],
...

edit - bon, non, je ne me connecte pas par Simple Websocket Client. J’ai une erreur undefined.

Je pense que comme tu es passé par la CLI ca ta généré un nouveau endpoint, il faut supprimer l’ancien.

duniter config --remep "WS2P 9ec40ddc 5.51.176.238 10900 /"

Tu relances ton nœud, l’ancien EP devrait disparaitre.

Par contre ca t’a rajouter le endpoint supprimé dans la config au niveau de
"rmEndpoints": [ "WS2P 9ec40ddc 5.51.176.238 10900 /" ],

Perso, je stop le nœud, vide la liste, et relance, histoire que ca reste propre (je ne sais pas si c’est mal ou pas :D)

Ce qui te donne :
"rmEndpoints": [],

1 Like

C’est sûrement pas ça, mais bon. Es-tu sûr de modifier le bon fichier de config ? Ça m’arrive des fois de modifier un fichier non utilisé à en devenir fou, puisque mes modifs ne sont jamais prises en compte. :sweat_smile:

Est-ce que tu n’aurais pas un endpoint défini en plus dans la section endpoints ?