--- Nick Tarleton <[EMAIL PROTECTED]> wrote: > I have heard a lot about Freenet's emergent behavior and would like to > understand just what mechanisms in the code make this happen.
I'll do my best to answer these guys for you. > 1. How does specialization occur? Specifically, how does a new node's > datastore begin to focus in one or a few particular areas? Don't think about the datastore's specialization. The routing specailization for the most part is supposed to cause the datastore specialization more that vise versa. > After that, how does routing specialization develop? Postive feedback. If a node is "good" in particular area it should get more "good", because other nodes should give it more messages for that area of hashspace. If it's "bad" in an area, it should get worse too. > Do nodes prefer to talk > to nodes with similar DS specializations? Yes and no. The chance that two nodes know eachother should be about inversely proportional to the "distance" between thier specializations (I think I can informaly prove this must be the case for log(N) routing). So a node will have many neighbors that are very close to it, but also a few that are very different. > 2. How does DoS resistance work? DoS is a big discussion. There are two types of DoS. A) Those that try to make the whole system unusable. B) Those that try to censor a particular bit of data in the system. > According to the website (I think), if you > have some evil nodes inserting megabytes of nonsense and some other evil > nodes requesting it, eventually they will move close together in the network. > What algorithm makes this happen, and won't the few nodes now between them > still suffer? This is a type A attack. This resistance is supposed to happen because nodes sometimes give thier IPs back with responses and sometimes nodes up the chain will connect to these an shorten the chain. I'm not sure it's 100% accurate, because the adversarial requestor can't be forced to connect to the adversarial insertor. One way to fight type A attacks is for the users of the system to make "hash cash" for everything. This limits the adversary to his CPU resources. We're not going to do anything like this now though because some nodes run at 100% CPU already. Even now though an adversary is limited by his own bandwidth, though if N/<max HTL> of the nodes in the system belong to him he can do serious damage. Type B attacks are a lot harded to fight, but aren't much of an issue if data is popular. > 3. Recently, I saw a message about how NGR will know whether to go to a fast, > unreliable or a slow, reliable node. Is this some complicated result of the > estimators? Yes. > How does it know which to go to for a given key? Please make sure you've read this: http://www.freenetproject.org/index.php?page=ngrouting > Is key size part > of the routing calculation? (If not, it probably should be.) Key size is small; you probably mean the size of the data asssociated with the key. A requester usually has no clue how large the data is until he get's it back. Size is corrected for when we calculate how long it takes a node to reply. __________________________________________________________________ Gesendet von Yahoo! Mail - http://mail.yahoo.de Logos und Klingelt�ne f�rs Handy bei http://sms.yahoo.de _______________________________________________ Devl mailing list [EMAIL PROTECTED] http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/devl
