-Please join the mailing list [9] to discuss the ideas behind Tahoe and
-extensions of and uses of Tahoe. Patches that extend and improve
-Tahoe are gratefully accepted -- roadmap.txt [8] shows the next
-improvements that we plan to make and CREDITS [10] lists the names of
-people who've contributed to the project. The wiki Dev page [11]
-collects various hacking resources including revision history
-browsing, automated test results, automated performance tests, graphs
-of how many people are using the public test grid for how many files,
-and more.
-
-
-NETWORK ARCHITECTURE
-
-Each peer maintains a connection to each other peer. A single
-distinct server called an "introducer" is used to discover other peers
-with which to connect.
-
-To store a file, the file is encrypted and erasure coded, and each
-resulting share is uploaded to a different peer. The secure hash of
-the encrypted file and the encryption key are packed into a URI,
-knowledge of which is necessary and sufficient to recover the file.
-
-To fetch a file, starting with the URI, a subset of shares is
-downloaded from peers, the file is reconstructed from the shares, and
-then decrypted.
-
-A single distinct server called a "vdrive server" maintains a global
-mapping from pathnames/filenames to URIs.
-
-We are aware of certain limitations on decentralization and
-scalability inherent in this version. In particular, the
-completely-connected property of the grid and the requirement of a
-single distinct introducer and vdrive server limits the possible size
-of the grid. We have plans to loosen these limitations (see
-roadmap.txt). Currently it should be noted that the grid already
-depends as little as possible on the accessibility and correctness of
-the introduction server and the vdrive server. Also note that the
-choice of which servers to use is easily configured -- you can set up
-a private grid for you and your friends as easily as connecting to our
-public test grid.
-
-
-SOFTWARE ARCHITECTURE
-
-Tahoe is a "from the ground-up" rewrite, inspired by Allmydata's
-existing consumer backup service as well as by its ancestor Mojo
-Nation. It is primarily written in the Python programming language.
-
-Tahoe is based on the Foolscap library [12] which provides a remote
-object protocol inspired by the capability-secure "E" programming
-language [13]. Foolscap allows us to express the intended behavior of
-the distributed grid directly in object-oriented terms while relying
-on a well-engineered, secure transport layer.
-
-The network layer is provided by the Twisted library [14].
-Computationally intensive operations are performed in native compiled
-code, such as the "zfec" library for fast erasure coding (also
-available separately: [15]).