> The sole advantage of my system (besides having all your advantages as
> well) is that its easy to detect when you have a freenet-special control
> message.

A Control-message=yes/no field gives the same advantage and still allows
you to have a data section, useful for reasons detailed below.

> I have no problems with
> having the URIs be in the "Data" section of the message.  What I am saying
> is that the line between the metadata and the data sections of a document
> (as defined by Metadata-length and DataLength), should not be splitting
> your message.

> It should look like:
> <----------------Metadata begins------------------------>
> Author=blah
> Title=blah
> Signature=blah
> Content-type=freenet/index
> Data
> freenet:CHK at q23123123123
> freenet:CHK at jkljklfg8ugf879gf87
> freenet:CHK at 548945894589045890
> <---------------Data begins----------------------------->
> <---------------Data ends------------------------------->

> > Why even separate private data into metadata and data?
> Because it allows for complicated metadata to be retrieved separately from
> the data for speed.  For example, you can 'stat' a freenet file by issuing
> a request for the metadata only section of a document.  The node returns
> only "Metadata-length" bytes of the document.

That is exactly why I'm proposing that it look like this:

> <----------------Metadata begins------------------------>
> Author=blah
> Title=blah
> Signature=blah
> Content-type=freenet/index
> Data
> <---------------Data begins----------------------------->
> freenet:CHK at q23123123123
> freenet:CHK at jkljklfg8ugf879gf87
> freenet:CHK at 548945894589045890
> <---------------Data ends------------------------------->

That way you can get the metadata from the file without actually
retrieving the file. Of course this only makes sense for the bulkier
files. If you're just talking about redirects then there's no reason to
fetch the metadata separately. But if you're talking about multipart
headers or indices then it would be sensible to do it this way.

If you want to treat redirects as normal files, then that's fine with
me. If not, then I have an alternative solution. If you are viewing them
as control commands then they should be constructed like our other control
command, QueryRestarted.

So the proper way to construct a control command is to create a new
message type. The special information should go in fields in the
message. This doesn't suffer from a namespace collision problem
with the metadata because the metadata is encrypted in the trailing field.

Of the things which have been mentioned by various people as possible uses
for freenet-special files, the only one which could be reasonably
constructed as a message is redirects. Everything else would be better off
as a normal file.

The disadvantage of creating a new message for redirects is that
modifications have to be done the the node so that it sends back a
Redirect instead of a DataReply. This is okay because modifications need
to be done anyway to limit the size of data associated with KSKs so that
only URIs can be stored under them.




_______________________________________________
Freenet-dev mailing list
Freenet-dev at lists.sourceforge.net
http://lists.sourceforge.net/mailman/listinfo/freenet-dev

Reply via email to