--- 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

Reply via email to