No Frost doesn't do this for all files. And the point is that the node
have to compute the filehash also! We tried this with files on a
network drive (read-only) and from DVD and it becomes incredible
slow...

On 9/25/07, cbreak <cbreak at gmx.net> wrote:
> bbackde at googlemail.com wrote:
> >> Also, if the filesystem is readonly, you *will* need to use FileHash 
> >> instead
> >> of TestDDA.
>
> Doesn't frost already create hashes of the files it uploads for internal
> purposes? It can either use this hash to authenticate it, or calculate a
> second hash for authentication purposes in the same read. In the special
> case frost there will be no read overhead, and only a tiny storage and
> calculation overhead.
>
> cbreak
>
> > This comment let me start thinking about the TestDDA design. Because
> > if the directory is read-only, the client have to handle the node
> > error (node cannot write the file) and the client must restart the
> > request. This is complicated and maybe confusing. The following
> > proposal tries to deal with this. I hope it is well thought.
> >
> > ------------------------------------------------
> >
> > Proposal for a alternative implementation for TestDDA
> >
> > Reason for a new proposal:
> > The current TestDDA implementation requires the client to implement
> > more things than really
> > needed. This proposal makes it easier for clients because its a simple
> > question-and-answer
> > game with the node. The node sends the right 'questions' to the
> > client, because he knows what
> > to ask. This allows easy-to-implement stateless clients.
> >
> > If needed, I could explain the advantages for clients in more detail.
> > But I think if you compare the existing implementation of TestDDA with
> > this proposal you
> > encounter that this proposal is a more consistent implementation. Btw
> > this handles multiple concurrent
> > TestDDA requests (each request is tied to a ClientGET or ClientPUT).
> >
> > One does not fits all, so I think both implementations are useful for
> > the one or the other client.
> > This proposal is for clients that want to send a request, and handle
> > all following messages
> > in a different part of the code. They do not remember the original
> > send request, so its hard
> > for them to resend the request on failure.
> >
> > The following proposal is fully node driven, making the handling
> > easier for clients (e.g. the
> > decision if a filehash must be send is done by the node, because only
> > he knows if he can write the
> > required file to the target directory or if this is already denied
> > (read-only directory).
> >
> > Note: this new impl must be enabled using a new parameter on
> > ClientPUT/ClientGET. The is no need
> >      to change existing clients.
> >
> > For each follow-on message the identifier that the client sent with
> > the first request is used,
> > because this messages belong to the same client request.
> >
> > ClientPUT:
> > -----------
> > - client sends ClientPUT to node, with new parameter indicating to use
> > the new testdda impl
> >  (node now needs to know if client is allowed to READ from the
> > directory where the file resides)
> > - node checks if the current socket is already authenticated to READ
> > from the directory
> > - if YES, do the ClientPUT
> > - if NO (proceed as in current TestDDA implementation):
> > - node tries to create a new file with random content in the directory
> > - if OK, send message to client asking to read this new file and
> > return the content for verification
> > - if NOT OK, send message to client asking for a filehash of this file
> >  (OR maybe for a hash of a part of the file! much lesser resource
> > consumption. consider big files on
> >   network shares or on DVDs! But this may by more insecure.)
> >
> > - handle the client answer for the request as usual...
> >
> > ClientGET:
> > -----------
> > - client sends ClientGET to node, with new parameter indicating to use
> > the new testdda impl
> >  (node now needs to know if client is allowed to WRITE to the
> > directory where the file resides)
> > - node checks if the current socket is already authenticated to WRITE
> > to the directory
> > - if YES, do the ClientGET
> > - if NO (proceed as in current TestDDA implementation):
> > - node asks client to write a new file with random content to this directory
> > - after client response, node tries to read this file
> > - proceed as usual...
> >
> >
> _______________________________________________
> Devl mailing list
> Devl at freenetproject.org
> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
>


-- 
__________________________________________________
GnuPG key:   (0x48DBFA8A)
Keyserver:   pgpkeys.pca.dfn.de
Fingerprint:
477D F057 1BD4 1AE7 8A54 8679 6690 E2EC 48DB FA8A
__________________________________________________

Reply via email to