This would lead to more data being sent, and for the request to be slower, without much benefit. If Freenet works correctly, the situation you decribe will almost never occur, because if the second node on yours got v3 from somewhere then its reference for the key would be to the node it got v3 from, which is where he would send the request (it is possible but unlikely that that node would have regressed a version).
It is easy to tell which node was the first with the latest data. Simply put a flag in the MessageMemory that you had a newer version then all the nodes before you on the Request. If you did, then the you turn the TimedOut into a DataReply (if you get a TimedOut, you could get a DataReply with newer data), if you didn't, then you pass out the TimedOut. On Mon, 08 May 2000, Theodore Hong wrote: > Oskar Sandberg <md98-osa at nada.kth.se> wrote: <snip> > How about this: > > - the last node to see the Request (first node to see the TimedOut), i.e. > furthest from user) that has the correct version turns it into a > DataReply. > > - it also sends the DataReply downstream as well (setting HTL as the Depth > from the TimedOut message), so that those nodes can get updated too. > > For example: > > user v1 v3 v2 v1 v3 v1 v2 > Request-0-> -1-> -3-> -3-> -3-> -3-> -3-> > <-3- <-3-TimedOut > <--- <--- <--- <---DataReply DataReply---> > > > (maybe that TimedOut should actually be some type of Request instead?) > theo > > > _______________________________________________ > Freenet-dev mailing list > Freenet-dev at lists.sourceforge.net > http://lists.sourceforge.net/mailman/listinfo/freenet-dev -- Oskar Sandberg md98-osa at nada.kth.se #!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj $/=unpack('H*',$_);$_=`echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1 lK[d2%Sa2/d0$^Ixp"|dc`;s/\W//g;$_=pack('H*',/((..)*)$/) _______________________________________________ Freenet-dev mailing list Freenet-dev at lists.sourceforge.net http://lists.sourceforge.net/mailman/listinfo/freenet-dev
