]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blob - relnotes.txt
a couple of minor edits to relnotes.txt
[tahoe-lafs/tahoe-lafs.git] / relnotes.txt
1
2 Allmydata, Inc. [1], provider of the "Allmydata" consumer backup product, is
3 pleased announce the first public release of "Tahoe", a distributed storage
4 mesh with a free-software licence.
5
6 The source code that we are releasing is the current working prototype for
7 Allmydata's next-generation product.  This prototype is not recommended for
8 storage of confidential data nor for data which is not otherwise backed up,
9 but it is already implements a functional distributed storage mesh and is
10 useful for experimentation, prototyping, and extension.
11
12
13 INSTALLATION
14
15 This release of Tahoe passes all unit tests on Linux/x86, Linux/amd64,
16 Mac/Intel, Mac/PPC, Windows, and Cygwin.
17
18 To install, download the tarball [2], untar it, cd into the resulting
19 directory, and follow the directions in the README [3].
20
21
22 USAGE
23
24 Once installed, create a "client node" as described in the README.  Instruct
25 this client node to connect to a specific "introducer node" by means of
26 config files in the client node's working directory.  To join a public mesh,
27 copy in the .furl files for that mesh.  To create a private mesh, run your
28 own introducer, and copy the .furl files from there.
29
30 Each client node runs a local webserver (enabled by writing the desired port
31 number into a file called 'webport').  The front page of this webserver shows
32 the node's status, including which introducer is being used and which other
33 nodes are connected.  Links from the status page lead to others that give
34 access to a shared virtual filesystem, in which each directory is represented
35 by a separate page.  Each directory page shows a list of the files available
36 there, with download links, and forms to upload new files.
37
38 Other ways to access the filesystem are planned, as well as other structures
39 than the single globally-shared namespace implemented by this release: please
40 see the roadmap.txt for some rough details.
41
42
43 HACKING AND COMMUNITY
44
45 Please join the mailing list [4] to discuss the ideas behind Tahoe and
46 extensions of and uses of Tahoe.  Patches that extend and improve Tahoe are
47 gratefully accepted -- roadmap.txt [5] shows the next improvements that we
48 plan to make.  You can browse the revision control history, source code, and
49 issue tracking at the Trac instance [6].  Please note the buildbot results
50 page [7], which show how Tahoe builds and passes unit tests on each checkin,
51 and the code coverage results [8] and percentage-covered graph [9], which
52 show how much of the Tahoe source code is currently exercised the test suite.
53
54
55 LICENCE
56
57 Tahoe is offered under the GNU General Public License (v2).  It also comes
58 with the added permission that, in the case that you are obligated to release
59 a derived work under this licence (as per section 2.b of the GPLv2), you may
60 delay the fulfillment of this obligation for up to 12 months.
61
62
63 NETWORK ARCHITECTURE
64
65 Each peer maintains a connection to each other peer.  A single distinct
66 server called an "introducer" is used to discover other peers with which to
67 connect.
68
69 To store a file, the file is encrypted and erasure coded, and each resulting
70 share is uploaded to a different peer.  The secure hash of the encrypted file
71 and the encryption key are packed into a URI, knowledge of which is necessary
72 and sufficient to recover the file.
73
74 To fetch a file, starting with the URI, a subset of shares is downloaded from
75 peers, the file is reconstructed from the shares, and then decrypted.
76
77 A single distinct server called a "vdrive server" maintains a global share
78 mapping from pathnames/filenames to URIs.
79
80 We are well aware of the limitations of decentralization and scalability
81 inherent in this prototype.  In particular, the completely-connected property
82 of the mesh and the requirement of a single distinct introducer and vdrive
83 server limits the possible size of the mesh.  We have plans to loosen these
84 limitations (see roadmap.txt [5]).  Currently it should be noted that the
85 mesh already depends as little as possible on the accessibility and
86 correctness of the introduction server and the vdrive server.  Also note that
87 the choice of which servers to use is easily configured.
88
89
90 SOFTWARE ARCHITECTURE
91
92 Tahoe is a "from the ground-up" rewrite, inspired by Allmydata's existing
93 consumer backup service, written in Python.
94
95 It uses the Foolscap library [10] which provides a remote object protocol
96 inspired by the capability-secure "E" programming language [11].  Foolscap
97 allows us to express the intended behavior of the distributed mesh directly
98 in object-oriented terms while relying on a well-engineered, secure transport
99 layer.
100
101 The underlying networking is provided by the Twisted library [12].
102 Computationally intensive operations are performed in native compiled code,
103 such as the "zfec" library for fast erasure coding (also available
104 separately: [13]).
105
106
107 [1]  http://allmydata.com
108 [2]  http://allmydata.com/source/tahoe-0.1.0-0-UNSTABLE.tar.bz2
109 [3]  http://allmydata.com/source/tahoe/README
110 [4]  https://postman.allmydata.com/cgi-bin/mailman/listinfo/tahoe XYZ Zandr or someone: right URL?
111 [5]  http://allmydata.com/source/tahoe/roadmap.txt
112 [6]  http://allmydata.org/trac
113 [7]  http://allmydata.org/buildbot
114 [8]  http://allmydata.org/test-coverage
115 [9]  http://allmydata.org/test-coverage-graph
116 [10] http://twistedmatrix.com/trac/wiki/FoolsCap
117 [11] http://erights.org/
118 [12] http://twistedmatrix.com/
119 [13] http://allmydata.com/source/zfec