Brian Warner [Fri, 16 Nov 2007 05:53:55 +0000 (22:53 -0700)]
node.py: raise RLIMIT_NOFILE on bsd/cygwin to more than 256
Brian Warner [Thu, 15 Nov 2007 21:55:00 +0000 (14:55 -0700)]
test_mutable: workaround: use more peers to avoid random test failures.
The underlying issue is recorded in #211: one corrupt share in a query
response will cause us to ignore the remaining shares in that response, even
if they are good. In our tests (with N=10 but only 5 peers), this can leave
us with too few shares to recover the file.
The temporary workaround is to use 10 peers, to make sure we never get
multiple shares per response. The real fix will be to fix the control flow.
This fixes #209.
Brian Warner [Thu, 15 Nov 2007 21:22:56 +0000 (14:22 -0700)]
mutable: add more logging to retrieval process
Brian Warner [Thu, 15 Nov 2007 20:40:49 +0000 (13:40 -0700)]
provisioning: add more options for num-servers and server-dBA
Brian Warner [Wed, 14 Nov 2007 22:26:46 +0000 (15:26 -0700)]
mutable: validate share_hash_chain for each inbound share
Zooko O'Whielacronx [Mon, 3 Dec 2007 22:21:14 +0000 (15:21 -0700)]
merge patch to integrate decentralized directories with patch to handle bad hashes
Brian Warner [Wed, 14 Nov 2007 06:08:15 +0000 (23:08 -0700)]
mutable: handle bad hashes, improve test coverage, rearrange slightly to facilitate these
Brian Warner [Tue, 13 Nov 2007 21:24:49 +0000 (14:24 -0700)]
README: advise 'make clean' before 'make build-deps' (after update), otherwise old versions of the dependent libaries can be used in preference to the newer one
Brian Warner [Tue, 13 Nov 2007 20:54:51 +0000 (13:54 -0700)]
docs/subtree1.svg: make the page smaller
Zooko O'Whielacronx [Mon, 3 Dec 2007 21:52:42 +0000 (14:52 -0700)]
decentralized directories: integration and testing
* use new decentralized directories everywhere instead of old centralized directories
* provide UI to them through the web server
* provide UI to them through the CLI
* update unit tests to simulate decentralized mutable directories in order to test other components that rely on them
* remove the notion of a "vdrive server" and a client thereof
* remove the notion of a "public vdrive", which was a directory that was centrally published/subscribed automatically by the tahoe node (you can accomplish this manually by making a directory and posting the URL to it on your web site, for example)
* add a notion of "wait_for_numpeers" when you need to publish data to peers, which is how many peers should be attached before you start. The default is 1.
* add __repr__ for filesystem nodes (note: these reprs contain a few bits of the secret key!)
* fix a few bugs where we used to equate "mutable" with "not read-only". Nowadays all directories are mutable, but some might be read-only (to you).
* fix a few bugs where code wasn't aware of the new general-purpose metadata dict the comes with each filesystem edge
* sundry fixes to unit tests to adjust to the new directories, e.g. don't assume that every share on disk belongs to a chk file.
Zooko O'Whielacronx [Thu, 29 Nov 2007 21:47:35 +0000 (14:47 -0700)]
unit tests: bump up a timeout which I encountered when running on a very slow machine
Zooko O'Whielacronx [Tue, 20 Nov 2007 20:39:22 +0000 (13:39 -0700)]
setup: README: warn against Python 2.4.1, recommend easy_install, link to easy_install download page, edit for clarity
Zooko O'Whielacronx [Tue, 20 Nov 2007 07:07:44 +0000 (00:07 -0700)]
setup: make dependency failures more helpful (thanks to Priyanka)
Zooko O'Whielacronx [Tue, 20 Nov 2007 06:08:53 +0000 (23:08 -0700)]
setup: README: a few clarifications thanks to Priyanka
Zooko O'Whielacronx [Mon, 19 Nov 2007 22:55:17 +0000 (15:55 -0700)]
setup: pycryptopp: upgrade from v0.2.7 to v0.2.8
Zooko O'Whielacronx [Mon, 19 Nov 2007 22:07:11 +0000 (15:07 -0700)]
setup: pycryptopp: upgrade from v0.2.6 to v0.2.7 (adds AES)
Zooko O'Whielacronx [Mon, 19 Nov 2007 21:07:28 +0000 (14:07 -0700)]
remove tahoe_put-web2ish.py
It isn't currently used, and I don't remember what part of its behavior was so much better than tahoe_put.py, and Brian has subsequently improved tahoe_put.py.
Zooko O'Whielacronx [Wed, 14 Nov 2007 03:16:59 +0000 (20:16 -0700)]
setup: pass INCLUDE_DIRS and LIBRARY_DIRS variables, if any to setup.py from Makefile
Zooko O'Whielacronx [Sat, 10 Nov 2007 23:37:18 +0000 (16:37 -0700)]
IMutableFileNode is a subtype of IFileNode
I'm not 100% sure that this is correct, but it looks reasonable, it passes unit
tests (although note that unit tests are currently not covering the new mutable
files very well), and it makes the "view JSON" link on a directory work instead
of raising an assertion error.
Zooko O'Whielacronx [Sat, 10 Nov 2007 23:07:05 +0000 (16:07 -0700)]
don't provide the "overwrite" button if the file is readonly to you
Zooko O'Whielacronx [Sat, 10 Nov 2007 17:53:45 +0000 (10:53 -0700)]
WUI: hook up an "overwrite" button on mutable files
Zooko O'Whielacronx [Sat, 10 Nov 2007 01:21:12 +0000 (18:21 -0700)]
remove parts of pycrypto that we are no longer going to use: SHA256 and RSA
Zooko O'Whielacronx [Sat, 10 Nov 2007 01:15:00 +0000 (18:15 -0700)]
setup: require pycryptopp >= 0.2.6
Zooko O'Whielacronx [Sat, 10 Nov 2007 01:14:36 +0000 (18:14 -0700)]
setup: upgrade bundled pycryptopp from v0.2.5 to v0.2.6
Zooko O'Whielacronx [Sat, 10 Nov 2007 01:06:25 +0000 (18:06 -0700)]
mutable.py: fix padding/shape-of-input-data to zfec
Zooko O'Whielacronx [Sat, 10 Nov 2007 01:04:19 +0000 (18:04 -0700)]
setup: automatically discover files to include in packages
(Because they are python packages or because they are registered under darcs revision control.)
Zooko O'Whielacronx [Fri, 9 Nov 2007 21:58:03 +0000 (14:58 -0700)]
setup: continue running setup.py even if ez_setup.py can't be imported
Zooko O'Whielacronx [Fri, 9 Nov 2007 21:40:13 +0000 (14:40 -0700)]
hashutil.py: switch from pycrypto to pycryptopp SHA256
Zooko O'Whielacronx [Fri, 9 Nov 2007 20:13:39 +0000 (13:13 -0700)]
setup: fix formatting of error messages from makefile
Brian Warner [Fri, 9 Nov 2007 11:05:07 +0000 (04:05 -0700)]
docs/webapi.txt: document the POST t=upload&mutable=on command used to create mutable files
Brian Warner [Fri, 9 Nov 2007 10:54:27 +0000 (03:54 -0700)]
webish: add preliminary mutable file support: upload, download, listings, JSON, URI, RO-URI. No replace yet.
Brian Warner [Fri, 9 Nov 2007 09:54:51 +0000 (02:54 -0700)]
consolidate dirnode/filenode-creation code into Client
Brian Warner [Thu, 8 Nov 2007 11:30:37 +0000 (04:30 -0700)]
mutable: cheap padding hack to make zfec tolerate short files
Zooko O'Whielacronx [Fri, 9 Nov 2007 20:03:15 +0000 (13:03 -0700)]
setup: require pycryptopp >= v0.2.5
Zooko O'Whielacronx [Fri, 9 Nov 2007 20:02:49 +0000 (13:02 -0700)]
setup: upgrade the bundled pycryptopp tarball from pycryptopp v0.2.3 to pycryptopp v0.2.5
Brian Warner [Thu, 8 Nov 2007 21:02:36 +0000 (14:02 -0700)]
mutable: verify incoming share signatures during Publish, it's not that expensive and it's a good idea
Brian Warner [Thu, 8 Nov 2007 12:04:11 +0000 (05:04 -0700)]
test_system: RSA keys are even more variable than I thought, 2044..2049
Brian Warner [Thu, 8 Nov 2007 11:31:00 +0000 (04:31 -0700)]
mutable: add basic test coverage of new-dirnodes-using-mutable-files
Brian Warner [Thu, 8 Nov 2007 11:07:33 +0000 (04:07 -0700)]
mutable: fix multiple-versions-interfering-with-each-other bug. replace() tests now pass.
Brian Warner [Thu, 8 Nov 2007 10:01:13 +0000 (03:01 -0700)]
test_system: RSA keys vary in size, expand valid ranges in test
Brian Warner [Thu, 8 Nov 2007 09:46:27 +0000 (02:46 -0700)]
mutable: grab encprivkey when necessary during publish, fix test_mutable
Brian Warner [Thu, 8 Nov 2007 09:08:42 +0000 (02:08 -0700)]
docs/configuration.txt: expand the 'sizelimit' docs
Brian Warner [Thu, 8 Nov 2007 04:01:39 +0000 (21:01 -0700)]
mutable: rearrange order of Publish to allow replace() to work. Doesn't work yet. Also test_mutable is disabled for a while.
Brian Warner [Thu, 8 Nov 2007 02:50:46 +0000 (19:50 -0700)]
Makefile: check-deps: check for pycryptopp
Brian Warner [Thu, 8 Nov 2007 00:52:09 +0000 (17:52 -0700)]
mutable: fix usage of NeedMoreDataError
Brian Warner [Thu, 8 Nov 2007 00:51:35 +0000 (17:51 -0700)]
mutable: wire in RSA for real, using pycryptopp
Brian Warner [Thu, 8 Nov 2007 00:45:45 +0000 (17:45 -0700)]
mutable: make error handling more robust
Zooko O'Whielacronx [Thu, 8 Nov 2007 01:02:39 +0000 (18:02 -0700)]
UNDO: hashutil: replace pycrypto's SHA256 with pycryptopp's SHA256
Zooko O'Whielacronx [Thu, 8 Nov 2007 01:02:39 +0000 (18:02 -0700)]
hashutil: replace pycrypto's SHA256 with pycryptopp's SHA256
Zooko O'Whielacronx [Thu, 8 Nov 2007 00:55:18 +0000 (17:55 -0700)]
setup: tell setuptools that we depend on pycryptopp >= 0.2.3
Zooko O'Whielacronx [Thu, 8 Nov 2007 00:54:46 +0000 (17:54 -0700)]
setup: upgrade to pycryptopp v0.2.3
Brian Warner [Wed, 7 Nov 2007 21:19:01 +0000 (14:19 -0700)]
mutable: test roundtrip, make it work
Brian Warner [Wed, 7 Nov 2007 21:14:54 +0000 (14:14 -0700)]
storage.py: add a little logging (disabled)
Zooko O'Whielacronx [Wed, 7 Nov 2007 17:11:56 +0000 (10:11 -0700)]
setup: print out the version number of pycryptopp in "tahoe --version"
Zooko O'Whielacronx [Wed, 7 Nov 2007 17:01:07 +0000 (10:01 -0700)]
CREDITS: more credit to nejucomo since we accepted a doc patch
Zooko O'Whielacronx [Wed, 7 Nov 2007 17:00:57 +0000 (10:00 -0700)]
README: fix whitespace
Zooko O'Whielacronx [Wed, 7 Nov 2007 17:00:13 +0000 (10:00 -0700)]
setup: add Crypto++ and pycryptopp to dependencies
Crypto++ is a new manual dependency (boo hoo), and pycryptopp is a new automatic dependency.
Zooko O'Whielacronx [Wed, 7 Nov 2007 16:59:51 +0000 (09:59 -0700)]
setup: add misc/dependencies/pycryptopp-0.2.1.tar.gz
nejucomo [Mon, 5 Nov 2007 08:46:42 +0000 (01:46 -0700)]
Add "sizelimit" to configuration doc.
Brian Warner [Wed, 7 Nov 2007 02:50:33 +0000 (19:50 -0700)]
test_system.mutable: make sure we exercise FEC padding
Brian Warner [Wed, 7 Nov 2007 02:46:31 +0000 (19:46 -0700)]
dump-share: emit SDMF information too
Brian Warner [Wed, 7 Nov 2007 02:31:22 +0000 (19:31 -0700)]
add container_size to mutable dump-share output
Brian Warner [Wed, 7 Nov 2007 02:27:06 +0000 (19:27 -0700)]
mutable: stub out pubkey creation until we wire in pycryptopp properly
Brian Warner [Wed, 7 Nov 2007 02:10:49 +0000 (19:10 -0700)]
test_system.mutable: add test coverage for the 'dump-share' debug command
Brian Warner [Wed, 7 Nov 2007 01:57:11 +0000 (18:57 -0700)]
test_system: add early test for mutable slots, currently publish-only
Brian Warner [Wed, 7 Nov 2007 01:56:39 +0000 (18:56 -0700)]
test_mutable: remove dead code
Brian Warner [Wed, 7 Nov 2007 01:55:55 +0000 (18:55 -0700)]
debug: add mutable-slot support to 'dump-share' command
Brian Warner [Wed, 7 Nov 2007 01:54:34 +0000 (18:54 -0700)]
mutable: storage_index is always 16 bytes
Brian Warner [Wed, 7 Nov 2007 01:53:34 +0000 (18:53 -0700)]
mutable: fix use of storage API
Brian Warner [Wed, 7 Nov 2007 01:49:59 +0000 (18:49 -0700)]
stabilize on 20-byte nodeids everywhere, printed with foolscap's base32
Brian Warner [Tue, 6 Nov 2007 22:19:48 +0000 (15:19 -0700)]
mutable: rearrange classes, putting MutableFileNode at the bottom
Brian Warner [Tue, 6 Nov 2007 22:18:09 +0000 (15:18 -0700)]
mutable: parameterize Publish/Retrieve classes in MutableFileNode, for tests
Brian Warner [Tue, 6 Nov 2007 22:04:46 +0000 (15:04 -0700)]
mutable: move IV into signed prefix, add more retrieval code
Brian Warner [Tue, 6 Nov 2007 10:47:29 +0000 (03:47 -0700)]
mutable: get most of the retrieve-side code written. no tests yet.
Brian Warner [Tue, 6 Nov 2007 08:32:39 +0000 (01:32 -0700)]
test_mutable.py: hush pyflakes
Brian Warner [Tue, 6 Nov 2007 07:33:40 +0000 (00:33 -0700)]
mutable.Publish: rearrange create() to use more of it in unit tests
Brian Warner [Tue, 6 Nov 2007 05:38:43 +0000 (22:38 -0700)]
mutable.Publish: more tests
Brian Warner [Tue, 6 Nov 2007 05:14:59 +0000 (22:14 -0700)]
mutable.Publish: create a dispatch_map for the benefit of recovery code, and pull pack/unpack methods out into functions
Brian Warner [Tue, 6 Nov 2007 04:51:08 +0000 (21:51 -0700)]
mutable: use proper enable/renew/cancel secrets
Brian Warner [Tue, 6 Nov 2007 04:32:08 +0000 (21:32 -0700)]
Makefile: add 'find-trailing-spaces' tool and target
Brian Warner [Tue, 6 Nov 2007 04:29:47 +0000 (21:29 -0700)]
mutable: added send-messages-to-peers code, about 70% done. No recovery code yet.
Brian Warner [Tue, 6 Nov 2007 03:17:14 +0000 (20:17 -0700)]
storage: rewrite slot API, now use testv_and_readv_and_writev or readv
Brian Warner [Mon, 5 Nov 2007 07:41:53 +0000 (00:41 -0700)]
test_mutable: hush pyflakes warning
Brian Warner [Mon, 5 Nov 2007 07:38:07 +0000 (00:38 -0700)]
mutable: add peer-selection to Publish, and some basic unit tests
Brian Warner [Mon, 5 Nov 2007 07:37:01 +0000 (00:37 -0700)]
storage: add readv_slots: get data from all shares
Brian Warner [Sat, 3 Nov 2007 05:59:02 +0000 (22:59 -0700)]
mutable.py: start writing share-mapping code
Brian Warner [Sat, 3 Nov 2007 05:32:55 +0000 (22:32 -0700)]
Makefile: add simple 'repl' target to start a python interpreter with a useful PYTHONPATH
Brian Warner [Sat, 3 Nov 2007 05:28:31 +0000 (22:28 -0700)]
mutable.py: add share-unpacking code, use it for more tests
Brian Warner [Sat, 3 Nov 2007 05:28:07 +0000 (22:28 -0700)]
mutable.txt: need offset of EOF too
Brian Warner [Sat, 3 Nov 2007 03:53:41 +0000 (20:53 -0700)]
mutable.txt: more notes
Brian Warner [Sat, 3 Nov 2007 03:51:39 +0000 (20:51 -0700)]
mutable: implement filenode share-packing, still pretty rough
Brian Warner [Fri, 2 Nov 2007 07:03:28 +0000 (00:03 -0700)]
mutable.py: sketch out data-structure packing/unpacking methods
Brian Warner [Fri, 2 Nov 2007 06:46:47 +0000 (23:46 -0700)]
mutable: split dirnode stuff out to dirnode2.py, will be renamed later
Brian Warner [Fri, 2 Nov 2007 02:19:08 +0000 (19:19 -0700)]
test_client: increase test_reloadable inter-run timeout, cygwin was failing
Brian Warner [Fri, 2 Nov 2007 01:35:54 +0000 (18:35 -0700)]
mutable: improve NewDirectoryNode test coverage
Brian Warner [Fri, 2 Nov 2007 00:29:15 +0000 (17:29 -0700)]
implement preliminary log publisher/gatherer
This creates a Referenceable object that will eventually be able to publish
log events to a remote subscriber (at present all it can do is provide
version information). The FURL for this logport is written to 'logport.furl'.
In addition, if a file named 'log_gatherer.furl' is present, the given target
will be contacted and offered access to the logport. This can be used by a
centralized logging agent to subscribe to logs, e.g. from all the nodes in a
centrally-maintained storage grid. (think syslog -r, but with all the
security properties of FURLs, and permitting non-printable strings and
structured data).
Once this framework matures a bit, it will be moved into Foolscap.
Brian Warner [Fri, 2 Nov 2007 00:27:12 +0000 (17:27 -0700)]
Client.tub_ready: upcall to Node
Brian Warner [Thu, 1 Nov 2007 23:57:58 +0000 (16:57 -0700)]
mutable: implement most remaining dirnode methods. No tests yet.
Brian Warner [Thu, 1 Nov 2007 22:42:57 +0000 (15:42 -0700)]
bencode.py: reencode as UTF-8
Brian Warner [Thu, 1 Nov 2007 22:34:35 +0000 (15:34 -0700)]
trailing-whitespace eradication, no functional changes