]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blob - relnotes.txt
relnotes.txt: v0.5.1
[tahoe-lafs/tahoe-lafs.git] / relnotes.txt
1 NEW VERSION RELEASED -- Allmydata-Tahoe version 0.5.1
2
3 We are pleased to announce the release of version 0.5.1 of
4 allmydata.org "Tahoe", a secure, decentralized storage grid under a
5 free-software licence.  This is a security patch to v0.5.0, which was
6 the follow-up to v0.4, which was released June 29, 2007 (see [1]).
7
8 Since v0.5.0 we've made the following changes:
9
10  * fixed security flaw in which XSS/XSRF attacks could disclose
11    private files or delete files (ticket #98)
12
13  * updated the webapi and the webapi.txt document for clarity and
14    easier access to read/write permission metadata (ticket #118)
15
16  * removed the --vdrive option from the command-line tools, since the
17    security fix makes the private vdrive unavailable to the
18    command-line tools; We will make it available again in a secure way
19    in a future release -- see ticket #120.
20
21 Since v0.4 we've made several improvements, including:
22
23  * a RESTful API for programming your Tahoe node in the language of
24    your choice [2]
25
26  * a command-line interface in the Unix style for uploading and
27    downloading files (ticket #53)
28
29  * ported to Solaris
30
31  * reduced the memory used when uploading large files (ticket #29)
32
33  * reduced the bandwidth and disk space used when uploading many small
34    files (tickets #80, 81, #85)
35
36  * added configurable erasure-coding parameters: how many total shares
37    to produce, and how many shares are required to reconstruct the
38    file (ticket #84)
39
40  * added configurable limits on how much disk space your node will
41    allocate for storing data on behalf of other peers (ticket #34)
42
43  * many bugs fixed and enhancements implemented
44
45 For complete details, see this web page which shows all ticket
46 changes, repository checkins, and wiki changes from June 29 to today,
47 August 23: [3].
48
49 Allmydata.org Tahoe v0.5.1 is compatible with Allmydata.org Tahoe
50 v0.5.0.  It is incompatible with v0.4 due to a change in the
51 formatting of URIs to make them more human-friendly.
52
53
54 WHAT IS IT GOOD FOR?
55
56 With Tahoe, you can store your files in a distributed way across a set
57 of computers, such that if some of the computers fail or become
58 unavailable, you can still retrieve your data from the remaining
59 computers.  You can also securely share your files with other users.
60
61 This release is targeted at hackers and users who are willing to use a
62 text-oriented web user interface, or a command-line user interface.
63 (Or a RESTful API.  Just telnet to localhost and type HTTP requests to
64 get started.)
65
66 Because this software is new, it is not yet recommended for storage of
67 highly confidential data nor for important data which is not otherwise
68 backed up. Given that caveat, this software works and there are no
69 known security flaws which would compromise confidentiality or data
70 integrity.
71
72 This release of Tahoe is suitable for the "friendnet" use case [4].
73 It is easy to set up a private grid which is securely shared among a
74 specific, limited set of friends.  Files uploaded to this shared grid
75 will be available to all friends, even when some of the computers are
76 unavailable.  It is also easy to encrypt individual files and
77 directories so that only designated recipients can read them.
78
79
80 LICENCE
81
82 Tahoe is offered under the GNU General Public License (v2 or later),
83 with the added permission that, if you become obligated to release a
84 derived work under this licence (as per section 2.b), you may delay
85 the fulfillment of this obligation for up to 12 months.  If you are
86 obligated to release code under section 2.b of this licence, you are
87 obligated to release it under these same terms, including the 12-month
88 grace period clause.
89
90
91 INSTALLATION
92
93 This release of Tahoe works on Linux, Mac OS X, Windows, Cygwin, and
94 Solaris.
95
96 To install, download the tarball [5], untar it, go into the resulting
97 directory, and follow the directions in the README [6].
98
99
100 USAGE - web interface
101
102 Once installed, create a "client node".  Instruct this client node to
103 connect to a specific "introducer node" by means of config files in
104 the client node's working directory.  To join a grid, copy in the
105 .furl files for that grid.  To create a private grid, run your own
106 introducer, and copy its .furl files.  See the README for step-by-step
107 instructions.
108
109 Each client node runs a local webserver (enabled by writing the
110 desired port number into a file called 'webport').  The welcome page
111 of this webserver shows the node's status, including which introducer
112 is being used and which other nodes are connected.  Links from the
113
114 Links from the welcome page lead to other pages that give access to a
115 virtual filesystem, in which each directory is represented by a
116 separate page.  Each directory page shows a list of the files
117 available there, with download links, and forms to upload new files.
118
119 USAGE - command-line interface
120
121 Run "allmydata-tahoe ls [VIRTUAL PATH NAME]" to list the contents of a
122 virtual directory.  Run "allmydata-tahoe get [VIRTUAL FILE NAME] [LOCAL FILE
123 NAME]" to download a file.  Run "allmydata-tahoe put [LOCAL FILE NAME]
124 [VIRTUAL FILE NAME]" to upload a file.  Run "allmydata-tahoe rm [VIRTUAL PATH
125 NAME]" to unlink a file or directory in the virtual drive.
126
127 USAGE - other
128
129 You can control the filesystem through the RESTful web API [2].  Other
130 ways to access the filesystem are planned: please see the roadmap.txt
131 [7] for some plans.
132
133
134 HACKING AND COMMUNITY
135
136 Please join the mailing list [8] to discuss the ideas behind Tahoe and
137 extensions of and uses of Tahoe.  Patches that extend and improve
138 Tahoe are gratefully accepted -- roadmap.txt shows the next
139 improvements that we plan to make and CREDITS lists the names of
140 people who've contributed to the project.  You can browse the revision
141 control history, source code, and issue tracking at the Trac instance
142 [9].  Please see the buildbot [10], which shows how Tahoe builds and
143 passes unit tests on each checkin, and the code coverage results [11]
144 and percentage-covered graph [12], which show how much of the Tahoe
145 source code is currently exercised by the test suite.
146
147
148 NETWORK ARCHITECTURE
149
150 Each peer maintains a connection to each other peer.  A single
151 distinct server called an "introducer" is used to discover other peers
152 with which to connect.
153
154 To store a file, the file is encrypted and erasure coded, and each
155 resulting share is uploaded to a different peer.  The secure hash of
156 the encrypted file and the encryption key are packed into a URI,
157 knowledge of which is necessary and sufficient to recover the file.
158
159 To fetch a file, starting with the URI, a subset of shares is
160 downloaded from peers, the file is reconstructed from the shares, and
161 then decrypted.
162
163 A single distinct server called a "vdrive server" maintains a global
164 mapping from pathnames/filenames to URIs.
165
166 We are acutely aware of the limitations of decentralization and
167 scalability inherent in this version.  In particular, the
168 completely-connected property of the grid and the requirement of a
169 single distinct introducer and vdrive server limits the possible size
170 of the grid.  We have plans to loosen these limitations (see
171 roadmap.txt).  Currently it should be noted that the grid already
172 depends as little as possible on the accessibility and correctness of
173 the introduction server and the vdrive server.  Also note that the
174 choice of which servers to use is easily configured -- you should be
175 able to set up a private grid for you and your friends almost as
176 easily as to connect to our public test grid.
177
178
179 SOFTWARE ARCHITECTURE
180
181 Tahoe is a "from the ground-up" rewrite, inspired by Allmydata's
182 existing consumer backup service.  It is primarily written in the
183 Python programming language.
184
185 Tahoe is based on the Foolscap library [13] which provides a remote
186 object protocol inspired by the capability-secure "E" programming
187 language [14].  Foolscap allows us to express the intended behavior of
188 the distributed grid directly in object-oriented terms while relying
189 on a well-engineered, secure transport layer.
190
191 The network layer is provided by the Twisted library [15].
192 Computationally intensive operations are performed in native compiled
193 code, such as the "zfec" library for fast erasure coding (also
194 available separately: [16]).
195
196 Tahoe is sponsored by Allmydata, Inc. [17], a provider of consumer
197 backup services.  Allmydata, Inc. contributes hardware, software,
198 ideas, bug reports, suggestions, demands, and money (employing several
199 allmydata.org Tahoe hackers and allowing them to spend part of their
200 work time on the next-generation, free-software project).  We are
201 eternally grateful!
202
203
204 Zooko O'Whielacronx
205 on behalf of the allmydata.org Tahoe team
206 August 23, 2007
207 Boulder, Colorado
208
209
210 [1]  http://allmydata.org/trac/tahoe/browser/relnotes.txt?rev=849
211 [2]  http://allmydata.org/trac/tahoe/browser/docs/webapi.txt
212 [3]  http://allmydata.org/trac/tahoe/timeline?from=2007-08-23&daysback=57&changeset=on&ticket=on&wiki=on&update=Update
213 [4]  http://allmydata.org/trac/tahoe/wiki/UseCases
214 [5]  http://allmydata.org/source/tahoe/tahoe-0.5.1.tar.gz
215 [6]  http://allmydata.org/trac/tahoe/browser/README?rev=1141
216 [7]  http://allmydata.org/trac/tahoe/browser/roadmap.txt
217 [8]  http://allmydata.org/cgi-bin/mailman/listinfo/tahoe-dev
218 [9]  http://allmydata.org/trac/tahoe
219 [10] http://allmydata.org/buildbot
220 [11] http://allmydata.org/tahoe-figleaf/figleaf/
221 [12] http://allmydata.org/tahoe-figleaf-graph/hanford.allmydata.com-tahoe_figleaf.html
222 [13] http://twistedmatrix.com/trac/wiki/FoolsCap
223 [14] http://erights.org/
224 [15] http://twistedmatrix.com/
225 [16] http://allmydata.org/trac/tahoe/browser/src/zfec
226 [17] http://allmydata.com
227