[tahoe-lafs-trac-stream] [tahoe-lafs] #1811: 9P frontend

tahoe-lafs trac at tahoe-lafs.org
Tue Sep 18 23:56:17 UTC 2012


#1811: 9P frontend
------------------------------+---------------------------
 Reporter:  davidsarah        |          Owner:
     Type:  enhancement       |         Status:  new
 Priority:  major             |      Milestone:  undecided
Component:  code-frontend     |        Version:  1.9.2
 Keywords:  9p sftp pycrypto  |  Launchpad Bug:
------------------------------+---------------------------
 [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>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list