= Documentation = == The Basics == * [source:docs/architecture.txt architecture.txt], explaining the design decisions that have given the grid its current shape * [source:roadmap.txt roadmap.txt], showing how the functionality has been incrementally improved so far, and what improvements we plan to make next * [source:docs/codemap.txt codemap.txt], laying out the software design and the organization of the source code == The Parade of Release Notes == * [source:relnotes.txt@686 the release notes] announcing the first public release on May 2, 2007 and giving a general overview of why the Tahoe project exists * [source:relnotes.txt@790 the release notes] announcing the second public release on June 6, 2007 * [source:relnotes.txt@864 the release notes] announcing the third public release on June 29, 2007, including the new mutable, shareable, private directories == Detailed Design Docs == * TahoeIssues/FileTree, explaining how mutable, shareable, private directories are implemented (which requires interesting crypto) * TahoeIssues/FileEncoding, explaining how we turn files into shares, with verifiable hashes; This is mostly concerned with chunking and Merkle trees. * TahoeIssues/ShareEncoding, explaining how we turn a chunk into shares: Reed-Solomon, FEC, that stuff == Outstanding Issues == * TahoeIssues/PeerSelection, explaining how a Tahoe node chooses which other nodes to use for uploading and downloading files (which raises some unsolved issues in balancing scalability, robustness, performance, and simplicity) * TahoeIssues/ChangingFilesWhileCopyingThem : what are the semantics of the "upload" action? the upload takes non-zero time: what happens if the file is changed during that time?