This wiki is now locked - both user registration and edits (except by admins) are disabled. We're currently migrating all the content to our new wiki. If you have time, please register and help us out!

You can still view the source code of every page. Once a page has been copied over to the new wiki, please add a link to it to MigratedPages (the only page which is still editable), to notify the admins to go and blank it.


FreenetFS - the Freenet Filesystem


Abstract


FreenetFS is an implementation (currently under development) of an experimental filesystem (or 'virtual disk' to windows folk) which maps Freenet accessibility into a virtual mountable filesystem.

The benefits of such a framework would include:

An example application of freenetfs:

Sources


Technical Overview


The initial implementation of FreenetFS (aka 'FreeDisk') uses the FUSE userspace filesystem framework, and is written in Python (for speed/ease of development, maintainability, and given Freenet request turnaround time, the overhead of Python becomes negligible).

I can see no reason at this point why FreenetFS would need to be reimplemented into other languages such as C or Java.

Initial versions will only run on platforms supported by FUSE, predominantly the major Linux distros.

There are 'virtual disk' SDKs for Windows, so some keen developer might like to wrap the FreenetFS core class to work within a Windows vdisk environment. Python is an easily extendable and embeddable language, so it should be no trouble to create thin Python shims within a windows vdisk framework, so the main FreenetFS codebase should be usable in both Windows and *nix scenarios.

Directory/File Hierarchy Model


So far, the proposed hierarchy is along the lines of:




[userdirs]
fred=freenet:USK@privateblah1/name
mary=freenet:USK@privateblah2/name

So reads from '/usr/fred/' become a read to '/keys/USK@publicblah1/name, and writes to /usr/fred become a write to '/privatekeys/USK@privateblah1'. The beauty of using USK keys here is that if you write anywhere in your own tree, a whole new ClientPutComplexDir will occur, and the entire tree will be updated as part of the next filesystem sync.



Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki