I tend to be a practical person when it comes to user behavior, and in looking at the current situation with Freenet, it seems that too many users are behaving poorly, and adding hundreds of disconnected nodes.
They either don't understand that you need a connection on each side, or don't realize that disconnected nodes waste bandwidth. I think we need to help them understand that they are hurting themselves. Toad, before you argue that having large numbers of connections isn't proper darknet behavior, keep in mind that many people have several dozen friends they might connect to via freenet legitimately- If fixes are easy, and don't hurt the network, then it's worth it to consider them.... I think that there are two things that can be done to help fix this, each of which is rather trivial. I think the first thing to do is to add a warning, when the node is spending more than XXX% of it's bandwidth/time checking node status. Ie, if it's sending out X ARK retch requests, versus 1/2 X in requests/Inserts, there is a problem, and there should be a warning on the main fproxy page. The second is to change the delay between checks to see if a node is back up. As I understand the current system, it's a formula based on the age of the build, the time we've seen it most recently, how often it's connected, and other factors. I think it might make sense to make this value increase exponentially, until it hits a max value, set in freenet.ini Ie, Start at 10 seconds, go to 1 minute, then 1 hour, then every 10 hours. Remain at 10 hours (or whatever value is in freenet.ini) until further notice. Doing this negates much of the penalty for having disconnected users. It allows people to have them without hurting their bandwidth. Transient nodes aren't hurt, since if the node RECEIVES a packet from the Just-started transient node, it will immediately consider that node current. It puts the burden on the transient node to tell its peers its back up. I'm thinking about implementing an exponential scale in my build, but I think it makes sense to have it generically.
