mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-01-30 16:13:58 +00:00
relnotes.txt: reflow to 70-char width
This commit is contained in:
parent
c34e321073
commit
ccd92ddee8
201
relnotes.txt
201
relnotes.txt
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user