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
