]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blob - relnotes.txt
add some USAGE notes to the release notes, capitalize section headers, some small...
[tahoe-lafs/tahoe-lafs.git] / relnotes.txt
1
2 Allmydata, Inc. [1], provider of the "Allmydata" consumer backup product, is
3 pleased announce the first public release of "Tahoe", an open source
4 decentralized storage mesh.
5
6 The source code that we are releasing is the current working prototype for
7 Allmydata's next-generation product.  This prototype is not recommended for
8 storage of confidential data nor for data which is not otherwise backed up,
9 but it is already implements a functional decentralized storage mesh and is
10 useful for experimentation, prototyping, and extension.
11
12
13 INSTALLATION
14
15 This release of Tahoe is only supposed to work on Linux. It might actually
16 work on other platforms -- earlier development revisions have been used on
17 Windows, Cygwin, Mac/Intel, and Mac/PPC -- but not all of the unit tests
18 currently pass on all platforms (see "Hacking and Community", below), so
19 we're officially proclaiming that this release works on Linux and that we'll
20 get the other platforms working in the future.
21
22 To install, download the tarball [2], untar it, cd into the resulting
23 directory, and follow the directions in the README [3].
24
25
26 USAGE
27
28 Once installed, you will need to create a "client node" as described in the
29 README. You will instruct this client node to connect to a specific
30 "introducer node" by means of some config files in the client node's working
31 directory. To join a public mesh, copy in the .furl files for that mesh. To
32 create a private mesh, you will need to run your own introducer, and copy the
33 .furl files from there.
34
35 Each client node runs a local webserver (enabled by writing the desired port
36 number into a file called 'webport'). The front page of this webserver shows
37 the node's status, including which introducer is being used and which other
38 nodes are connected. Links from the status page lead to others that give
39 access to a shared virtual filesystem, in which each directory is represented
40 by a separate page. Each directory page shows a list of the files available
41 there, with download links, and forms to upload new files.
42
43 Other ways to access the filesystem are planned, as well as other structures
44 than the single globally-shared namespace implemented by this release: please
45 see the roadmap.txt for some rough details.
46
47
48 HACKING AND COMMUNITY
49
50 Please join the mailing list [4] to discuss the ideas behind Tahoe and
51 extensions of and uses of Tahoe.  Patches that extend and improve Tahoe are
52 gratefully accepted -- roadmap.txt [5] shows the next improvements that we
53 plan to make.  You can browse the revision control history, source code, and
54 issue tracking at the Trac instance [6].  Please note the buildbot results
55 page [7], which show how Tahoe builds and passes unit tests on each checkin,
56 and the code coverage results [8] and percentage-covered graph [9], which
57 show how much of the Tahoe source code is currently exercised the test suite.
58
59
60 LICENCE
61
62 Tahoe is offered under the GNU General Public License (v2).  It also comes
63 with the added permission that, in the case that you are obligated to release
64 a derived work under this licence (as per section 2.b of the GPLv2), you may
65 delay the fulfillment of this obligation for up to 12 months.
66
67
68 NETWORK ARCHITECTURE
69
70 Each peer maintains a connection to each other peer.  A single distinct
71 server called an "introducer" is used to discover other peers with which to
72 connect.
73
74 To store a file, the file is encrypted and erasure coded, and each resulting
75 share is uploaded to a different peer.  The secure hash of the encrypted file
76 and the encryption key are packed into a URI, knowledge of which is necessary
77 and sufficient to recover the file.
78
79 To fetch a file, starting with the URI, a subset of shares is downloaded from
80 peers, the file is reconstructed from the shares, and then decrypted.
81
82 A single distinct server called a "vdrive server" maintains a global share
83 mapping from pathnames/filenames to URIs.
84
85 We are well aware of the limitations of decentralization and scalability
86 inherent in this prototype.  In particular, the completely-connected property
87 of the mesh and the requirement of a single distinct introducer and vdrive
88 server limits the possible size of the mesh.  We have plans to loosen these
89 limitations (see roadmap.txt [5]).  Currently it should be noted that the
90 mesh already depends as little as possible on the accessibility and
91 correctness of the introduction server and the vdrive server.  Also note that
92 the choice of which servers to use is easily configured.
93
94
95 SOFTWARE ARCHITECTURE
96
97 Tahoe is a "from the ground-up" rewrite, inspired by Allmydata's existing
98 consumer backup service, written in Python.
99
100 It uses the Foolscap library [10] which provides a remote object protocol
101 inspired by the capability-secure "E" programming language [11].  Foolscap
102 allows us to express the intended behavior of the distributed mesh directly
103 in object-oriented terms while relying on a well-engineered, secure transport
104 layer.
105
106 The underlying networking is provided by the Twisted library [12].
107 Computationally intensive operations are performed in native compiled code,
108 such as the "zfec" library for fast erasure coding (also available
109 separately: [13]).
110
111
112 [1]  http://allmydata.com
113 [2]  http://allmydata.com/source/tahoe-0.1.0-0-UNSTABLE.tar.bz2
114 [3]  http://allmydata.com/source/tahoe/README
115 [4]  https://postman.allmydata.com/cgi-bin/mailman/listinfo/tahoe XYZ Zandr or someone: right URL?
116 [5]  http://allmydata.com/source/tahoe/roadmap.txt
117 [6]  http://allmydata.org/trac XYZ Brian: right URL?
118 [7]  http://allmydata.org/buildbot XYZ Brian: right URL?
119 [8]  http://allmydata.org/code coverage thingie XYZ Brian: right URL?
120 [9]  http://allmydata.org/munin XYZ Brian: right URL?
121 [10] http://twistedmatrix.com/trac/wiki/FoolsCap
122 [11] http://erights.org/
123 [12] http://twistedmatrix.com/
124 [13] http://allmydata.com/source/zfec