]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/commit
move validation data to thingA, URI has storage_index plus thingA hash
authorBrian Warner <warner@allmydata.com>
Sat, 2 Jun 2007 01:48:01 +0000 (18:48 -0700)
committerBrian Warner <warner@allmydata.com>
Sat, 2 Jun 2007 01:48:01 +0000 (18:48 -0700)
commit3dfd26970bfe13ad2b6a1605dca78656eb08c847
tree7c40559f0a8bc83af7b63b2e6a1d7b0b5184f426
parentd1d7cdd8593aa8bf4b8b3adbdd621577b93ceb90
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.
src/allmydata/download.py
src/allmydata/encode.py
src/allmydata/hashtree.py
src/allmydata/interfaces.py
src/allmydata/storageserver.py
src/allmydata/test/test_encode.py
src/allmydata/test/test_system.py
src/allmydata/test/test_upload.py
src/allmydata/upload.py
src/allmydata/uri.py