]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blob - relnotes.txt
relnotes.txt: add ticket #129
[tahoe-lafs/tahoe-lafs.git] / relnotes.txt
1 NEW VERSION RELEASED -- Allmydata-Tahoe version 0.6
2
3 We are pleased to announce the release of version 0.6 of allmydata.org
4 "Tahoe", a secure, decentralized storage grid under a free-software
5 licence.  This is the successor to v0.5.1, which was released 
6 August 8, 2007 (see [1]).
7
8 Since v0.5.1 we've made the following changes:
9
10  * Distribute shares more evenly onto servers -- this makes files more
11    reliable when there are few servers. (ticket #132)
12
13  * Package Tahoe with setuptools/easy_install.  This makes it so that
14    other libraries that Tahoe depends upon get automatically installed
15    when Tahoe is installed.  It also means that people who have Python
16    and the easy_install tool can execute "easy_install
17    allmydata-tahoe" on the command-line (including on Windows), and it
18    will download and install Tahoe. (tickets #82, 93, 130)
19
20  * Memory usage during download is now small, even if your node is
21    streaming the downloaded content to a dumb web browser over
22    HTTP. (ticket #129)
23
24  * Shares have a version number in them so that in the future we can
25    upgrade the share format without losing old data. (ticket #90)
26
27  * improved logging, thanks to Arno
28
29  * Shares now contain leases, which gives us the information to compute which
30    shares are safe to delete, but we haven't yet implemented deletion itself.
31    Eventually, this will enable client quota tracking. (tickets #119, #67)
32
33
34 For complete details, see this web page which shows all ticket
35 changes, repository checkins, and wiki changes from August 24 to
36 today, September 18: [2].
37
38 Allmydata.org Tahoe v0.6 is incompatible with Allmydata.org Tahoe
39 v0.5.1 because of the share format version number and the leases.
40
41
42 WHAT IS IT GOOD FOR?
43
44 With Tahoe, you can store your files in a distributed way across a set
45 of computers, such that if some of the computers fail or become
46 unavailable, you can still retrieve your data from the remaining
47 computers.  You can also securely share your files with other users.
48
49 This release is targeted at hackers and users who are willing to use a
50 text-oriented web user interface, or a command-line user interface.
51 (Or a RESTful API.  Just telnet to localhost and type HTTP requests to
52 get started.)
53
54 Because this software is new, it is not yet recommended for storage of
55 highly confidential data nor for important data which is not otherwise
56 backed up. Given that caveat, this software works and there are no
57 known security flaws which would compromise confidentiality or data
58 integrity.
59
60 This release of Tahoe is suitable for the "friendnet" use case [3].
61 It is easy to set up a private grid which is securely shared among a
62 specific, limited set of friends.  Files uploaded to this shared grid
63 will be available to all friends, even when some of the computers are
64 unavailable.  It is also easy to encrypt individual files and
65 directories so that only designated recipients can read them.
66
67
68 LICENCE
69
70 Tahoe is offered under the GNU General Public License (v2 or later),
71 with the added permission that, if you become obligated to release a
72 derived work under this licence (as per section 2.b), you may delay
73 the fulfillment of this obligation for up to 12 months.  If you are
74 obligated to release code under section 2.b of this licence, you are
75 obligated to release it under these same terms, including the 12-month
76 grace period clause.
77
78
79 INSTALLATION
80
81 This release of Tahoe works on Linux, Mac OS X, Windows, Cygwin, and
82 Solaris.  For installation instructions please see the README [4].
83
84
85 USAGE - web interface
86
87 Once installed, create a "client node".  Instruct this client node to
88 connect to a specific "introducer node" by means of config files in
89 the client node's working directory.  To join a grid, copy in the
90 .furl files for that grid.  To create a private grid, run your own
91 introducer, and copy its .furl files.  See the README for step-by-step
92 instructions.
93
94 Each client node can run a local webserver (enabled by writing the
95 desired port number into a file called 'webport').  The welcome page
96 of this webserver shows the node's status, including which introducer
97 is being used and which other nodes are connected.
98
99 Links from the welcome page lead to other pages that give access to a
100 virtual filesystem, in which each directory is represented by a
101 separate page.  Each directory page shows a list of the files
102 available there, with download links, and forms to upload new files.
103
104 USAGE - command-line interface
105
106 Run "allmydata-tahoe ls [VIRTUAL PATH NAME]" to list the contents of a
107 virtual directory.  Run "allmydata-tahoe get [VIRTUAL FILE NAME] [LOCAL FILE
108 NAME]" to download a file.  Run "allmydata-tahoe put [LOCAL FILE NAME]
109 [VIRTUAL FILE NAME]" to upload a file.  Run "allmydata-tahoe rm [VIRTUAL PATH
110 NAME]" to unlink a file or directory in the virtual drive.
111
112 USAGE - other
113
114 You can control the filesystem through the RESTful web API [5].  Other
115 ways to access the filesystem are planned: please see the 
116 roadmap.txt [6] for some plans.
117
118
119 HACKING AND COMMUNITY
120
121 Please join the mailing list [7] to discuss the ideas behind Tahoe and
122 extensions of and uses of Tahoe.  Patches that extend and improve
123 Tahoe are gratefully accepted -- roadmap.txt [6] shows the next
124 improvements that we plan to make and CREDITS [8] lists the names of
125 people who've contributed to the project.  The wiki Dev page [9]
126 collects various hacking resources including revision history
127 browsing, automated test results (including code coverage), automated
128 performance tests, graphs of how many people are using the public test
129 grid for how many files, and more.
130
131
132 NETWORK ARCHITECTURE
133
134 Each peer maintains a connection to each other peer.  A single
135 distinct server called an "introducer" is used to discover other peers
136 with which to connect.
137
138 To store a file, the file is encrypted and erasure coded, and each
139 resulting share is uploaded to a different peer.  The secure hash of
140 the encrypted file and the encryption key are packed into a URI,
141 knowledge of which is necessary and sufficient to recover the file.
142
143 To fetch a file, starting with the URI, a subset of shares is
144 downloaded from peers, the file is reconstructed from the shares, and
145 then decrypted.
146
147 A single distinct server called a "vdrive server" maintains a global
148 mapping from pathnames/filenames to URIs.
149
150 We are acutely aware of the limitations on decentralization and
151 scalability inherent in this version.  In particular, the
152 completely-connected property of the grid and the requirement of a
153 single distinct introducer and vdrive server limits the possible size
154 of the grid.  We have plans to loosen these limitations (see
155 roadmap.txt).  Currently it should be noted that the grid already
156 depends as little as possible on the accessibility and correctness of
157 the introduction server and the vdrive server.  Also note that the
158 choice of which servers to use is easily configured -- you can set up
159 a private grid for you and your friends as easily as connecting to our
160 public test grid.
161
162
163 SOFTWARE ARCHITECTURE
164
165 Tahoe is a "from the ground-up" rewrite, inspired by Allmydata's
166 existing consumer backup service.  It is primarily written in the
167 Python programming language.
168
169 Tahoe is based on the Foolscap library [10] which provides a remote
170 object protocol inspired by the capability-secure "E" programming
171 language [11].  Foolscap allows us to express the intended behavior of
172 the distributed grid directly in object-oriented terms while relying
173 on a well-engineered, secure transport layer.
174
175 The network layer is provided by the Twisted library [12].
176 Computationally intensive operations are performed in native compiled
177 code, such as the "zfec" library for fast erasure coding (also
178 available separately: [13]).
179
180
181 SPONSORSHIP
182
183 Tahoe is sponsored by Allmydata, Inc. [14], a provider of consumer
184 backup services.  Allmydata, Inc. contributes hardware, software,
185 ideas, bug reports, suggestions, demands, and money (employing several
186 allmydata.org Tahoe hackers and allowing them to spend part of their
187 work time on the next-generation, free-software project).  We are
188 eternally grateful!
189
190
191 Zooko O'Whielacronx and Brian Warner
192 on behalf of the allmydata.org Tahoe team
193 September 18, 2007
194 Boulder, Colorado and San Francisco, California
195
196
197 [1]  http://allmydata.org/trac/tahoe/browser/relnotes.txt?rev=1154
198 [2]  http://allmydata.org/trac/tahoe/timeline?from=2007-09-18&daysback=24&changeset=on&milestone=on&ticket=on&ticket_details=on&wiki=on&update=Update XXX UPDATE TIMESTAMPS BEFORE RELEASE PLEASE --Zooko
199 [3]  http://allmydata.org/trac/tahoe/wiki/UseCases
200 [4]  http://allmydata.org/trac/tahoe/browser/README?rev=1248 XXX UPDATE PATCH NUMBER BEFORE RELEASE PLEASE --Zooko
201 [5]  http://allmydata.org/trac/tahoe/browser/docs/webapi.txt?rev=1151
202 [6]  http://allmydata.org/trac/tahoe/browser/roadmap.txt
203 [7]  http://allmydata.org/cgi-bin/mailman/listinfo/tahoe-dev
204 [8]  http://allmydata.org/trac/tahoe/browser/CREDITS?rev=1122 XXX UPDATE PATCH NUMBER BEFORE RELEASE PLEASE --Zooko
205 [9]  http://allmydata.org/trac/tahoe/wiki/Dev
206 [10] http://twistedmatrix.com/trac/wiki/FoolsCap
207 [11] http://erights.org/
208 [12] http://twistedmatrix.com/
209 [13] http://allmydata.org/source/zfec/zfec/
210 [14] http://allmydata.com
211