Tahoe
Introduction
What is Tahoe
Tahoe LAFS stands for Least Authority File Store. It is a cryptographic key value data store with very interesting features and a filesystem-like overlay:
- cryptographic capabilities model which acts like a distributed access control system
- erasure-encoding
- verified end-to-end crypto
You can use it to host and serve files or for your backups.
More information is available at:
This page is meant to be a resource of Tahoe knowledge. In the hope of making it as easy as possibly for others to start using it.
Installation (with Tor)
In the installation we configure Tahoe to use Tor. All services are Tor hidden services… such as the Tahoe-LAFS introducer and storage nodes.
Required Packages
> sudo apt-get install tor torsocks tahoe-lafs
Create Client
> tahoe create-client
or define the introducer right away:
> tahoe create-client --introducer=pb://ifwpslh5f4jx2s3tzkkj4cyymrcxcunz@bvkb2rnvjbep4sjz.onion:58086/introducer # XXX This command is dangerous because it creates a tahoe.cfg file that tries to "deanonymize" your IP address... # XXX You *MUST* set the node's "tub.location" parameter to prevent this deanonymization activity as documented here: # XXX https://github.com/david415/tahoe-lafs/blob/tor-i2p-documentation/docs/anonymity-configuration.rst#torsocks-the-old-way-of-configuring-tahoe-lafs-to-use-tor
Configuration
In this step we set the introducer (unless you already did with the tahoe create-client
command.
If you did configure the introducer you still have to set tub.location
correctly.
Replace tahoe.cfg with everything in https://gist.github.com/david415/7eca8611853caec30467 before “# this section below only works with the “truckee” feature branch” (line 23)
First Steps
Start & Stop Tahoe
> usewithtor tahoe start > tahoe stop
After starting it you open your browser and open 127.0.0.1:7657. This is very useful for diagnostics and some of the Tahoe functionality is available through it, too.
Create Alias
An alias is effectively the root directory of a partition. Before we can store anything a new alias has to be created.
> tahoe create-alias <PICK_A_NAME>
Operations on your Alias
The alias is always followed by a colon. Let assume we picked the alias myalias. Hence we address it as
myalias:
File system are similar to their Linux/Unix counterparts. To get the help for a specific one please enter the following on the command line (e.g. for ls):
> tahoe ls --help > tahoe help
List Files
> tahoe ls <ALIAS>: > tahoe ls <ALIAS>:<FOLDER>
Copying Files
Be aware of the colon again!!!
Copy a file to alias.
> tahoe cp <LOCAL_FILE_PATH> <ALIAS>:<DIRECTORY>
Copy a folder to alias.
> tahoe cp --recursie <LOCAL_FOLDER> <ALIAS>:<DIRECTORY>
Backup Files
Create Backup
> tahoe backup <FILE_OR_FOLDER> <ALIAS>:<BACKUP_DIRECTORY>
Afterwards we can ls the new backup folder
> tahoe ls <ALIAS>:<BACKUP_DIRECTORY>
Within it we now see two folders: Latest and Archves. Let's see what they contain.
> tahoe ls <ALIAS>:<BACKUP_FOLDER>/Latest > tahoe ls <ALIAS>:<BACKUP_FOLDER>/Archives
The Archive folder includes further directories with timestamped versions of our backup.
Backup Integrity
Tahoe spreads chunks of our files over different shares. Should too many shares go offline our backup will be lost. This is why we should check it's health on a regular basis. This is done with Tahoe's deep-check command.
> tahoe deep-check <ALIAS>:<BACKUP_FOLDER>
The resulting output looks like this:
> tahoe deep-check ouralias:bar3 > done: 4 objects checked, 4 healthy, 0 unhealthy
Shares will go offline. And there's also a happy threshold (defined in your tahoe.cfg
). Keeping our backup above the happy threshold is achieved by adding a parameter to the deep-check command.
> tahoe deep-check --repair <ALIAS>:<BACKUP_FOLDER>
Shares also have a garbage collection policy. When a file hasn't been accessed for too long it is elligible for removal. This prevents shares from running out of disk space too early.
To keep them alive you to renew their so calles lease.
> tahoe deep-check --repair --add-lease <ALIAS>: > tahoe deep-check --repair --add-lease <ALIAS>:<BACKUP_FOLDER> > tahoe deep-check --repair --add-lease <ALIAS>:<BACKUP_FOLDER>/<SUB_DIRECTORY>
Restore from Backup
Restoring files involves only a copy.
> tahoe cp <ALIAS>: <LOCAL_FOLDER> > tahoe cp <ALIAS>:<FOLDER> <LOCAL_FOLDER> > tahoe cp <ALIAS>:<FOLDER>/<FILE> <LOCAL_FOLDER>
Missing Sections
- links
- capabilities: description, usage, etc
- setup your own grid
- setup a node and add it to an existing grid