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