Brian Warner
b6162681d5
webish: mark read-only directories as such when listing their parent
2007-06-26 12:37:00 -07:00
Brian Warner
bc2603c818
vdrive: protect dirnode contents with an HMAC
2007-06-26 12:36:21 -07:00
Brian Warner
4a0682874b
remove old filetree code
2007-06-25 20:34:19 -07:00
Brian Warner
fb02488a8e
vdrive: switch to URI:DIR and URI:DIR-RO, providing transitive readonlyness
2007-06-25 13:23:51 -07:00
Brian Warner
107207e09d
webish: log dirname in mkdir
2007-06-15 02:48:19 -07:00
Brian Warner
a00bde050b
webish: when mounting a shared directory, don't automatically move to it
2007-06-15 02:34:24 -07:00
Brian Warner
2066e8ddfc
webish: add option to export/import shared directories (always read-write)
2007-06-15 02:31:23 -07:00
Brian Warner
53da82ec04
test_system.py: match change to /global_vdrive URL
2007-06-15 01:38:55 -07:00
Brian Warner
20dcda4ca7
create a personal (non-shared) vdrive, in addition to the global shared one
2007-06-15 01:33:24 -07:00
Brian Warner
51809ce341
webish: enable deletion of directories
2007-06-15 01:32:57 -07:00
Brian Warner
1eba30cd14
webish.py: put the URI in a narrower auto-scrolling box (with CSS)
2007-06-15 01:32:20 -07:00
Brian Warner
1cb1faf11d
runner.py: add 'dump-directory-node' command
2007-06-15 00:47:05 -07:00
Brian Warner
82c38d370a
make new vdrive work, implement convenience wrapper, passes all tests
2007-06-15 00:37:32 -07:00
Brian Warner
5e5347a1bc
test_filetable: fix to match new vdrive approach
2007-06-15 00:01:01 -07:00
Brian Warner
ec77a227be
revamp vdrive: nodes with furls. tests still fail.
2007-06-14 20:14:34 -07:00
Brian Warner
106177a7f2
filetable: switch to new approach with anonymous nodes
2007-06-14 17:24:56 -07:00
Brian Warner
a182edf4de
upload.py: minor refactoring
2007-06-11 19:21:51 -07:00
Brian Warner
e0dfedb0a6
add 'allmydata-tahoe dump-uri-extension' utility command
2007-06-11 18:38:21 -07:00
Brian Warner
382888899b
refactor URI_extension handlers out of encode/download and into uri.py
2007-06-11 18:25:18 -07:00
Brian Warner
48a8c32ed7
webish: display program/library versions on the welcome page
2007-06-11 10:51:11 -07:00
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
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
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
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
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
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
Brian Warner
c405c6117f
check_memory.py: finish the failsafe-shutdown code
2007-05-24 17:34:42 -07:00
Brian Warner
4c7c5df41e
runner.py: spoke too soon. Really fix #51 this time.
2007-05-24 11:20:39 -07:00
Brian Warner
d0db98cc40
runner.py: expanduser() basedirs, so '~' works. Closes #51 .
2007-05-24 11:10:19 -07:00
Brian Warner
8fc1bf4330
test_node.py: hush pyflakes warnings
2007-05-23 17:55:04 -07:00
Brian Warner
cbca430062
node.py: hush pyflakes warnings
2007-05-23 17:54:48 -07:00
Brian Warner
2d21029367
test_introducer_and_vdrive: remove the assumption that startService returns a Deferred
2007-05-23 17:37:20 -07:00
Brian Warner
83daa265ba
test_system.py: check size in web-ui display. closes #37
2007-05-23 17:25:49 -07:00
Zooko O'Whielacronx
80b09b6d54
add in-line doc that Josh wrote as he was trying to understand this code
2007-05-23 15:11:23 -07:00
Zooko O'Whielacronx
44902c5152
add unit test for "advertised_ip_addresses" feature and fix bug in that feature uncovered by this unit test
2007-05-23 15:08:55 -07:00
Zooko O'Whielacronx
77f55f368a
make stopService() defer until startService() completes (fixes a problem with the new not-yet-committed unit test)
2007-05-23 15:08:03 -07:00
Brian Warner
f9e45391f6
node.py: use 'node.pem' for all nodes
...
Rather than use separate client.pem and introducer.pem files, use 'node.pem'
for all nodes regardless of what type it is. This is slightly cleaner, but
introduces a compatibility. Users who upgrade to this change should do
'mv client.pem node.pem' to avoid generating a new certificate and thus
changing their TubID.
2007-05-23 12:48:52 -07:00
Brian Warner
9edc6574ae
node.py: use Tub's certFile= argument instead of doing it ourselves
2007-05-23 12:41:23 -07:00
Zooko O'Whielacronx
3872e94da2
rename all "*PBURL*" to "*FURL*"
...
This breaks backwards compatibility with Tahoe v0.2 -- the first public release of Tahoe.
2007-05-22 14:08:30 -07:00
Zooko O'Whielacronx
9cd1757799
refactor iputil and make it return addresses in descending order of goodness instead of in a set
...
Actually of course iputil can't tell exactly how good they are, and a wise user
of iputil will try all of them. But you can't try all of them simultaneously,
so you might as well try the best ones first.
2007-05-22 14:06:37 -07:00
Zooko O'Whielacronx
921e643b93
don't check for existence of portnum file and then try to open it -- instead try to open it and catch exception
...
This avoids a race condition, also known as time-of-check-to-time-of-use.
2007-05-22 14:06:00 -07:00
Zooko O'Whielacronx
98066ccaee
don't test for existence of certfile and then try to open it -- instead try to open it and catch exception
...
This avoids a race condition, also known as time-of-check-to-time-of-use.
2007-05-22 14:04:16 -07:00
Zooko O'Whielacronx
a2970cf7c1
fix handling of local_ip file and rename it to advertised_ip_addresses and document it in README
2007-05-22 14:01:40 -07:00
Zooko O'Whielacronx
10df6fac02
raise constraint on FURLs from 150 chars to 1000 chars
2007-05-22 13:59:17 -07:00
Brian Warner
05163ec8e1
change uri-packer-unpacker to deal with dictionaries, not fragile tuples
2007-05-23 11:18:49 -07:00
Zooko O'Whielacronx
3d1adf6d30
update docs, remove extraneous licence text, sort module names in import statement
...
closes #46 ?
2007-05-21 13:42:51 -07:00
Zooko O'Whielacronx
9b70d17d4b
enable private upload, in which the file is inserted at the grid layer but not at the vdrive layer
...
This patch is actually by Faried Nawaz, as per ticket #33 :
http://allmydata.org/trac/tahoe/ticket/33
2007-05-16 08:40:19 -07:00
Brian Warner
82ba0f8540
UNDO: forget about old peers ( closes #26 )
...
Add a new method to RIIntroducer, to allow the central introducer node to
remove peers from the active set after they've gone away. Without this,
client nodes accumulate stale peer FURLs forever. This introduces a
compatibility break, as old introducers won't know about the 'lost_peers'
message, although the errors produced are probably harmless.
2007-05-07 19:10:24 -07:00
Brian Warner
04af4a48b5
forget about old peers ( closes #26 )
...
Add a new method to RIIntroducer, to allow the central introducer node to
remove peers from the active set after they've gone away. Without this,
client nodes accumulate stale peer FURLs forever. This introduces a
compatibility break, as old introducers won't know about the 'lost_peers'
message, although the errors produced are probably harmless.
2007-05-07 19:10:24 -07:00
Zooko O'Whielacronx
e0bedb64ea
manually merge recent changes to pyutil's copy of "version.py" with allmydata's copy of "version.py"
2007-05-09 16:04:05 -07:00
Faried Nawaz
2016b846b9
display file size in directory.xhtml
2007-05-04 13:07:32 -07:00
Brian Warner
5b3a1cdc56
test_introducer.py: turn off the defer.setDebugging(True) call that was left over from a troubleshooting session: it slows down the test suite by a factor of 2
2007-05-04 00:45:23 -07:00
Brian Warner
9bd213abe7
version.py: handle both '0.2.0' and '0.2.0-1', remove 'tags' for now
2007-05-03 20:31:27 -07:00
Brian Warner
3f6b660272
update version-number handling, pull release tags from darcs history
2007-05-03 20:14:07 -07:00
Zooko O'Whielacronx
5610a1b2ce
tahoe v0.2.0-0-UNSTABLE
2007-05-02 16:23:23 -07:00
Zooko O'Whielacronx
ff08abb67e
bump test timeout even higher
...
It does indeed take longer than 2400 seconds to run test_upload_and_download on a virtual windows machine when the underlying real machine is heavily loaded down with filesystem analysis runs...
2007-05-02 15:31:05 -07:00
Brian Warner
0650e5543f
figleaf_htmlizer: when all counts are zero, claim 0% instead of 100%, since it probably means that coverage checking has failed completely
2007-05-01 11:07:28 -07:00
Zooko O'Whielacronx
75e0284471
v0.2.0b2-0-UNSTABLE
2007-05-01 15:46:19 -07:00
Zooko O'Whielacronx
40e1c4be71
grand unified version numbers
...
Now the allmydata python package, the setup.py script, and the debian packages all get their tahoe version number from the same place.
2007-05-01 13:23:15 -07:00
Zooko O'Whielacronx
e697c84df1
bump timeout up because it timed out even on my super fast MacBook Pro
...
Hm. This probably means that it is never going to finish...
2007-04-30 23:16:06 -07:00
Zooko O'Whielacronx
f724719744
v0.2.0b1-0-UNSTABLE
2007-04-30 23:11:23 -07:00
Zooko O'Whielacronx
137a427a47
bump some unit tests up to very high timeouts because my poor G4 867 MHz PowerBook, which is busy doing video iChat, takes a long time to run these tests
2007-04-30 21:03:43 -07:00
Brian Warner
461d64e371
test_system: increase timeouts to almost 20 minutes: we have buildslaves that take more than 5 minutes to finish these tests.
2007-04-30 20:14:58 -07:00
Zooko O'Whielacronx
e0a18d12af
globally search and replace "mesh" with "grid" and adjust description of the effect of NAT on the topology
2007-04-30 13:06:09 -07:00
Zooko O'Whielacronx
b027ee1489
v0.1.4b2-0-UNSTABLE
2007-04-30 10:00:07 -07:00
Zooko O'Whielacronx
d19d1058e0
extirpate all references the "queen" and "metatracker"
...
This is a potentially disruptive and potentially ugly change to the code base,
because I renamed the object that serves in both roles from "Queen" to
"IntroducerAndVdrive", which is a bit of an ugly name.
However, I think that clarity is important enough in this release to make this
change. All unit tests pass. I'm now darcs recording this patch in order to
pull it to other machines for more testing.
2007-04-30 09:57:52 -07:00
Zooko O'Whielacronx
7090ed66c5
v0.1.3-0-UNSTABLE
2007-04-30 06:02:43 -07:00
Zooko O'Whielacronx
a61178f425
raise the limit on the number of hashes when retrieving them, too
2007-04-30 06:00:10 -07:00
Zooko O'Whielacronx
8e4aa3e1fb
raise the limit on block hashes and share hashes from 30 to 2**20
2007-04-29 23:51:15 -07:00
Zooko O'Whielacronx
2fd7b81fba
v0.1.2-0-UNSTABLE
2007-04-29 23:00:08 -07:00
Zooko O'Whielacronx
85b1a4374b
allmydata-tahoe v0.1.1-1-UNSTABLE
2007-04-27 16:07:22 -07:00
Brian Warner
82b3554c2f
testutil.py: remove unused import, appease pyflakes
2007-04-27 08:11:34 -07:00
Zooko O'Whielacronx
a70a599249
make it print out version numbers when it constructs a Node instance
2007-04-27 13:47:38 -07:00
Zooko O'Whielacronx
7b0db1c91f
make runner find twistd and invoke it with python
...
This makes allmydata-tahoe work on Windows, and probably doesn't make it fail on other platforms.
2007-04-26 23:14:13 -07:00
Zooko O'Whielacronx
5121a8d4a2
make testutil more flexible about what platform it runs on
2007-04-26 22:16:48 -07:00
Brian Warner
db2caf58d4
interfaces: allow URIs to be up to 300 chars long, we're just crossing over the edge now
2007-04-26 18:08:29 -07:00
Brian Warner
5ceeaaea6a
add RIClient.get_versions, in the hopes of enabling backwards-compatibility code in the future
2007-04-26 12:01:25 -07:00
Zooko O'Whielacronx
0df42ed71f
tahoe v0.1.1-0-UNSTABLE
2007-04-26 11:25:15 -07:00
Brian Warner
4b2298937b
use real encryption, generate/store/verify verifierid and fileid
2007-04-25 17:53:10 -07:00
Brian Warner
f4beff38c4
sort coverage tables by lines uncovered, rather than percentages
2007-04-24 11:49:26 -07:00
Brian Warner
9251b6e85e
test_system: improve webish.py coverage
2007-04-24 01:41:54 -07:00
Brian Warner
73bb4f80af
vdrive.py: let put_file return the URI that was used for the file itself
2007-04-24 01:41:40 -07:00
Brian Warner
813fdd70da
test_runner.py: improve test coverage a little bit
2007-04-23 21:28:19 -07:00
Brian Warner
e7a41aa9f7
testutil.py: hush a pyflakes warning
2007-04-23 21:21:50 -07:00
Brian Warner
d1a848e0a7
runner.py: add --quiet, use it from test cases
2007-04-23 21:17:13 -07:00
Brian Warner
8307aaccb6
testutil: make SignalMixin actually be a mixin (and not inherit from TestCase), use it from all tests that start notes and thus exec ifconfig
2007-04-23 21:15:02 -07:00
Brian Warner
78430d3124
test_upload.py: add some TODO items
2007-04-23 17:30:40 -07:00
Brian Warner
491f96258e
test_runner.py: add some coverage for allmydata.scripts.runner, to create nodes
2007-04-19 18:56:45 -07:00
Brian Warner
be8eeadb7a
rename queen control files to 'introducer'
2007-04-19 18:24:15 -07:00
Brian Warner
a3c9ead74f
replace 'queen' with 'introducer' in a lot of places, but not all
2007-04-19 17:30:21 -07:00
Brian Warner
76e0ec3214
figleaf: add number-of-uncovered-lines to the HTML output
2007-04-19 11:09:33 -07:00
Zooko O'Whielacronx
20451e43b5
assign version number tahoe 0.1.0-0-UNSTABLE
2007-04-19 13:47:59 -07:00
Zooko O'Whielacronx
be8744caf8
copy version.py from pyutil
2007-04-19 13:47:36 -07:00
Brian Warner
49e992b8b6
make test_encode less CPU-intense by using 4-out-of-10 encoding instead of 25-out-of-100
2007-04-19 10:56:15 -07:00
Brian Warner
073333c791
iputil/testutil: fix pyflakes errors/warnings
2007-04-18 18:33:37 -07:00
Brian Warner
2d0e240466
encode: handle uploads of the same file multiple times. Unfortunately we have to do almost as much work the second time around, to compute the full URI
2007-04-18 18:29:10 -07:00
Brian Warner
d1c00bd527
test_system: turn off test_connections, since it is slow and subsumed by the other system tests
2007-04-18 16:06:57 -07:00
Brian Warner
bc8ff33cd1
interfaces.py: remove spurious 'pass' statements (which, incidentally, were counted as uncovered code)
2007-04-18 15:46:37 -07:00
Brian Warner
91d72bb504
test_storage: test StorageServer code too: allocation, lookup, multiple-writer behavior
2007-04-18 15:42:34 -07:00
Brian Warner
0a53fb00b2
storageserver.py: remove unused import
2007-04-18 10:43:33 -07:00
Zooko O'Whielacronx
a154641462
iputil.list_async_addresses now "works" on cygwin
2007-04-18 17:30:08 -07:00
Zooko O'Whielacronx
47bdfdf419
copy testutil from pyutil
2007-04-18 17:28:36 -07:00
Zooko O'Whielacronx
c5b9d2929d
copy repeatable_random from pyutil
2007-04-18 17:27:33 -07:00
Zooko O'Whielacronx
55949faecc
finish renaminf "fec" to "zfec" in tahoe
2007-04-18 17:25:16 -07:00
Brian Warner
85b36e348b
encode.py: remove unused pad() code
2007-04-17 21:22:32 -07:00
Brian Warner
80cf789817
download: remove unused import
2007-04-17 21:11:20 -07:00
Brian Warner
b76aa1ce17
download: oops, NotEnoughHashesError comes from hashtree, not hashutil
2007-04-17 20:37:51 -07:00
Brian Warner
b84d6ed07f
encode: fix multi-segment uploads: lambdas inside for loops require special attention to make sure you are capturing the *value* of the loop variable and not just the slot it lives in
2007-04-17 20:29:08 -07:00
Brian Warner
a4d7607a9e
test_system: minor comment
2007-04-17 20:28:19 -07:00
Brian Warner
e7ec4ff4e5
factor out the tagged hash function used for subshares/blocks
2007-04-17 20:27:56 -07:00
Brian Warner
76e28b3484
comment out some verbose log messages, add commented-out new ones
2007-04-17 20:25:52 -07:00
Brian Warner
008e418523
storageserver: assert that blocks are written in-order, clean up tests a bit
2007-04-17 20:21:05 -07:00
Zooko O'Whielacronx
c2dfcb1f01
don't clobber existing storefile every put block
2007-04-17 20:14:44 -07:00
Zooko O'Whielacronx
723f4078a3
pyutil: fileutil.open_or_create()
2007-04-17 20:14:26 -07:00
Brian Warner
e040b85f5d
test_storage: add (failing) test of the BucketWriter/BucketReader implementation
2007-04-17 20:03:44 -07:00
Brian Warner
dbbbc96cbf
storageserver: the last segment is not always going to be the same size as the rest, so don't assert such a thing
2007-04-17 13:41:45 -07:00