Request for a beta app to help test nodes are connecting

This is a request for an application that we can run to test if a peerID is contactable and responding to external requests.

I realise it will likely have to be run from behind a different router to the one the node being tested on.

I would think most of the code is there to do this since that is what the network does all the time.

The reason is that one of the most common questions is if their node is properly connected to the network and will receive new chunks. Seeing peers and puts/gets is not an indication since the listening port maybe being blocked by a firewall, or using the wrong connection technique or other PC/OS issue.

I am not sure what happens with relays (–home-network) but I would expect that should not be an issue since clients connect to nodes via the relay.

Is this just the client quote code but being able to specify any peer ID. I would expect that if a node can provide a quote then its considered communicating and listening properly.

@joshuef Any ideas.

I know the dev team are hard pressed but it would be great for some of us OGs to be able to “ping” a node via its peerID with quote request. This would mean when we are asked if their node is communicating correctly then we can just run the app and ping their node and tell them.

I have spent hours like others have done so with the repeated question of if their node is working properly. Sometimes we have to guess, sometimes its obvious. But this app would save us so much time and I feel its a simple modification of the client to produce an app to allow this.

18 Likes

A post was merged into an existing topic: Bash scripts for managing safe nodes on Linux

It seems that the request for the app to test nodes is very popular with those who have been helping people @joshuef

But if anyone else who can modify the client code to accept a peerid on the command line options and do a quote request, then feel free to attempt the mod to the client code.

1 Like

:+1: I hear yous.

Honestly i think something like this might need to go into any health check, which is probably what we’ll need to be reporting to users + feeding back into the nodemanager. We’ll be looking to improve things here when we can!

6 Likes

I added nodes using port-forwarding and ss (netstats) does not show any safenode listening, but says they are unconnected. The router is port forwarding and the firewall has the ports open and that is what suggested to me this test.

Surely (don’t call me Shirley) a quick mod can be done to add a cli option and then call the quote routine with the peerid given to get the quote. Could that be done @joshuef easy enough for a community member to follow the quote request logic and implement this? I know the devs are super busy. So if anyone who knows rust and has experience with the code could do it, it would save us helpers a TON of EFFORT when wave 2 people start joining. Its frustrating for the testers and equally so for the helpers.

1 Like

Hmm, I think it could be done.

Is what you’d need to call. Instead of a random address, you’d want to make a NetworkAddress from the PeerId: safe_network/sn_protocol/src/lib.rs at main · maidsafe/safe_network · GitHub

With both of those things, you should be able to effectively target your nodes

3 Likes

Just a quick question @joshuef if I may.

PeerID, that is separate to the XOR address of the node or are they the same?

Is there anyone in the community able to help us out here and create a modified client to get the store cost from a command line option supplied peerID

That’s already available! --peer is an option on the safe command.

I used to use it to check if my node is available on the network. From another machine on another network of course.

1 Like

--peer is specified like this:-

--peer "/ip4/44.214.100.193/udp/12001/quic-v1/p2p/12D3KooWQYEV2XA81Xm9gX3f3LW6jeM7EFuQZpMXh52aJhQnjbGU"

or you can use:-

--peer $SAFE_PEERS

having set that variable SAFE_PEERS in advance.

whether you give that to the node to start it up or the client for sending data or getting an estimate of the cost of uploading a file.

The only difference you’ll see is that for the client when you get the message ‘Connected to the network with 50 peers’ it will just be 1.

If it doesn’t connect your peer isn’t working.

1 Like

So that’s the peer MultiAddress, the peer id is the 12D3KooWQYEV2XA81Xm9gX3f3LW6jeM7EFuQZpMXh52aJhQnjbGU portion of it.

1 Like

I’ll ask again if I may @joshuef

Is the peerID value the same as the nodes XOR address on the network. Not talking of representations or how the code uses but simply is the value the same as the node’s XOR address on the network. Or is the PeerID just its ID and the XOR address the node is at another value

1 Like

Tried to run a node with peer from my other machine (other network, other location, other os etc…) and node is up connected is this a proof that my node used as a peer is working well and is on the network?

So for someone like me who has never used the safe command, what exactly is the command I would use to determine if a peer is good. And will it actually get a quote returned for me. The quote is just a nice thing to get

And thank you for telling me/us

2 Likes

A quote isn’t the way because that needs to go to nodes related to a chunk. So to use it here would require changing the node code not just the client.

You can do that now by using the ‘estimate’ option. What you want I think is to test a specific node. I’m not sure what’s the best test of that.

1 Like

That is what @storage_guy gave - a way to do that

Oh I thought the code (routine) Joshuef pointed out was to get a quote from one node. Are you talking of that one or a higher up level. Why would getting a quote from a node require the node s/w to be changed? since its what the client does get the a random quote from a node and maybe 2 now or all 5 but one at a time.

I am new to safe, so what is this ‘estimate’ you talk of and how is it used in a command line?

I have time to explain. Lots to do rn. --help for safe files upload and search the forum may help. Plenty of others can help with that.

1 Like

That node stuck on 65 gets and 0 puts for a while. Peers are changing.

@storage_guy I tried this and looking at the logs, it uses the relay and connects with other peers that the relay can supply without even trying my node. So this is no good since in effect I am testing other peers and not the one I want.

@joshuef FYI only - At this time we have not got a solution. Can’t wait for that health feature of the launcher. Yea I can wait, but you know

@happybeing You know how I said the nanos in vdash is wrong. Well while trying this I saw that I needed 11 nanos.

That works out to be 10 nanos for the node and 1 for royalty. I guess royalty is truncated from 1.5 nanos to 1 rather than rounded up.

So vdash is both right in reading the log file correctly but the node only receives 10 of the 11 nanos.

And obviously for higher store costs the royalty amount will be closer to the 15%

1 Like

Agree, I think the log message needs updating or vdash needs to pick a different one. Easy for someone to check out, and fix if the right value is there somewhere. Might be worth an issue to highlight it.

1 Like

Here is the proof of working node. Wouldn’t believe but everything is written in --help.