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