I'm one of the developers on the Tahoe-LAFS project --
http://tahoe-lafs.org . Tahoe-LAFS is a secure distributed cloud
storage system. All of the data is encrypted and digitally signed
before it is uploaded and spread redundantly across a set of storage
servers, so the user isn't vulnerable to the owners of the storage
servers snooping on or corrupting their data.
The API to read and write data is a RESTful HTTP protocol, so it is
possible for JavaScript web apps to load and store their code and data
on Tahoe-LAFS. The result is what I call "a decentralized web app".
All of the application-specific computation is done in JavaScript in
the user's browser, and all of the storage is encrypted, digitally
signed, and decentralized. There is no server! At least, no server the
failure of which can damage, corrupt, or take down the web app.
My blog is an example of this kind of software:
Now, the "pubgrid.tahoe-lafs.org" in that URL should make you wonder
-- isn't that a server that my blog relies on? Well, that thing is a
stateless process which doesn't store any of the actual data and which
is easily replaced. If you download Tahoe-LAFS onto your local system
and build it (http://tahoe-lafs.org/source/tahoe-lafs/trunk/docs/quickstart.html
), then you can replace "pubgrid.tahoe-lafs.org" with "127.0.0.1:3456"
and get the same result:
I don't really understand the architecture of unhosted yet, but since
unhosted and Tahoe-LAFS have similar high-level goals, I hope it is
possible to combine the two tools.
The API for manipulating data stored in Tahoe-LAFS is documented here:
http://tahoe-lafs.org/trac/tahoe-lafs/browser/trunk/docs/frontends/webapi.rst
Regards,
Zooko
It's ironic that now that i'm working at my own custom file system at
my sparse time one of the developers of Tahoe want to collaborate on
UnHosted... :-P
> I don't really understand the architecture of unhosted yet, but since
> unhosted and Tahoe-LAFS have similar high-level goals, I hope it is
> possible to combine the two tools.
At this moment UnHosted storage structure is simply related to GET/SET
methods of key-value pairs (apart from SEND/RECEIVE methods for
messages) as a proof of concept, but we are at version 0.1 so it will
probably grow up in the future.
--
"Si quieres viajar alrededor del mundo y ser invitado a hablar en un
monton de sitios diferentes, simplemente escribe un sistema operativo
Unix."
– Linus Tordvals, creador del sistema operativo Linux