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