Changes between Version 6 and Version 7 of GSoCIdeas/Notes


Ignore:
Timestamp:
2010-03-17T04:01:52Z (14 years ago)
Author:
zooko
Comment:

remove webdav as it lives on the real GSoCIdeas page now

Legend:

Unmodified
Added
Removed
Modified
  • GSoCIdeas/Notes

    v6 v7  
    2323 * Tahoe-LAFS Cryptography:
    2424   * Help us author a paper proving the security of the crypto that will be used to implement new shorter caps (such as the [NewCaps/WhatCouldGoWrong Elk Point protocol] or the "Semi-Private Key" construction from http://allmydata.org/~zooko/lafs.pdf ). [http://allmydata.org/trac/tahoe-lafs/query?status=!closed&order=priority&keywords=~newcaps Tickets labelled 'newcaps']
    25 
    26 
    27 == WebDAV support ==
    28 
    29 Difficulty: medium - hard
    30 
    31 [http://allmydata.org/trac/tahoe-lafs/query?status=!closed&order=priority&keywords=~webdav Tickets labelled 'webdav']
    32 
    33 WebDAV is a set of extensions to HTTP, specified in
    34 [http://tools.ietf.org/html/rfc2518.html RFC 2518] and
    35 [http://www.ics.uci.edu/~ejw/authoring/ a few other documents],
    36 that allow it to be used as a filesystem access protocol.
    37 Supporting WebDAV in Tahoe would mean extending the
    38 [source:/src/frontends/webapi.txt webapi frontend] to implement this
    39 protocol.
    40 
    41 The main attraction of implementing a WebDAV interface is that
    42 several operating systems have bundled and somewhat integrated support
    43 for it, including Mac OS X, Windows, and some Linux distributions.
    44 In fact WebDAV may turn out to be an easier alternative to
    45 [http://en.wikipedia.org/wiki/Server_Message_Block SMB/CIFS]
    46 for allowing filesystem access from Windows.
    47 
    48 However, there is currently no working WebDAV implementation in Twisted
    49 Python. There used to be one (the {{{web2.dav}}} package),
    50 [http://twistedmatrix.com/trac/ticket/3081 but it bitrotted].
    51 You'll have to decide whether to help fix that implementation, use a
    52 non-Twisted implementation such as [http://code.google.com/p/wsgidav/ WsgiDAV]
    53 that might be more difficult to integrate wth the existing Tahoe code,
    54 or write your own. In any case, WebDAV is a complicated protocol and
    55 you will need to decide what subset of it gives most "bang for the buck"
    56 and is practical to support in the time available. For example, locking
    57 is optional in the WebDAV spec; is it needed to interoperate with commonly
    58 used WebDAV clients?
    59 
    60 Unlike most filesystems which are constrained to be trees, the structure
    61 of a Tahoe is in general a cyclic graph.
    62 [http://tools.ietf.org/html/draft-ietf-webdav-bind draft-ietf-webdav-bind] is
    63 an Internet Draft that clarifies how WebDAV servers should handle cycles.
    64 
    65 [http://savannah.nongnu.org/projects/davfs2 davfs2] is a FUSE-based
    66 WebDAV filesystem client for Linux. To ensure that this runs correctly
    67 over your implementation of WebDAV, you'll probably need to adapt the
    68 tests for the existing Tahoe
    69 [source:contrib/fuse/impl_c/blackmatch.py "blackmatch"] FUSE interface
    70 (this would not be redundant since the blackmatch implementation has
    71 limitations, especially for write access, that davfs2 would not have).
    72 
    73 The [http://en.wikipedia.org/wiki/WebDAV#Microsoft_Windows WebDAV mini-redirector]
    74 is the component of Windows providing its WebDAV filesystem support. It is
    75 actually the less buggy of
    76 [http://www.zorched.net/2006/03/01/more-webdav-tips-tricks-and-bugs/ two implementations], but it still has had
    77 [http://greenbytes.de/tech/webdav/webdav-redirector-list.html bugs] and
    78 [http://www.microsoft.com/technet/security/bulletin/MS08-007.mspx security vulnerabilities]
    79 that you may need to take into account.
    8025
    8126