docs: relnotes for 0.7.0
This commit is contained in:
parent
e6382727fe
commit
9033d887a3
242
relnotes.txt
242
relnotes.txt
|
@ -1,189 +1,94 @@
|
||||||
NEW VERSION RELEASED -- Allmydata-Tahoe version 0.6.1
|
ANNOUNCING: Allmydata-Tahoe version 0.7
|
||||||
|
|
||||||
We are pleased to announce the release of version 0.6.1 of
|
We are pleased to announce the release of version 0.7 of allmydata.org
|
||||||
allmydata.org "Tahoe", a secure, decentralized storage grid under a
|
"Tahoe".
|
||||||
free-software licence. This is the successor to v0.6, which was
|
|
||||||
released September 24, 2007 (see [1]). This release focusses on
|
|
||||||
packaging, documentation, and usability improvements.
|
|
||||||
|
|
||||||
Since v0.6 we've made the following changes:
|
Tahoe is a secure, decentralized, fault-tolerant filesystem. All of
|
||||||
|
the source code is available under a Free Software, Open Source
|
||||||
|
licence (or two).
|
||||||
|
|
||||||
* Make the command-line tool it automatically stash its state in a
|
This filesystem is encrypted and distributed over multiple peers in
|
||||||
directory ("~/.tahoe" by default), and make it automatically get
|
such a way that it continues to work correctlly even when some of the
|
||||||
the capability to access your private vdrive from the state
|
peers are unavailable, malfunctioning, or malicious.
|
||||||
directory. (ticket #120)
|
|
||||||
|
|
||||||
* Add the "tahoe mv" command. (ticket #162)
|
This is the successor to Allmydata-Tahoe v0.6.1, which was released
|
||||||
|
October 15, 2007 [1].
|
||||||
|
|
||||||
* Rewrite the README and add README.win32 to make it clearer which
|
This release adds decentralized, encrypted directories and mutable
|
||||||
steps are required to build from source. (ticket #148)
|
files, making it the first release of Tahoe in which no part of the
|
||||||
|
filesystem is centralized. It also adds a FUSE interface, allowing
|
||||||
|
you to access a distributed Tahoe grid as if it were a normal local
|
||||||
|
filesystem.
|
||||||
|
|
||||||
* Establish port 8123 as the default web port on localhost so that
|
This is also the first release to be offered under a novel open source
|
||||||
people can share full URLs that start with
|
licence which allows people to redistributed proprietary derivatives
|
||||||
"http://localhost:8123/".
|
of Tahoe for a limited time.
|
||||||
|
|
||||||
* Update webapi.txt [2] to reflect the security fix from ticket #98.
|
|
||||||
|
|
||||||
* Add more automated performance measurements and graphs on the
|
|
||||||
Performance page [3].
|
|
||||||
|
|
||||||
* Rename the command-line tool from "allmydata-tahoe" to "tahoe".
|
|
||||||
(ticket #155)
|
|
||||||
|
|
||||||
We also improved numerous small issues in packaging, documentation,
|
|
||||||
usability, testing, and source code maintenance. For complete
|
|
||||||
details, see this web page which shows all the changes we made between
|
|
||||||
the last release and this one: [4].
|
|
||||||
|
|
||||||
Allmydata.org Tahoe v0.6.1 is compatible with Allmydata.org Tahoe
|
|
||||||
v0.6.
|
|
||||||
|
|
||||||
|
|
||||||
WHAT IS IT GOOD FOR?
|
WHAT IS IT GOOD FOR?
|
||||||
|
|
||||||
With Tahoe, you can store your files in a distributed way across a set
|
With Tahoe, you can distribute your filesystem across a set of
|
||||||
of computers, such that if some of the computers fail, you can
|
computers, such that if some of the computers fail or turn out to be
|
||||||
retrieve your data from the remaining computers. You can also
|
malicious, the filesystem continues to work from the remaining
|
||||||
securely share your files with other users.
|
computers. You can also share your files with other users, using a
|
||||||
|
strongly encrypted, capability-based access control scheme.
|
||||||
|
|
||||||
This release is targeted at hackers and users who are willing to use a
|
This release is targeted at hackers and smart users who are willing to
|
||||||
text-oriented web user interface, or a command-line user interface.
|
use a web user interface, a command-line user interface, or a FUSE
|
||||||
(Or a RESTful API. Just telnet to localhost and type HTTP requests to
|
interface. (Or a RESTful API. Just telnet to localhost and type HTTP
|
||||||
get started.)
|
requests to get started.)
|
||||||
|
|
||||||
Because this software is new, it is not yet recommended for storage of
|
Because this software is new, it is not yet recommended for storage of
|
||||||
highly confidential data nor for important data which is not otherwise
|
highly confidential data nor for valuable data which is not otherwise
|
||||||
backed up. Given that caveat, this software works and there are no
|
backed up. However, it works well in practice, it comes with extensive
|
||||||
major known security flaws which would compromise confidentiality or
|
unit tests, and there are no known security flaws which would
|
||||||
data integrity. (For a current description of all known security
|
compromise confidentiality or data integrity. (For a current
|
||||||
issues and an overview of Tahoe's security properties, please see the
|
description of all known security issues and an overview of Tahoe's
|
||||||
Security web page: [5].)
|
security properties, please see the Security web page: [2].)
|
||||||
|
|
||||||
This release of Tahoe is suitable for the "friendnet" use case [6].
|
This release of Tahoe is suitable for the "friendnet" use case [3] --
|
||||||
It is easy to set up a private grid which is securely shared among a
|
it is easy to create a filesystem spread over the computers of you
|
||||||
specific, limited set of friends. Files uploaded to this shared grid
|
and your friends so that you can share files and disk space with one
|
||||||
will be available to all friends, even when some of the computers are
|
another.
|
||||||
unavailable. It is also easy to encrypt individual files and
|
|
||||||
directories so that only designated recipients can read them.
|
|
||||||
|
|
||||||
|
|
||||||
LICENCE
|
LICENCE
|
||||||
|
|
||||||
Tahoe is offered under the GNU General Public License (v2 or later),
|
You may use this package under the GNU General Public License, version
|
||||||
with the added permission that, if you become obligated to release a
|
2 or, at your option, any later version. See the file "COPYING.GPL"
|
||||||
derived work under this licence (as per section 2.b), you may delay
|
for the terms of the GNU General Public License, version 2.
|
||||||
the fulfillment of this obligation for up to 12 months. If you are
|
|
||||||
obligated to release code under section 2.b of this licence, you are
|
You may use this package under the Transitive Grace Period Public
|
||||||
obligated to release it under these same terms, including the 12-month
|
Licence, version 1.0. The Transitive Grace Period Public Licence says
|
||||||
grace period clause.
|
that you may distribute proprietary derived works of Tahoe without
|
||||||
|
releasing the source code of that derived work for up to twelve
|
||||||
|
months, after which time you are obligated to release the source code
|
||||||
|
of the derived work under the Transitive Grace Period Public Licence.
|
||||||
|
See the file "COPYING.TGPPL.html" for the terms of the Transitive
|
||||||
|
Grace Period Public Licence, version 1.0.
|
||||||
|
|
||||||
|
(You may choose to use this package under the terms of either licence,
|
||||||
|
at your option.)
|
||||||
|
|
||||||
|
|
||||||
INSTALLATION
|
INSTALLATION
|
||||||
|
|
||||||
Tahoe works on Linux, Mac OS X, Windows, Cygwin, and Solaris. For
|
Tahoe works on Linux, Mac OS X, Windows, Cygwin, and Solaris. For
|
||||||
installation instructions please see the README [7].
|
installation instructions please see "doc/install.html" [4].
|
||||||
|
|
||||||
|
|
||||||
USAGE - web interface
|
|
||||||
|
|
||||||
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 grid, copy in the
|
|
||||||
.furl files for that grid. To create a private grid, run your own
|
|
||||||
introducer, and copy its .furl files. See the README for step-by-step
|
|
||||||
instructions.
|
|
||||||
|
|
||||||
Each client node can run a local webserver (enabled by writing the
|
|
||||||
desired port number into a file called 'webport'). The welcome page
|
|
||||||
of this webserver shows the node's status, including which introducer
|
|
||||||
is being used and which other nodes are connected.
|
|
||||||
|
|
||||||
Links from the welcome page lead to other pages that give access to a
|
|
||||||
virtual filesystem, in which each directory is represented by a
|
|
||||||
separate page. Each directory page shows a list of the files
|
|
||||||
available there, with download links, and forms to upload new files.
|
|
||||||
|
|
||||||
USAGE - command-line interface
|
|
||||||
|
|
||||||
Run "tahoe ls [VIRTUAL PATH NAME]" to list the contents of a virtual
|
|
||||||
directory. Run "tahoe get [VIRTUAL FILE NAME] [LOCAL FILE NAME]" to
|
|
||||||
download a file. Run "tahoe put [LOCAL FILE NAME] [VIRTUAL FILE
|
|
||||||
NAME]" to upload a file. Run "tahoe rm [VIRTUAL PATH NAME]" to unlink
|
|
||||||
a file or directory in the virtual drive. Run "tahoe --help" to learn
|
|
||||||
about more commands.
|
|
||||||
|
|
||||||
USAGE - other
|
|
||||||
|
|
||||||
You can control the filesystem through the RESTful web API [2]. Other
|
|
||||||
ways to access the filesystem are planned: please see the
|
|
||||||
roadmap.txt [8] for some plans.
|
|
||||||
|
|
||||||
|
|
||||||
HACKING AND COMMUNITY
|
HACKING AND COMMUNITY
|
||||||
|
|
||||||
Please join the mailing list [9] to discuss the ideas behind Tahoe and
|
Please join us on the mailing list [5] to discuss uses of Tahoe.
|
||||||
extensions of and uses of Tahoe. Patches that extend and improve
|
Patches that extend and improve Tahoe are gratefully accepted --
|
||||||
Tahoe are gratefully accepted -- roadmap.txt [8] shows the next
|
roadmap.txt [6] shows the next improvements that we plan to make and
|
||||||
improvements that we plan to make and CREDITS [10] lists the names of
|
CREDITS [7] lists the names of people who've contributed to the
|
||||||
people who've contributed to the project. The wiki Dev page [11]
|
project. The wiki Dev page [8] contains resources for hackers.
|
||||||
collects various hacking resources including revision history
|
|
||||||
browsing, automated test results, automated performance tests, graphs
|
|
||||||
of how many people are using the public test grid for how many files,
|
|
||||||
and more.
|
|
||||||
|
|
||||||
|
|
||||||
NETWORK ARCHITECTURE
|
|
||||||
|
|
||||||
Each peer maintains a connection to each other peer. A single
|
|
||||||
distinct server called an "introducer" is used to discover other peers
|
|
||||||
with which to connect.
|
|
||||||
|
|
||||||
To store a file, the file is encrypted and erasure coded, and each
|
|
||||||
resulting 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 decrypted.
|
|
||||||
|
|
||||||
A single distinct server called a "vdrive server" maintains a global
|
|
||||||
mapping from pathnames/filenames to URIs.
|
|
||||||
|
|
||||||
We are aware of certain limitations on decentralization and
|
|
||||||
scalability inherent in this version. In particular, the
|
|
||||||
completely-connected property of the grid and the requirement of a
|
|
||||||
single distinct introducer and vdrive server limits the possible size
|
|
||||||
of the grid. We have plans to loosen these limitations (see
|
|
||||||
roadmap.txt). Currently it should be noted that the grid already
|
|
||||||
depends as little as possible on the accessibility and correctness of
|
|
||||||
the introduction server and the vdrive server. Also note that the
|
|
||||||
choice of which servers to use is easily configured -- you can set up
|
|
||||||
a private grid for you and your friends as easily as connecting to our
|
|
||||||
public test grid.
|
|
||||||
|
|
||||||
|
|
||||||
SOFTWARE ARCHITECTURE
|
|
||||||
|
|
||||||
Tahoe is a "from the ground-up" rewrite, inspired by Allmydata's
|
|
||||||
existing consumer backup service as well as by its ancestor Mojo
|
|
||||||
Nation. It is primarily written in the Python programming language.
|
|
||||||
|
|
||||||
Tahoe is based on the Foolscap library [12] which provides a remote
|
|
||||||
object protocol inspired by the capability-secure "E" programming
|
|
||||||
language [13]. Foolscap allows us to express the intended behavior of
|
|
||||||
the distributed grid directly in object-oriented terms while relying
|
|
||||||
on a well-engineered, secure transport layer.
|
|
||||||
|
|
||||||
The network layer is provided by the Twisted library [14].
|
|
||||||
Computationally intensive operations are performed in native compiled
|
|
||||||
code, such as the "zfec" library for fast erasure coding (also
|
|
||||||
available separately: [15]).
|
|
||||||
|
|
||||||
|
|
||||||
SPONSORSHIP
|
SPONSORSHIP
|
||||||
|
|
||||||
Tahoe is sponsored by Allmydata, Inc. [16], a provider of consumer
|
Tahoe is sponsored by Allmydata, Inc. [9], a provider of consumer
|
||||||
backup services. Allmydata, Inc. contributes hardware, software,
|
backup services. Allmydata, Inc. contributes hardware, software,
|
||||||
ideas, bug reports, suggestions, demands, and money (employing several
|
ideas, bug reports, suggestions, demands, and money (employing several
|
||||||
allmydata.org Tahoe hackers and allowing them to spend part of their
|
allmydata.org Tahoe hackers and allowing them to spend part of their
|
||||||
|
@ -193,23 +98,16 @@ eternally grateful!
|
||||||
|
|
||||||
Zooko O'Whielacronx
|
Zooko O'Whielacronx
|
||||||
on behalf of the allmydata.org team
|
on behalf of the allmydata.org team
|
||||||
October 15, 2007
|
January 7, 2008
|
||||||
Boulder, Colorado
|
San Francisco, California
|
||||||
|
|
||||||
|
|
||||||
[1] http://allmydata.org/trac/tahoe/browser/relnotes.txt?rev=1346
|
[1] http://allmydata.org/trac/tahoe/browser/relnotes.txt?rev=1346
|
||||||
[2] http://allmydata.org/trac/tahoe/browser/docs/webapi.txt?rev=1428
|
[2] http://allmydata.org/trac/tahoe/wiki/Security
|
||||||
[3] http://allmydata.org/trac/tahoe/wiki/Performance
|
[3] http://allmydata.org/trac/tahoe/wiki/UseCases
|
||||||
[4] http://allmydata.org/trac/tahoe/timeline?from=2007-10-15&daysback=21&changeset=on&milestone=on&ticket=on&ticket_details=on&wiki=on
|
[4] http://allmydata.org/source/tahoe/trunk/docs/install.html
|
||||||
[5] http://allmydata.org/trac/tahoe/wiki/Security
|
[5] http://allmydata.org/cgi-bin/mailman/listinfo/tahoe-dev
|
||||||
[6] http://allmydata.org/trac/tahoe/wiki/UseCases
|
[6] http://allmydata.org/trac/tahoe/browser/roadmap.txt
|
||||||
[7] http://allmydata.org/trac/tahoe/browser/README?rev=1424
|
[7] http://allmydata.org/trac/tahoe/browser/CREDITS?rev=1424
|
||||||
[8] http://allmydata.org/trac/tahoe/browser/roadmap.txt
|
[8] http://allmydata.org/trac/tahoe/wiki/Dev
|
||||||
[9] http://allmydata.org/cgi-bin/mailman/listinfo/tahoe-dev
|
[9] http://allmydata.com
|
||||||
[10] http://allmydata.org/trac/tahoe/browser/CREDITS?rev=1424
|
|
||||||
[11] http://allmydata.org/trac/tahoe/wiki/Dev
|
|
||||||
[12] http://foolscap.lothar.com/trac
|
|
||||||
[13] http://erights.org/
|
|
||||||
[14] http://twistedmatrix.com/
|
|
||||||
[15] http://pypi.python.org/pypi/zfec
|
|
||||||
[16] http://allmydata.com
|
|
||||||
|
|
Loading…
Reference in New Issue