Commit Graph

13035 Commits

Author SHA1 Message Date
Brian Warner 363ed1264a webish: show vdrive and introducer connectedness separately
Also don't offer a link to the vdrive webpages if we don't have a vdrive.furl
2007-06-09 21:03:57 -07:00
Brian Warner 956d5ae256 rename fileid/verifierid to plaintext_hash/crypttext_hash 2007-06-09 20:46:04 -07:00
Brian Warner dac76b508c thingA.txt has finally been renamed 2007-06-09 20:32:34 -07:00
Brian Warner 5abc034378 update thingA/uri-extension docs 2007-06-09 20:31:48 -07:00
Brian Warner 584dc4ae94 handle uri_extension with a non-bencode serialization scheme 2007-06-08 16:17:54 -07:00
Brian Warner c9ef291c02 rename thingA to 'uri extension' 2007-06-08 15:59:16 -07:00
Brian Warner 72bc8627de consolidate multiple definitions of NotEnoughPeersError 2007-06-07 22:20:55 -07:00
Brian Warner f62a544b93 remove several leftover defintions of netstring() 2007-06-07 22:13:18 -07:00
Brian Warner 6df5c856ac test_client.py: improve test coverage a bit 2007-06-07 22:09:02 -07:00
Brian Warner 243300f843 docs/thingA.txt: describe what this does, even if it doesn't yet have a name 2007-06-07 21:50:58 -07:00
Brian Warner c049941529 move almost all hashing to SHA256, consolidate into hashutil.py
The only SHA-1 hash that remains is used in the permutation of nodeids,
where we need to decide if we care about performance or long-term security.
I suspect that we could use a much weaker hash (and faster) hash for
this purpose. In the long run, we'll be doing thousands of such hashes
for each file uploaded or downloaded (one per known peer).
2007-06-07 21:47:21 -07:00
Brian Warner cabba59fe7 test_encode.py: even more testing of merkle trees, getting fairly comprehensive now 2007-06-07 21:24:39 -07:00
Brian Warner 053109b28b add tests for bad/inconsistent plaintext/crypttext merkle tree hashes 2007-06-07 19:32:29 -07:00
Brian Warner 4f001bedb3 test_encode.py: further refactoring of send_and_recover 2007-06-07 18:36:25 -07:00
Brian Warner c7160af7ee test_encode.py: refactor send_and_recover a bit 2007-06-07 18:24:26 -07:00
Brian Warner 8907e04ef5 client.py: allow operation without vdrive.furl, for storage-only no-UI nodes 2007-06-07 17:55:49 -07:00
Brian Warner 59f4a5abe8 client.py: use persistent FURLs for our Node, to reduce spurious connection attempts (#26) 2007-06-07 15:32:21 -07:00
Brian Warner f3846da4ab encode.py: hush pyflakes warnings 2007-06-07 13:18:55 -07:00
Brian Warner b2caf7fb9a encode/download: reduce memory footprint by deleting large intermediate buffers as soon as possible, improve hash tree usage 2007-06-07 13:15:58 -07:00
Brian Warner c81f2b01ff encode.py: fix generation of plaintext/crypttext merkle trees 2007-06-07 13:14:14 -07:00
Brian Warner a383c17444 hashtree.BadHashError: mention which leaf caused the problem 2007-06-07 12:38:22 -07:00
Brian Warner 2db17df833 iputil.get_local_ip_for: tolerate running on a disconnected host 2007-06-07 19:23:33 -07:00
Brian Warner e04ff3adac fetch plaintext/crypttext merkle trees during download, but don't check the segments against them yet 2007-06-07 00:15:41 -07:00
Brian Warner fae4e8f9a3 download.py: refactor get-thingA-from-somebody to reuse the logic for other things 2007-06-06 23:50:02 -07:00
Brian Warner dcf5abb51c encode.py: fix pyflakes warning 2007-06-07 02:56:16 -07:00
Brian Warner 5cbdc240e2 encode: add plaintext/crypttext merkle trees to the shares, and the thingA block. Still needs tests and download-side verification. 2007-06-06 19:40:20 -07:00
Brian Warner 208a932d10 runner.py: allow --multiple to enable starting/stopping/creating multiple nodes at once 2007-06-06 14:06:57 -07:00
robk-org 0bcf29fba4 log a prominent warning message in the case that the introducer cannot be reached 2007-06-04 18:48:53 -07:00
robk-org 7c479ba8a7 catch failures in startService() and abort process 2007-06-04 18:46:37 -07:00
robk-org 92395125fa add a missing up-call in introducer.startService() 2007-06-04 18:45:40 -07:00
robk-org 03e9b0d4d7 change the 'ez_setup.py' script to have distinct desired & minimum required versions of setuptools
and change zfec/setup.py's invocation of ez_setup to require 0.6a9 (which happens to be the default
version installed by apt-get on dapper machines) while leaving the default (desired) version at 0.6c5
2007-06-06 12:49:03 -07:00
Brian Warner f4c048bbeb encode.py: clean up handling of lost peers during upload, add some logging 2007-06-06 12:40:16 -07:00
Brian Warner daa4c32381 runner.py: allow all directory-using commands (create/start/stop) to accept argv[-1] as well as --basedir 2007-06-06 11:37:19 -07:00
Brian Warner e5fdf0daca bin/allmydata-tahoe: also update PYTHONPATH so that child processes (like twistd) will work 2007-06-06 11:36:48 -07:00
Brian Warner 3c0485204e bin/allmydata-tahoe: add a sys.path-modifying preamble to make it easy to run from source 2007-06-06 11:24:00 -07:00
Brian Warner 6bb9debc16 encode: tolerate lost peers, as long as we still get enough shares out. Closes #17. 2007-06-06 10:32:40 -07:00
Brian Warner fcd7842ff2 roadmap.txt: minor cleanups 2007-06-06 09:49:42 -07:00
Brian Warner 0e3358e508 README: mention strports-ness of NODE/webport, closes #55 2007-06-06 09:49:18 -07:00
Brian Warner 3dfd26970b move validation data to thingA, URI has storage_index plus thingA hash
This (compatibility-breaking) change moves much of the validation data and
encoding parameters out of the URI and into the so-called "thingA" block
(which will get a better name as soon as we find one we're comfortable with).
The URI retains the "storage_index" (a generalized term for the role that
we're currently using the verifierid for, the unique index for each file
that gets used by storage servers to decide which shares to return), the
decryption key, the needed_shares/total_shares counts (since they affect
peer selection), and the hash of the thingA block.

This shortens the URI and lets us add more kinds of validation data without
growing the URI (like plaintext merkle trees, to enable strong incremental
plaintext validation), at the cost of maybe 150 bytes of alacrity. Each
storage server holds an identical copy of the thingA block.

This is an incompatible change: new messages have been added to the storage
server interface, and the URI format has changed drastically.
2007-06-01 18:48:01 -07:00
Brian Warner d1d7cdd859 node.py: multi-class exception calls need parentheses 2007-05-31 18:32:21 -07:00
Brian Warner 7124f94461 download.py: refactor bucket_failed() a bit, add some docs 2007-05-31 18:31:36 -07:00
Brian Warner edaed9c32c test_system.py: minor reformatting 2007-05-31 18:31:01 -07:00
Brian Warner 4f0e944087 node.py: add logging of startup/shutdown, for the cygwin test_system failure 2007-05-31 13:44:22 -07:00
Brian Warner 8875adf807 test_system.py: add a log message to help track down the occasional cygwin failure 2007-05-31 12:01:14 -07:00
Brian Warner 1160c1def2 node.py: log twisted version along with tahoe/foolscap/zfec versions 2007-05-31 11:21:06 -07:00
Brian Warner ea78b4b605 check_memory: getting closer, now we have memusage numbers for uploads of 10kB and 10MB files 2007-05-29 17:39:39 -07:00
Zooko O'Whielacronx 04b649f971 switch from FieldStorage.value to FieldStorage.file
Unfortunately this doesn't make the O(n) memory usage go away.  It might reduce the constants -- I'm not sure.  I look forward to enhancement #54 -- memory usage tests!
2007-05-25 16:00:19 -07:00
Zooko O'Whielacronx 763cfc7874 amdlib.util: merge in changes to humanreadable.py that were made in pyutil 2007-05-25 15:49:57 -07:00
Zooko O'Whielacronx 12268ee50f mark #22 finished in source:roadmap.txt 2007-05-25 15:48:01 -07:00
Brian Warner c405c6117f check_memory.py: finish the failsafe-shutdown code 2007-05-24 17:34:42 -07:00