[freenet-chat] Towards a Freenet Filesystem
David McNab
david at rebirthing.co.nz
Mon May 22 20:38:17 UTC 2006
Hi,
Your ideas are needed.
I'm in the early stages of implementing a linux filesystem for freenet,
based on the FUSE (userspace filesystem) framework.
The idea is to empower users and app developers, so they can type:
$ mount -t freenetfs /dev/fuse /mnt/freenet -o <options>
or alternatively, have in their /etc/fstab the entry:
/dev/fuse /mnt/freenet freenetfs <options> 0 0
and end up with freenet mounted at /mnt/freenet
The purpose is to allow seamless integration with freenet of any
application which accesses the filesystem. One use of this would be
allowing people to edit sensitive OpenOffice documents, and store
the files completely within freenet, and allow others to read these
anonymously.
So far, I'm thinking through some options for a directory tree model,
and here's what I've got so far:
/
- the root (d'oh)
/keys/
- returns empty directory listing
/keys/KSK at somekey
/keys/SSK at anotherkey/name
/keys/USK at yetanotherkey/name/version
/keys/CHK at yetanotherfreakinkey
- performs a GET of the given key from freenet, and allows it
to be read like a file. First line is <mimetype>\n
/privatekeys/SSK at anotherkeyprivate/name
- the filename 'SSK at anotherkeyprivate' is the private key
corresponding to /keys/SSK at anotherkey/name
- reading from this file produces a single line, the equivalent
public key
- writing to this file performs a freenet PUT. First line written
should be <mimetype>\n, then the raw key data
/cmd/
- a pseudo-directory allowing commands to be sent to the fs, via
reading/writing pseudo-files
/cmd/genkey
- reading this file produces an SSK@ keypair
/usr/
- contains a set of named subdirectories, where the mapping of
physical freenet key to logical name is governed by config
file settings, such as:
[userdirs]
fred=freenet:USK at privateblah1/name
mary=freenet:USK at privateblah2/name
so reads from '/usr/fred/' become a read to
'/keys/USK at publicblah1/name, and writes to /usr/fred
become a write to '/privatekeys/USK at privateblah1'.
If anyone gets some ideas to improve this model, please reply to this
thread.
--
Cheers
David
More information about the chat
mailing list