I have an internet connection delivered through an ISP-provided device in bridge mode to my Mikrotik router. A day and a half ago I took down the box that was running 500 nodes from that internet connection.
I just checked the Mikrotik router and noticed it’s receiving (RX) 4mbps and transmitting (TX) 0mbps. I looked into it and it’s UDP traffic to the port range I had set up for port forwarding to the nodes I was running.
So then it seems that the nodes that were peers to the nodes I took offline are still sending traffic. Shouldn’t they by now have removed my nodes from their peer list? And if they haven’t, how many nodes in the network are currently using bandwidth to send data to nodes that have gone offline?
Yes, I’m seen that before. It takes a long time for the connections to die.
This is a graph from October. It’s not really fair because a lot of things have changed since. But anyway, this graphs shows connections dying down after the probably something like 20 nodes at the time were stopped:-
It’s annoying and might cause a problem when nodes are started and stopped. I can see how someone could cause themselves problems by rapidly starting and stopping nodes
But look at is this way: if the connections are still coming there is a chance for redemption if a node is offline for a period of time.
Is that the case though? I read recently, not sure in which topic, that nodes that were offline for a bit are shunned from earning enough that they should just reset and start over. IIRC it was a comment by @neo. But then on the other hand, if casual, home users are expected to be able to run nodes at their leisure, and get something out of it, there should be a grace period for redemption. So there’s certainly a design tension at play.
Regardless though, it seems there’s an optimization that could be made instead of streaming a steady 1mbps per 125 nodes for 48 hours and counting.
Could a ping/pong keepalive be combined with an exponential backoff and eventual drop? Something where full data streaming continues until an hour of no keepalive from a peer, and after that on some schedule the peer is no longer streamed data but they’re retained in the list, and then eventually shunned and/or removed from the list.
The idea was that for security sake the nodes when starting get a new peerID, so there is no need for redemption periods. I have been reassured that this is coming sometime in the future. I did outline a couple of attack vectors if it is not. One has had some changes done to reduce the effects, but difficult to eliminate unless nodes get new ID