|| ||Zooko O'Whielacronx <zooko-AT-zooko.com>|
|| ||announcing Allmydata-Tahoe v0.4|
|| ||Fri, 29 Jun 2007 18:22:24 -0600|
NEW VERSION RELEASED
We are pleased to announce the release of version 0.4 of Allmydata-
secure, decentralized storage grid under a free-software licence.
the follow-up to v0.3 which was released June 6, 2007 (see ).
Since then we've made several improvements, including:
* Add encrypted, mutable directories, so that you can organize your
into directories, change the contents of directories, and share your
directories with your friends, without thereby sharing your
with anyone else -- not even with the owners of the servers that
* make it so that web browsers can connect to the Tahoe node securely
https (ticket #55)
For complete details, see this web page which shows all ticket changes,
repository checkins, and wiki changes from June 11 to today, June 29:
Allmydata-Tahoe v0.4 is incompatible with v0.3 due to the new encrypted
directory structure, among other things. (Note that this applies
directories -- individual files uploaded with v0.3 are probably
WHAT IS IT GOOD FOR?
The source code that we are releasing is the current working
Allmydata's next-generation product. This release is targeted at
and users who are willing to use a minimal, text-oriented web user
This software is not yet recommended for storage of highly
nor for important data which is not otherwise backed up, but it is
for experimentation, prototyping, and extension.
This release of Allmydata-Tahoe is suitable for Use Case #2: "groups of
friends who want to share backup and file-sharing" (see the wiki page
"UseCases": ). It is easy to set up a private grid which is securely
shared among a specific, limited set of friends. Files uploaded to this
shared grid will be available to all friends, even when some of the
computers are unavailable. It is also easy to use a public grid, but to
encrypt individual files and directories so that only intended
can read them.
Tahoe is offered under the GNU General Public License (v2 or later),
the added permission that, if you become obligated to release a
under this licence (as per section 2.b), you may delay the
this obligation for up to 12 months.
This release of Tahoe works on Linux/x86, Linux/amd64, Mac/Intel, Mac/
Windows-native, and Cygwin.
To install, download the tarball , untar it, go into the resulting
directory, and follow the directions in the README .
Once installed, create a "client node". Instruct this client node to
connect to a specific "introducer node" by means of config files in the
client node's working directory. To join a public grid, copy in
files for that grid. To create a private grid, run your own
copy its .furl files. See the README for step-by-step instructions.
Each client node runs a local webserver (enabled by writing the
number into a file called 'webport'). The front page of this webserver
shows the node's status, including which introducer is being used and
other nodes are connected. Links from the status page lead to others
give access to a shared virtual filesystem, in which each directory is
represented by a separate page. Each client node also has a separate
(non-shared) virtual filesystem. Each directory page shows a list of
files available there, with download links, and forms to upload new
Other ways to access the filesystem are planned: please see the
 for some rough details.
HACKING AND COMMUNITY
Please join the mailing list  to discuss the ideas behind Tahoe and
extensions of and uses of Tahoe. Patches that extend and improve
gratefully accepted -- roadmap.txt shows the next improvements that
to make and CREDITS lists the names of people who've contributed to the
project. You can browse the revision control history, source code, and
issue tracking at the Trac instance . Please see the buildbot
shows how Tahoe builds and passes unit tests on each checkin, and the
coverage results  and percentage-covered graph , which show
of the Tahoe source code is currently exercised by the test suite.
Each peer maintains a connection to each other peer. A single distinct
server called an "introducer" is used to discover other peers with
To store a file, the file is encrypted and erasure coded, and each
share is uploaded to a different peer. The secure hash of the encrypted
file and the encryption key are packed into a URI, knowledge of which is
necessary and sufficient to recover the file.
To fetch a file, starting with the URI, a subset of shares is downloaded
from peers, the file is reconstructed from the shares, and then
A single distinct server called a "vdrive server" maintains a global
from pathnames/filenames to URIs.
We are acutely aware of the limitations of decentralization and
inherent in this version. In particular, the completely-connected
of the grid and the requirement of a single distinct introducer and
server limits the possible size of the grid. We have plans to loosen
limitations (see roadmap.txt). Currently it should be noted that the
already depends as little as possible on the accessibility and
of the introduction server and the vdrive server. Also note that the
of which servers to use is easily configured -- you should be able to
a private grid for you and your friends almost as easily as to
our public test grid.
Tahoe is a "from the ground-up" rewrite, inspired by Allmydata's
consumer backup service. It is primarily written in the Python
Tahoe is based on the Foolscap library  which provides a remote
protocol inspired by the capability-secure "E" programming language
Foolscap allows us to express the intended behavior of the
directly in object-oriented terms while relying on a well-engineered,
The network layer is provided by the Twisted library .
intensive operations are performed in native compiled code, such as the
"zfec" library for fast erasure coding (also available separately:
Tahoe is sponsored by Allmydata, Inc. , a provider of consumer
services. Allmydata, Inc. contributes hardware, software, ideas, bug
reports, suggestions, demands, and money (employing several Allmydata-
hackers and allowing them to spend part of their work time on the
next-generation, free-software project). We are eternally grateful!
Zooko O'Whielacronx and Brian Warner
on behalf of the Allmydata-Tahoe team
June 29, 2007
Boulder, Colorado and San Francisco, California
to post comments)