Changes between Version 4 and Version 5 of GSoCIdeas/Notes


Ignore:
Timestamp:
2010-03-16T21:17:25Z (11 years ago)
Author:
davidsarah
Comment:

webdav; reorder some sections

Legend:

Unmodified
Added
Removed
Modified
  • GSoCIdeas/Notes

    v4 v5  
    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']
    2525
    26 == Free The Windows Client ==
    27  * Make the [http://allmydata.org/trac/tahoe-w32-client Windows client] use only free open-source software. (Implementing WebDAV is an alternative that would achieve a similar effect.)
    2826
    29 == Connecting Tahoe-LAFS To Other Things ==
    30  * Filesystem access:
    31     * improve the FUSE frontend ([source:contrib/fuse source code]). [http://allmydata.org/trac/tahoe-lafs/query?status=!closed&order=priority&keywords=~fuse Tickets labelled 'fuse']
    32     * support WebDAV for access from Windows and various filesystem browsers. [http://allmydata.org/trac/tahoe-lafs/query?status=!closed&order=priority&keywords=~webdav Tickets labelled 'webdav']
    33     * integrate Tahoe-LAFS with the GVFS Gnome virtual filesystem
    34  * Explore running a Tahoe-LAFS grid over [https://torproject.org Tor] or [https://i2p2.de I2P] to provide anonymity to servers and/or clients.
    35  * Rescue the neglected C client library [http://allmydata.org/trac/libtahoeclient_webapi libtahoeclient_webapi].
     27== WebDAV support ==
     28
     29Difficulty: medium - hard
     30
     31[http://allmydata.org/trac/tahoe-lafs/query?status=!closed&order=priority&keywords=~webdav Tickets labelled 'webdav']
     32
     33WebDAV 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],
     36that allow it to be used as a filesystem access protocol.
     37Supporting WebDAV in Tahoe would mean extending the
     38[source:/src/frontends/webapi.txt webapi frontend] to implement this
     39protocol.
     40
     41The main attraction of implementing a WebDAV interface is that
     42several operating systems have bundled and somewhat integrated support
     43for it, including Mac OS X, Windows, and some Linux distributions.
     44In fact WebDAV may turn out to be an easier alternative to
     45[http://en.wikipedia.org/wiki/Server_Message_Block SMB/CIFS]
     46for allowing filesystem access from Windows.
     47
     48However, there is currently no working WebDAV implementation in Twisted
     49Python. There used to be one (the {{{web2.dav}}} package),
     50[http://twistedmatrix.com/trac/ticket/3081 but it bitrotted].
     51You'll have to decide whether to help fix that implementation, use a
     52non-Twisted implementation such as [http://code.google.com/p/wsgidav/ WsgiDAV]
     53that might be more difficult to integrate wth the existing Tahoe code,
     54or write your own. In any case, WebDAV is a complicated protocol and
     55you will need to decide what subset of it gives most "bang for the buck"
     56and is practical to support in the time available. For example, locking
     57is optional in the WebDAV spec; is it needed to interoperate with commonly
     58used WebDAV clients?
     59
     60Unlike most filesystems which are constrained to be trees, the structure
     61of a Tahoe is in general a cyclic graph.
     62[http://tools.ietf.org/html/draft-ietf-webdav-bind draft-ietf-webdav-bind] is
     63an Internet Draft that clarifies how WebDAV servers should handle cycles.
     64
     65[http://savannah.nongnu.org/projects/davfs2 davfs2] is a FUSE-based
     66WebDAV filesystem client for Linux. To ensure that this runs correctly
     67over your implementation of WebDAV, you'll probably need to adapt the
     68tests 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
     71limitations that davfs2 would not).
     72
     73The [http://en.wikipedia.org/wiki/WebDAV#Microsoft_Windows WebDAV mini-redirector]
     74is the component of Windows providing its WebDAV filesystem support. It is
     75actually the less buggy of [http://www.zorched.net/2006/03/01/more-webdav-tips-tricks-and-bugs/
     76 two implementations], but it still has had
     77[http://greenbytes.de/tech/webdav/webdav-redirector-list.html bugs],
     78and
     79[http://www.microsoft.com/technet/security/bulletin/MS08-007.mspx security vulnerabilities]
     80that you may need to take into account.
     81
    3682
    3783== Server Selection ==
     
    86132 * Implement storage server protocol over HTTP. #510
    87133
     134
     135== Free The Windows Client ==
     136 * Make the [http://allmydata.org/trac/tahoe-w32-client Windows client] use only free open-source software. (Implementing WebDAV as described earlier is an alternative that would achieve a similar effect.)
     137
     138
     139== Connecting Tahoe-LAFS To Other Things ==
     140 * Filesystem access:
     141    * improve the FUSE frontend ([source:contrib/fuse source code]). [http://allmydata.org/trac/tahoe-lafs/query?status=!closed&order=priority&keywords=~fuse Tickets labelled 'fuse']
     142    * integrate Tahoe-LAFS with the GVFS Gnome virtual filesystem
     143 * Explore running a Tahoe-LAFS grid over [https://torproject.org Tor] or [https://i2p2.de I2P] to provide anonymity to servers and/or clients.
     144 * Rescue the neglected C client library [http://allmydata.org/trac/libtahoeclient_webapi libtahoeclient_webapi].
     145
     146
    88147== Building Things On Top Of Tahoe ==
    89148