]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blob - relnotes.txt
relnote.txt: update relnotes.txt for the v0.6.1 release
[tahoe-lafs/tahoe-lafs.git] / relnotes.txt
1 NEW VERSION RELEASED -- Allmydata-Tahoe version 0.6.1
2
3 We are pleased to announce the release of version 0.6.1 of
4 allmydata.org "Tahoe", a secure, decentralized storage grid under a
5 free-software licence.  This is the successor to v0.6, which was
6 released August 23, 2007 (see [1]).  This release focusses on
7 packaging, documentation, and usability improvements.
8
9 Since v0.6 we've made the following changes:
10
11  * Make the command-line tool it automatically stash its state in a
12    directory ("~/.tahoe" by default), and make it automatically get
13    the capability to access your private vdrive from the state
14    directory. (ticket #120)
15
16  * Add the "tahoe mv" command. (ticket #162)
17
18  * Rewrite the README and add README.win32 to make it clearer which
19    steps are required to build from source. (ticket #148)
20
21  * Establish port 8123 as the default web port on localhost so that
22    people can share full URLs that start with
23    "http://localhost:8123/".
24
25  * Update webapi.txt [2] to reflect the security fix from ticket #98.
26
27  * Add more automated performance measurements and graphs on the
28    Performance page [3].
29
30  * Rename the command-line tool from "allmydata-tahoe" to "tahoe".
31    (ticket #155)
32
33 We also improved numerous small issues in packaging, documentation,
34 usability, testing, and source code maintenance.  For complete
35 details, see this web page which shows all the changes we made between
36 the last release and this one: [4].
37
38 Allmydata.org Tahoe v0.6.1 is compatible with Allmydata.org Tahoe
39 v0.6.
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, you can
46 retrieve your data from the remaining computers.  You can also
47 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 major known security flaws which would compromise confidentiality or
58 data integrity.  (For a current description of all known security
59 issues and an overview of Tahoe's security properties, please see the
60 Security web page: [5].)
61
62 This release of Tahoe is suitable for the "friendnet" use case [6].
63 It is easy to set up a private grid which is securely shared among a
64 specific, limited set of friends.  Files uploaded to this shared grid
65 will be available to all friends, even when some of the computers are
66 unavailable.  It is also easy to encrypt individual files and
67 directories so that only designated recipients can read them.
68
69
70 LICENCE
71
72 Tahoe is offered under the GNU General Public License (v2 or later),
73 with the added permission that, if you become obligated to release a
74 derived work under this licence (as per section 2.b), you may delay
75 the fulfillment of this obligation for up to 12 months.  If you are
76 obligated to release code under section 2.b of this licence, you are
77 obligated to release it under these same terms, including the 12-month
78 grace period clause.
79
80
81 INSTALLATION
82
83 Tahoe works on Linux, Mac OS X, Windows, Cygwin, and Solaris.  For
84 installation instructions please see the README [7].
85
86
87 USAGE - web interface
88
89 Once installed, create a "client node".  Instruct this client node to
90 connect to a specific "introducer node" by means of config files in
91 the client node's working directory.  To join a grid, copy in the
92 .furl files for that grid.  To create a private grid, run your own
93 introducer, and copy its .furl files.  See the README for step-by-step
94 instructions.
95
96 Each client node can run a local webserver (enabled by writing the
97 desired port number into a file called 'webport').  The welcome page
98 of this webserver shows the node's status, including which introducer
99 is being used and which other nodes are connected.
100
101 Links from the welcome page lead to other pages that give access to a
102 virtual filesystem, in which each directory is represented by a
103 separate page.  Each directory page shows a list of the files
104 available there, with download links, and forms to upload new files.
105
106 USAGE - command-line interface
107
108 Run "tahoe ls [VIRTUAL PATH NAME]" to list the contents of a virtual
109 directory.  Run "tahoe get [VIRTUAL FILE NAME] [LOCAL FILE NAME]" to
110 download a file.  Run "tahoe put [LOCAL FILE NAME] [VIRTUAL FILE
111 NAME]" to upload a file.  Run "tahoe rm [VIRTUAL PATH NAME]" to unlink
112 a file or directory in the virtual drive.  Run "tahoe --help" to learn
113 about more commands.
114
115 USAGE - other
116
117 You can control the filesystem through the RESTful web API [2].  Other
118 ways to access the filesystem are planned: please see the 
119 roadmap.txt [8] for some plans.
120
121
122 HACKING AND COMMUNITY
123
124 Please join the mailing list [9] to discuss the ideas behind Tahoe and
125 extensions of and uses of Tahoe.  Patches that extend and improve
126 Tahoe are gratefully accepted -- roadmap.txt [8] shows the next
127 improvements that we plan to make and CREDITS [10] lists the names of
128 people who've contributed to the project.  The wiki Dev page [11]
129 collects various hacking resources including revision history
130 browsing, automated test results, automated performance tests, graphs
131 of how many people are using the public test grid for how many files,
132 and more.
133
134
135 NETWORK ARCHITECTURE
136
137 Each peer maintains a connection to each other peer.  A single
138 distinct server called an "introducer" is used to discover other peers
139 with which to connect.
140
141 To store a file, the file is encrypted and erasure coded, and each
142 resulting share is uploaded to a different peer.  The secure hash of
143 the encrypted file and the encryption key are packed into a URI,
144 knowledge of which is necessary and sufficient to recover the file.
145
146 To fetch a file, starting with the URI, a subset of shares is
147 downloaded from peers, the file is reconstructed from the shares, and
148 then decrypted.
149
150 A single distinct server called a "vdrive server" maintains a global
151 mapping from pathnames/filenames to URIs.
152
153 We are aware of certain limitations on decentralization and
154 scalability inherent in this version.  In particular, the
155 completely-connected property of the grid and the requirement of a
156 single distinct introducer and vdrive server limits the possible size
157 of the grid.  We have plans to loosen these limitations (see
158 roadmap.txt).  Currently it should be noted that the grid already
159 depends as little as possible on the accessibility and correctness of
160 the introduction server and the vdrive server.  Also note that the
161 choice of which servers to use is easily configured -- you can set up
162 a private grid for you and your friends as easily as connecting to our
163 public test grid.
164
165
166 SOFTWARE ARCHITECTURE
167
168 Tahoe is a "from the ground-up" rewrite, inspired by Allmydata's
169 existing consumer backup service as well as by its ancestor Mojo
170 Nation.  It is primarily written in the Python programming language.
171
172 Tahoe is based on the Foolscap library [12] which provides a remote
173 object protocol inspired by the capability-secure "E" programming
174 language [13].  Foolscap allows us to express the intended behavior of
175 the distributed grid directly in object-oriented terms while relying
176 on a well-engineered, secure transport layer.
177
178 The network layer is provided by the Twisted library [14].
179 Computationally intensive operations are performed in native compiled
180 code, such as the "zfec" library for fast erasure coding (also
181 available separately: [15]).
182
183
184 SPONSORSHIP
185
186 Tahoe is sponsored by Allmydata, Inc. [16], a provider of consumer
187 backup services.  Allmydata, Inc. contributes hardware, software,
188 ideas, bug reports, suggestions, demands, and money (employing several
189 allmydata.org Tahoe hackers and allowing them to spend part of their
190 work time on the next-generation, free-software project).  We are
191 eternally grateful!
192
193
194 Zooko O'Whielacronx
195 on behalf of the allmydata.org team
196 October 15, 2007
197 Boulder, Colorado
198
199
200 [1]  http://allmydata.org/trac/tahoe/browser/relnotes.txt?rev=1346
201 [2]  http://allmydata.org/trac/tahoe/browser/docs/webapi.txt?rev=1428
202 [3]  http://allmydata.org/trac/tahoe/wiki/Performance
203 [4]  http://allmydata.org/trac/tahoe/timeline?from=2007-10-15&daysback=21&changeset=on&milestone=on&ticket=on&ticket_details=on&wiki=on
204 [5]  http://allmydata.org/trac/tahoe/wiki/Security
205 [6]  http://allmydata.org/trac/tahoe/wiki/UseCases
206 [7]  http://allmydata.org/trac/tahoe/browser/README?rev=1424
207 [8]  http://allmydata.org/trac/tahoe/browser/roadmap.txt
208 [9]  http://allmydata.org/cgi-bin/mailman/listinfo/tahoe-dev
209 [10] http://allmydata.org/trac/tahoe/browser/CREDITS?rev=1424
210 [11] http://allmydata.org/trac/tahoe/wiki/Dev
211 [12] http://foolscap.lothar.com/trac
212 [13] http://erights.org/
213 [14] http://twistedmatrix.com/
214 [15] http://pypi.python.org/pypi/zfec
215 [16] http://allmydata.com