relnotes.txt: reflow to 70-char width

This commit is contained in:
Zooko O'Whielacronx 2007-07-04 18:59:26 -07:00
parent c34e321073
commit ccd92ddee8

View File

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