The Tahoe-LAFS decentralized secure filesystem.
Go to file
Brian Warner f11769560c test.mutable.Update: stop exercising max_shares
Many of the test cases would exercise two copies of each file: one with
k=3/N=10, and a second with k=127/N=255 (255 being the maximum supported
by zfec).

Large number of shares increases the overhead of the testing apparatus,
which is pushing those shares to lots of local servers.

I don't think the "max_shares" case is necessary, and it takes forever.
Because of it, "mutable.Update" was consuming 15% of the total test
runtime, and a third of that was just a single
function (test_replace_locations_max_shares, now deleted). On a
Raspberry Pi 3 (our "slow computer" benchmark), including branch
coverage, this one class took 42 minutes to complete, and requires
disabling a bunch of timeouts to finish at all.

The total number of shares in a file ("N") affects one thing: the
width (and thus height) of the share hash tree. This should be exercised
in test_hashtree.

The number of required shares ("k") affects one thing: the segment size
must be a multiple of k. I don't think we need to exercise this, but if
so, it could be exercised by a few small values for k, rather than 127.

Removing the max_shares cases saves 82% of the mutable.update
runtime (on top of the previous three-segment fix), reducing it from 64s
to 11.3s on my laptop.
2016-08-03 15:32:01 -04:00
docs Add multi-party-conflict-detection.rst. 2016-07-21 12:35:59 -07:00
misc remove pickle-based stats output altogether 2016-04-27 17:27:33 -07:00
src/allmydata test.mutable.Update: stop exercising max_shares 2016-08-03 15:32:01 -04:00
static Eliminate mock dependency. 2015-07-17 22:12:25 +01:00
topfiles Split control and log to two separate tubs, remove control knobs. 2016-07-06 21:09:35 -07:00
.appveyor.yml turn on appveyor CI 2016-03-15 13:02:56 -07:00
.coveragerc tox: add "coverage" environment 2016-05-09 14:32:21 -07:00
.gitignore .gitignore: add /smoke_magicfolder/, delete obsolete stuff. 2016-07-21 12:35:59 -07:00
.travis.yml travis: Disable coverage on OS-X build, times out 2016-07-21 15:07:46 -07:00
COPYING.GPL Fix repeated 'the' in license text. 2011-08-19 13:48:36 -07:00
COPYING.TGPPL.rst magic first line tells emacs to use utf8+bom 2013-11-08 21:08:05 +00:00
CREDITS CREDITS: update 2016-03-30 16:09:12 -07:00
Dockerfile Dockerfile: git-pull more history, to get a version string 2015-06-15 14:40:19 -07:00
Makefile smoketest for magic-folder functionality 2016-07-21 12:35:59 -07:00
MANIFEST.in tox.ini missing from MANIFEST 2016-04-12 19:46:49 -06:00
NEWS.rst NEWS: release 1.11.0 2016-03-30 16:09:28 -07:00
README.rst docs are now at readthedocs.io 2016-04-27 23:12:18 -07:00
relnotes.txt relnotes, docs: post-release fixups 2016-03-30 17:27:44 -07:00
setup.cfg setup.cfg: remove --find-links 2016-03-26 12:23:01 -07:00
setup.py split test_mutable.py into smaller files 2016-08-03 14:54:32 -04:00
Tahoe.home rename bin/allmydata-tahoe to bin/tahoe. Closes #155. 2007-10-11 03:38:24 -07:00
tox.ini tox: add pyflakes, which was accidentally removed from CI 2016-07-19 17:30:50 -07:00

Tahoe-LAFS

Tahoe-LAFS is a Free and Open decentralized cloud storage system. It distributes your data across multiple servers. Even if some of the servers fail or are taken over by an attacker, the entire file store continues to function correctly, preserving your privacy and security.

For full documentation, please see http://tahoe-lafs.readthedocs.io/en/latest/ .

documentation status build status test coverage percentage

INSTALLING

Pre-packaged versions are available for several operating systems:

  • Debian and Ubuntu users can apt-get install tahoe-lafs
  • NixOS, NetBSD (pkgsrc), ArchLinux, Slackware, and Gentoo have packages available, see OSPackages for details
  • Mac and Windows installers are in development.

If you don't use an OS package, you'll need Python 2.7 and pip. You may also need a C compiler, and the development headers for python, libffi, and OpenSSL. On a Debian-like system, use apt-get install build-essential python-dev libffi-dev libssl-dev python-virtualenv. On Windows, see docs/windows.rst.

Then, to install the most recent release, just run:

  • pip install tahoe-lafs

To install from source (either so you can hack on it, or just to run pre-release code), you should create a virtualenv and install into that:

  • git clone https://github.com/tahoe-lafs/tahoe-lafs.git
  • cd tahoe-lafs
  • virtualenv venv
  • venv/bin/pip install --editable .
  • venv/bin/tahoe --version

To run the unit test suite:

  • tox

For more detailed instructions, read docs/INSTALL.rst .

Once tahoe --version works, see docs/running.rst to learn how to set up your first Tahoe-LAFS node.

LICENCE

Copyright 2006-2016 The Tahoe-LAFS Software Foundation

You may use this package under the GNU General Public License, version 2 or, at your option, any later version. You may use this package under the Transitive Grace Period Public Licence, version 1.0, or at your option, any later version. (You may choose to use this package under the terms of either licence, at your option.) See the file COPYING.GPL for the terms of the GNU General Public License, version 2. See the file COPYING.TGPPL for the terms of the Transitive Grace Period Public Licence, version 1.0.

See TGPPL.PDF for why the TGPPL exists, graphically illustrated on three slides.