I just checked in a little servlet that displays the status of the node's node references. The class file is Freenet/client/http/NodeStatusServlet.
You can run it by adding the following lines to your freenet.conf/ini file. nodestatus.class=Freenet.client.http.NodeStatusServlet nodestatus.port=8889 # Make sure nodestatus is listed in the services line. # e.g.: services=fproxy,nodestatus It looks like the current CP decay scheme is too harsh. Nodes that don't answer most connection requests are quickly lost as their CP falls. The problem is that most nodes don't answer most requests because of the amount of traffic on the network. The only nodes that survive are a few "ubernodes" which must have really good connectivity / CPU power. I have been playing with the contact probability decay on my local node for the last several days. I get reliable routing to many more nodes if I make the following changes: 0) Change the CP decay // Punish gently in TreeRoutingTable.decreaseContactProbability node.contactProbability = (float)(((9.0 * node.contactProbability) /* + 0.0*/) / 10.0); instead of node.contactProbability *= 0.5; // Reward generously in TreeRoutingTable.increaseContactProbability node.contactProbability = (float)(((4.0 * node.contactProbability) + 1.0) / 5.0); instead of node.contactProbability = (float) Math.min(1.0, 0.2 + node.contactProbability); 1) Fix the CP failure recovery code in TreeRoutingTable.RouteWalker.step to retry skipped nodes in routing order instead of by maximum CP. Look at the diffs here if you want to see the changes I tested: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/freenet/Freenet/node/store/TreeRoutingTable.java.diff?r1=1.5&r2=1.6 The downside of these changes is that they can make routing somewhat slower. Though it's debatable whether you can call what's going on now routing at all. I didn't just check in these changes, because there are CPU usage issues with the CP failure recovery code in the degenerate case where most of the nodes are driven to low CP's. I think the right thing to do is just to move the CP recovery code in TreeRoutingTable.RouteWalker.step into a separate thread that periodically tries to connect to low CP nodes. Thoughts? --gj -- Freesites (0.3) freenet:MSK at SSK@enI8YFo3gj8UVh-Au0HpKMftf6QQAgE/homepage// (0.4) freenet:SSK at npfV5XQijFkF6sXZvuO0o~kG4wEPAgM/homepage// _______________________________________________ Devl mailing list Devl at freenetproject.org http://lists.freenetproject.org/mailman/listinfo/devl