]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blob - relnotes.txt
relnotes.txt: formatting for thinner columns
[tahoe-lafs/tahoe-lafs.git] / relnotes.txt
1 NEW VERSION RELEASED
2
3 We are pleased to announce the release of version 0.3.0 of Allmydata-Tahoe, a
4 secure, decentralized storage grid under a free-software licence.  This is
5 the follow-up to v0.2 which was released May 2, 2007 (see [1]).
6
7 Since then we've made several improvements, including:
8
9  * fix IP address configuration so that you can run a node behind a firewall
10    or NAT box (ticket #22)
11
12  * better packaging, build process, command-line, documentation (tickets #8,
13    #21, #23, #35, #46, #51)
14
15  * handle the loss of peers during the upload process by uploading to the
16    remaining peers (ticket #17)
17
18  * display size of files (ticket #37) (thanks to Faried Nawaz)
19
20  * private storage -- upload a file without publishing its decryption key
21    (ticket #33) (thanks to Faried Nawaz)
22
23  * add Merkle-Tree authentication on ciphertext and on plaintext (ticket #64)
24
25  * enable SSL encryption on the connection between web browser and node
26    (ticket #55)
27
28  * improved unit tests including memory-usage tests
29
30  * faster unit tests (ticket #20)
31
32  * upgrade to a newer version of Foolscap, the remote object protocol
33
34
35 For complete details (there are other improvements that are not in the above
36 list), see this web page which shows all ticket changes, repository checkins,
37 and wiki changes from May 3 to today: [2].
38
39 Allmydata-Tahoe v0.3 is incompatible with v0.2 due to the new Merkle-Tree
40 authentication among other things.
41
42
43 WHAT IS IT GOOD FOR?
44
45 The source code that we are releasing is the current working prototype for
46 Allmydata's next-generation product.  This release is targeted at hackers and
47 users who are willing to use a minimal, text-oriented web user interface.
48
49 This software is not yet recommended for storage of highly confidential data
50 nor for important data which is not otherwise backed up, but it is useful for
51 experimentation, prototyping, and extension.
52
53 This release of Allmydata-Tahoe marks the first version which is be suitable
54 for Use Case #2: "groups of friends who want to share backup and
55 file-sharing" (see the wiki page "UseCases": [3]).  It is easy to set up a
56 private grid which is securely shared among a specific, limited set of
57 friends.  Files uploaded to this shared grid will be available to all
58 friends, even when some of the computers are unavailable.
59
60
61 LICENCE
62
63 Tahoe is offered under the GNU General Public License (v2 or later), with the
64 added permission that, if you become obligated to release a derived work
65 under this licence (as per section 2.b), you may delay the fulfillment of
66 this obligation for up to 12 months.
67
68
69 INSTALLATION
70
71 This release of Tahoe works on Linux/x86, Linux/amd64, Mac/Intel, Mac/PPC,
72 Windows-native, and Cygwin.
73
74 To install, download the tarball [4], untar it, go into the resulting
75 directory, and follow the directions in the README [5].
76
77
78 USAGE
79
80 Once installed, create a "client node".  Instruct this client node to
81 connect to a specific "introducer node" by means of config files in the
82 client node's working directory.  To join a public grid, copy in the .furl
83 files for that grid.  To create a private grid, run your own introducer, and
84 copy its .furl files.  See the README for step-by-step instructions.
85
86 Each client node runs a local webserver (enabled by writing the desired port
87 number into a file called 'webport').  The front page of this webserver
88 shows the node's status, including which introducer is being used and which
89 other nodes are connected.  Links from the status page lead to others that
90 give access to a shared virtual filesystem, in which each directory is
91 represented by a separate page.  Each directory page shows a list of the
92 files available there, with download links, and forms to upload new files.
93
94 Other ways to access the filesystem are planned, as well as other structures
95 than the single globally-shared namespace implemented by this release:
96 please see the roadmap.txt [6] for some rough details.
97
98
99 HACKING AND COMMUNITY
100
101 Please join the mailing list [7] to discuss the ideas behind Tahoe and
102 extensions of and uses of Tahoe.  Patches that extend and improve Tahoe are
103 gratefully accepted -- roadmap.txt shows the next improvements that we plan
104 to make.  You can browse the revision control history, source code, and issue
105 tracking at the Trac instance [8].  Please see the buildbot [9], which shows
106 how Tahoe builds and passes unit tests on each checkin, and the code coverage
107 results [10] and percentage-covered graph [11], which show how much of the
108 Tahoe source code is currently exercised by the test suite.
109
110
111 NETWORK ARCHITECTURE
112
113 Each peer maintains a connection to each other peer.  A single distinct
114 server called an "introducer" is used to discover other peers with which to
115 connect.
116
117 To store a file, the file is encrypted and erasure coded, and each resulting
118 share is uploaded to a different peer.  The secure hash of the encrypted file
119 and the encryption key are packed into a URI, knowledge of which is necessary
120 and sufficient to recover the file.
121
122 To fetch a file, starting with the URI, a subset of shares is downloaded from
123 peers, the file is reconstructed from the shares, and then decrypted.
124
125 A single distinct server called a "vdrive server" maintains a global mapping
126 from pathnames/filenames to URIs.
127
128 We are acutely aware of the limitations of decentralization and scalability
129 inherent in this version.  In particular, the completely-connected property
130 of the grid and the requirement of a single distinct introducer and vdrive
131 server limits the possible size of the grid.  We have plans to loosen these
132 limitations (see roadmap.txt).  Currently it should be noted that the grid
133 already depends as little as possible on the accessibility and correctness of
134 the introduction server and the vdrive server.  Also note that the choice of
135 which servers to use is easily configured -- you should be able to set up a
136 private grid for you and your friends almost as easily as to connect to our
137 public test grid.
138
139
140 SOFTWARE ARCHITECTURE
141
142 Tahoe is a "from the ground-up" rewrite, inspired by Allmydata's existing
143 consumer backup service.  It is primarily written in the Python programming
144 language.
145
146 Tahoe is based on the Foolscap library [12] which provides a remote object
147 protocol inspired by the capability-secure "E" programming language [13].
148 Foolscap allows us to express the intended behavior of the distributed grid
149 directly in object-oriented terms while relying on a well-engineered, secure
150 transport layer.
151
152 The network layer is provided by the Twisted library [14].  Computationally
153 intensive operations are performed in native compiled code, such as the
154 "zfec" library for fast erasure coding (also available separately: [15]).
155
156 Tahoe is sponsored by Allmydata, Inc. [16], a provider of consumer backup
157 services.  Allmydata, Inc. contributes hardware, software, ideas, bug
158 reports, suggestions, demands, and money (employing several Allmydata-Tahoe
159 hackers and allowing them to spend part of their work time on the
160 next-generation, free-software project).  We are eternally grateful!
161
162
163 Zooko O'Whielacronx
164 on behalf of the Allmydata-Tahoe team
165 June 11, 2007
166 San Francisco
167
168
169 [1]  http://allmydata.org/trac/tahoe/browser/relnotes.txt?rev=686
170 [2]  http://allmydata.org/trac/tahoe/timeline?from=06%2F11%2F2007&daysback=39&changeset=on&milestone=on&ticket=on&wiki=on&update=Update
171 [3]  http://allmydata.org/trac/tahoe/wiki/UseCases
172 [4]  http://allmydata.org/source/tahoe/tahoe-0.3.tar.gz
173 [5]  http://allmydata.org/trac/tahoe/browser/README?rev=748
174 [6]  http://allmydata.org/trac/tahoe/browser/roadmap.txt
175 [7]  http://allmydata.org/cgi-bin/mailman/listinfo/tahoe-dev
176 [8]  http://allmydata.org/trac/tahoe
177 [9]  http://allmydata.org/buildbot
178 [10] http://allmydata.org/tahoe-figleaf/figleaf/
179 [11] http://allmydata.org/tahoe-figleaf-graph/hanford.allmydata.com-tahoe_figleaf.html
180 [12] http://twistedmatrix.com/trac/wiki/FoolsCap
181 [13] http://erights.org/
182 [14] http://twistedmatrix.com/
183 [15] http://allmydata.org/trac/tahoe/browser/src/zfec
184 [16] http://allmydata.com
185