I think I have found the cause for the perfomance issues that many nodes have been seeing since the release of 0.5. It was the result of some bad protocol design on my part, that came to light with the combination of Matthew's more aggressive local routing and the large number of announcements after the release. Basically, there was nothing to stop an announcement from restarting an infinite number of times (on requests we loose one HTL every time we restart, but announcements need to reach a fixed number of nodes) so many announcements were flooding nodes with hundreds of QueryRestarted messages.
Build 608 will stop your node from taking part in this, and it seems to help a lot here. But other nodes will continue to flood you, so it can only take you half way. The changes will probably make it a little harder for nodes to announce themselves as long as the network is unhealthy - but there is new announcement code in there that is very persistant so the user should not have to worry about that. I also did some further work on the sanity checking of node addresses. If "localIsOK" is not set in the configuration, it will not reference single level hostnames, or IP addresses that are plainly wrong or refer to loopback or RFC1597 addresses. If people would look at: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/freenet/freenet/src/freenet/transport/tcpTransport.java?rev=1.2&content-type=text/vnd.viewcvs-markup to see if I am being overly strict or missing cases I would be happy. A question is whether we should try to resolve DNS addresses to see if they are real. I'm somewhat concerned about revealing too much about the network if nodes immediately resolve addresses on announcements. How much can people see by a DNS query? Will they see my IP address, or only that there is a query from my ISPs DNS server? -- Oskar Sandberg oskar at freenetproject.org _______________________________________________ devl mailing list devl at freenetproject.org http://hawk.freenetproject.org/cgi-bin/mailman/listinfo/devl
