= Documentation = == The Basics == * [http://allmydata.org/source/tahoe/trunk/docs/about.html about.html]: the shape of a Tahoe filesystem and the security properties that it offers * [source:docs/architecture.txt architecture.txt]: the design decisions that give the filesystem its current behavior * [wiki:UseCases UseCases]: the ways in which Tahoe should be useful * [wiki:Security Security]: known security issues and workarounds * [source:docs/webapi.txt webapi.txt]: everything you need to know to use Tahoe from your own program * [source:roadmap.txt roadmap.txt]: how the functionality has been incrementally improved so far, and what improvements we plan to make next * [source:docs/codemap.txt codemap.txt]: the software practices and organization of the source code * [source:docs/configuration.txt configuration.txt]: how to configure a tahoe node and what persistent state it creates == The Parade of Release Notes == * [source:relnotes.txt@2189 the release notes] announcing v0.8 on February 15, 2008, adding the "visibility" into the system and more user interfaces * [source:relnotes.txt@1805 the release notes] announcing v0.7 on January 8, 2008, featuring decentralized directories and mutable files, a FUSE interface, and new open source licensing options * [source:relnotes.txt@1438 the release notes] announcing v0.6.1 on October 15, 2007, including packaging, usability, and performance improvements * [source:relnotes.txt@1346 the release notes] announcing v0.6 on September 24, 2007, including improved performance and packaging * [source:relnotes.txt@1154 the release notes] announcing v0.5.1 on August 23, 2007, fixing a security problem in the Web API * [source:relnotes.txt@1129 the release notes] announcing v0.5 on August 17, 2007, including the Web API and the command-line interface * [source:relnotes.txt@864 the release notes] announcing v0.4 on June 29, 2007, including the new mutable, shareable, private directories * [source:relnotes.txt@790 the release notes] announcing v0.3 on June 6, 2007, including improved basic functionality * [source:relnotes.txt@686 the release notes] announcing v0.2, the first public release, on May 2, 2007 and giving a general overview of why the Tahoe project exists == Detailed Design Docs == * [source:docs/mutable.txt mutable.txt], explaining the interesting crypto tricks that go into secure distributed mutable files * FileEncoding, explaining how we turn files into shares, with verifiable hashes; This is mostly concerned with chunking and Merkle trees. * ShareEncoding, explaining how we turn a chunk into shares: Reed-Solomon, FEC, that stuff * The [http://allmydata.org/~warner/pycon-tahoe.html paper] presented at [http://us.pycon.org/2008/about/ PyCon2008], providing an overview of the Tahoe design, and the [http://allmydata.org/~warner/pycon-tahoe-slides.zip slides] (.zip) that were used for the presentation. == Outstanding Issues == * [wiki:PeerSelection 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) * 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?