#869 new enhancement

Allow Tahoe filesystem to be run over a different grid/DHT implementation — at Initial Version

Reported by: davidsarah Owned by: nobody
Priority: major Milestone: undecided
Component: code-network Version: 1.5.0
Keywords: scalability performance forward-compatibility backward-compatibility availability newcaps docs anti-censorship Cc:
Launchpad Bug:

Description

source:docs/architecture.txt describes Tahoe as comprising three layers: grid, filesystem, and application.

Most of what makes Tahoe different from other systems is in the filesystem layer -- the layer that implements a cryptographic capability filesystem. The grid layer implements a Distributed Hash Table, which is a fairly well-understood primitive with many implementations. The Tahoe filesystem and applications could in principle run on a different DHT, and it would still behave like Tahoe -- with different (perhaps better, depending on the DHT) scalability, performance, and availability properties, but with confidentiality and integrity ensured by Tahoe without relying on the DHT severs.

However, there are some obstacles to running the Tahoe filesystem layer on another DHT:

  • the code isn't strictly factored into layers (even though most code files belong mainly to one layer), so there isn't a narrow API between the grid and filesystem-related abstractions.
  • the communication with servers currently needs to be encrypted (independently of the share encryption), and other DHTs probably wouldn't support that.
  • because the filesystem has only been used with one grid layer up to now, it may make assumptions about that layer that haven't been clearly documented.

Note that even if the Tahoe code was strictly layered, we should still expect there to be some significant effort to port Tahoe to a particular DHT. The DHT servers would probably have to run some Tahoe code in order to verify shares, for example.

Change History (0)

Note: See TracTickets for help on using tickets.