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

Reply via email to