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