Commit Graph

19 Commits

Author SHA1 Message Date
Brian Warner
6f718d72a9 encode_new.py: rearrange methods into the order in which they should be called 2007-03-28 13:30:17 -07:00
Brian Warner
c4f09833f5 document IEncoder, add Encoder.set_landlords() 2007-03-28 11:24:53 -07:00
Brian Warner
a159ab3be8 encode_new.py: add comments, make variable names more illuminating 2007-03-28 11:06:19 -07:00
Brian Warner
2b2e0fc0d4 ICodecEncoder: resolve some questions about the API, still more to examine 2007-03-27 20:14:45 -07:00
Zooko O'Whielacronx
dd4ad3d542 use pyfec instead of py_ecc for erasure coding and update API to codec 2007-02-01 16:07:00 -07:00
Brian Warner
c868f77c71 encode_new.py: recent Foolscap accepts 'None' as a constraint 2007-01-16 19:56:30 -07:00
Brian Warner
3209fd5e09 rearrange encode/upload, add URIs, switch to ReplicatingEncoder
Added metadata to the bucket store, which is used to hold the share number
(but the bucket doesn't know that, it just gets a string).

Modified the codec interfaces a bit.

Try to pass around URIs to/from download/upload instead of verifierids.
URI format is still in flux.

Change the current (primitive) file encoder to use a ReplicatingEncoder
because it provides ICodecEncoder. We will be moving to the (less primitive)
file encoder (currently in allmydata.encode_new) eventually, but for now
this change lets us test out PyRS or zooko's upcoming C-based RS codec in
something larger than a single unit test. This primitive file encoder only
uses a single segment, and has no merkle trees.

Also added allmydata.util.deferredutil for a DeferredList wrapper that
errbacks (but only when all component Deferreds have fired) if there were
any errors, which unfortunately is not a behavior available from the standard
DeferredList.
2007-01-15 21:22:22 -07:00
Brian Warner
417c17755b use the word 'codec' for erasure coding, for now. 'encode' is used for file-level segmentation/hashing 2007-01-11 20:51:27 -07:00
Brian Warner
9382d61208 use absolute import of 'allmydata.Crypto' rather than a relative import of just 'Crypto', to make it clear that we're using our own form rather than relying upon the system version 2007-01-05 21:12:26 -07:00
Brian Warner
cf04073e98 change Encoder to use py_ecc, now that it works 2007-01-05 18:12:45 -07:00
Brian Warner
436409fa4d change encode_new to use IEncoder 2007-01-04 23:51:35 -07:00
Brian Warner
fa11c3f722 more pyflakes cleanups 2007-01-04 18:06:20 -07:00
Zooko O'Whielacronx
5ad6c43622 add padding to segments and convert type from string to list of integers before passing to py_ecc
But then I get an error that I don't understand about ECC math...
2007-01-04 17:58:14 -07:00
Brian Warner
a6678b9a37 filetable_new: import py_ecc, make the tests get a little bit further 2007-01-01 23:44:12 -07:00
Zooko O'Whielacronx
b0315fc549 make encode_new use py_ecc for real live erasure coding
(This patch is not tested -- I'm working on a Mac which doesn't have gcc
installed...  (gcc is necessary for the crypto module.)  I will now attempt to
connect to a better development computer over my mom's staticy, failure-prone,
14.4 K modem...)
2006-12-29 13:50:53 -07:00
Zooko O'Whielacronx
dcfddcac41 encode_new: fix a bug in subshare hashes and tidy-up a couple of things 2006-12-29 12:40:10 -07:00
Brian Warner
eb3b9b16af encode: start to fix a few problems, still a lot of work left to go 2006-12-14 04:31:17 -07:00
Brian Warner
3e5e2ee9fe make initial simple encode_new test pass 2006-12-14 04:17:01 -07:00
Brian Warner
3490378551 move all packages into src/, fix allmydata.Crypto build. Now you must perform a 'setup.py build' before using anything, and you must add the build directory (build/lib.linux-i686-2.4) to your PYTHONPATH before doing anything 2006-12-14 03:39:50 -07:00