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