On Fri, Apr 20, 2001 at 08:28:55AM -0700, Ian Clarke wrote:
> There are a number of reasons why this is a bad idea, the easiest to
> explain is that if you can ask a node whether it has a file, then it
> makes it easier to prove that a node was caching a file, and under some
> legal systems, this would allow you to justify shutting down the node.

OK, how about this: you send the item you're about to drop to a 
neighbouring node. If it has space (unlikely), it stores it. If it doesn't 
have space but it has a copy of the same file, it politely accepts your 
file and carefully stores it in /dev/null. If it doesn't have space and 
doesn't have a copy of your file, it stores your file and sends the file 
at the bottom if its datastore to another node, to make room. Repeat until 
either free space or a duplicate file is found. Any node in the chain can 
refuse to accept a file, in which case the sending node drops the file 
(which would have happened anyway). Any node in the chain can forward the 
same file that it accepted (instead of the one at the bottom of its 
datastore), so if a node asks you to store a file there's no proof that it 
ever stored the file - it could just be forwarding the file for one of its 
neighbours.

Advantages:

* Less files are dropped - where possible, local redundancy is reduced 
instead of dropping files that might be unique. Files live for longer and 
the storage capacity of Freenet (in terms of unique files) is increased.

* You can't tell whether the node stored the file in free space, dumped 
the file because it already had a copy, or stored the file and displaced 
another file. So you can't prove that the node ever had the file before 
you supplied it.

* Most files are only displaced by one hop, so requests can still find the 
displaced files.

Disadvantages:

* If you get a long chain which ends up with a file being dropped anyway, 
you have wasted a lot of bandwidth for nothing.


Michael

_______________________________________________
freenet-tech mailing list
[EMAIL PROTECTED]
http://lists.freenetproject.org/mailman/listinfo/tech

Reply via email to