[tahoe-lafs-trac-stream] [Tahoe-LAFS] #1811: 9P frontend
Tahoe-LAFS
trac at tahoe-lafs.org
Sun Nov 1 21:59:48 UTC 2015
#1811: 9P frontend
-------------------------------+----------------------------------
Reporter: davidsarah | Owner:
Type: enhancement | Status: new
Priority: major | Milestone: undecided
Component: code-frontend | Version: 1.9.2
Resolution: | Keywords: 9p sftp pycrypto-lib
Launchpad Bug: |
-------------------------------+----------------------------------
Changes (by zooko):
* keywords: 9p sftp pycrypto => 9p sftp pycrypto-lib
Old description:
> [http://9p.cat-v.org/ 9P] is a POSIXish remote filesystem protocol
> somewhat like SFTP ([http://man.cat-v.org/plan_9/5/intro protocol spec]).
> This ticket is to write a 9P frontend that would probably be implemented
> alongside other frontend protocols — web-API, SFTP and FTP — as part of a
> gateway node.
>
> Just as we do for SFTP, we'd have to deal with the impedence mismatch
> between Tahoe's access control model and 9P's, by faking permissions
> sufficient to satisfy 9P clients. It is probably not necessary to
> distinguish owner, group and world permissions.
>
> There is a [http://mirtchovski.com/p9/py9p/index.php py9p library] we
> could use to implement the 9P server. It uses blocking socket calls but
> they're nicely factored into a single short class
> ([https://bitbucket.org/f2f/py9p/src/5c2eb7c7f28b/py9p/py9p.py#cl-170
> py9p.Sock]), so could easily be changed. It also depends on !PyCrypto;
> again this dependency is fairly nicely factored (into
> [https://bitbucket.org/f2f/py9p/src/5c2eb7c7f28b/py9p/pki.py py9p.pki]
> and [https://bitbucket.org/f2f/py9p/src/5c2eb7c7f28b/py9p/sk1.py#cl-61
> one method of py9p.sk1]) so could be changed to use pycryptopp, say.
>
> The [https://bitbucket.org/f2f/py9p/src/5c2eb7c7f28b/examples/localsrv.py
> local filesystem server example code] seems as though it would be
> reasonably easy to adapt to call into the [https://tahoe-lafs.org/trac
> /tahoe-lafs/browser/git/src/allmydata/frontends/sftpd.py#L947 SFTP
> frontend's internal POSIXish interface] (i.e. with the 9P server code
> taking the place of Twisted's SFTP server) instead of making OS calls.
New description:
[http://9p.cat-v.org/ 9P] is a POSIXish remote filesystem protocol
somewhat like SFTP ([http://man.cat-v.org/plan_9/5/intro protocol spec]).
This ticket is to write a 9P frontend that would probably be implemented
alongside other frontend protocols — web-API, SFTP and FTP — as part of a
gateway node.
Just as we do for SFTP, we'd have to deal with the impedence mismatch
between Tahoe's access control model and 9P's, by faking permissions
sufficient to satisfy 9P clients. It is probably not necessary to
distinguish owner, group and world permissions.
There is a [http://mirtchovski.com/p9/py9p/index.php py9p library] we
could use to implement the 9P server. It uses blocking socket calls but
they're nicely factored into a single short class
([https://bitbucket.org/f2f/py9p/src/5c2eb7c7f28b/py9p/py9p.py#cl-170
py9p.Sock]), so could easily be changed. It also depends on !PyCrypto;
again this dependency is fairly nicely factored (into
[https://bitbucket.org/f2f/py9p/src/5c2eb7c7f28b/py9p/pki.py py9p.pki] and
[https://bitbucket.org/f2f/py9p/src/5c2eb7c7f28b/py9p/sk1.py#cl-61 one
method of py9p.sk1]) so could be changed to use pycryptopp, say.
The [https://bitbucket.org/f2f/py9p/src/5c2eb7c7f28b/examples/localsrv.py
local filesystem server example code] seems as though it would be
reasonably easy to adapt to call into the [https://tahoe-lafs.org/trac
/tahoe-lafs/browser/git/src/allmydata/frontends/sftpd.py#L947 SFTP
frontend's internal POSIXish interface] (i.e. with the 9P server code
taking the place of Twisted's SFTP server) instead of making OS calls.
--
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1811#comment:3>
Tahoe-LAFS <https://Tahoe-LAFS.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list