Matthew Toseland schrieb:
 > On Wednesday 28 November 2007 17:33, you wrote:
 >  
 >>>> c. a minor point in relation to the initial listing of persistent 
requests.
 >  
 >>>> Maybe a bit paranoid, but some client may have left an unknown 
number of
 >>>> requests
 >>>> laying around for the next client to run into. Somehow I would feel
 >>>> better if I could
 >>>> tell the node to only list a a specified set of requests and 
forget about
 >>>> all others.
 >>>>        
 >>> This is why we have the Name field in the ClientHello. They are *your
 >>> requests* if your application is well-written and uses a unique and 
well
 >>> known Name.
 >>>      
 >> Not necessarily my* requests. I filed a report regarding this
 >> [https://bugs.freenetproject.org/view.php?id=1893].
 >> Well-known-name is well known to who? I wouldn' t want to keep track of
 >> all names all clients
 >> may have in use when there is a better solution.
 >>    
 >
 > There isn't a better solution, short of getting rid of Name's and 
using the
 > global queue for everything. Which really sucks - do you want your 
client to
 > have to deal with Frost's board refreshes? Of course not!
 >
 > If it is necessary for the project to maintain a registry of well 
known names
 > then we will do so, but really it's not so hard to produce a unique 
Name - if
 > all else fails, dd if=/dev/random bs=32 count=1 | md5sum !
 >  

Project... Freenet wide? No ;-)

Mabe misunderstandood somehow. All I am trying to point out is that for any
name, even if consists of random bytes there is no guarantee that it is 
unique.
Collisions will happen in between clients, no matter what and no problem 
about
that.

But a problem with the curent assumption: a client tries to reconnect, 
lets send
a CloseConnectionDuplicateClientName message and close the pipe of the
former client.

...and the second asumption: client connects, we got some persistents 
laying
around for that name. Shurely he likes us passing them all. I left some 
notes
regarding this in "How to deal with orphaned persistent requests?"
[https://bugs.freenetproject.org/view.php?id=1564]

I don't know what exactly the node is able to store about a perststents 
(blocks
transfered?). But as a client I shurely would like being able to to the 
same things,
being able to restore user requests without the help of the node, 
bypassing all
eventual troubles. On local queue, the only way to do this curently is 
storing
identifiers of requests I know about to be prepaired to discard requests 
I don't
know about.

Maybe I am overlooking something, but as far as I can see, from a 
clients point
of view collisions are currenly quite hard to handle and very easily 
overlooked.


Juergen


Reply via email to