mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-02-21 10:01:54 +00:00
proposed/mutable-DSA.txt: add some new design criteria
This commit is contained in:
parent
d71adaf1ca
commit
5501983f5f
@ -10,6 +10,39 @@ This file shows only the differences from RSA-based mutable files to
|
||||
(EC)DSA-based mutable files. You have to read and understand mutable.txt before
|
||||
reading this file (mutable-DSA.txt).
|
||||
|
||||
== new design criteria ==
|
||||
|
||||
* provide for variable number of semiprivate sections?
|
||||
* put e.g. filenames in one section, readcaps in another, writecaps in a third
|
||||
(ideally, to modify a filename you'd only have to modify one section, and
|
||||
we'd make encrypting/hashing more efficient by doing it on larger blocks of
|
||||
data, preferably one segment at a time instead of one writecap at a time)
|
||||
* cleanly distinguish between "container" (leases, write-enabler) and
|
||||
"slot contents" (everything that comes from share encoding)
|
||||
* sign all slot bits (to allow server-side verification)
|
||||
* someone reading the whole file should be able to read the share in a single
|
||||
linear pass with just a single seek to zero
|
||||
* writing the file should occur in two passes (3 seeks) in mostly linear order
|
||||
1: write version/pubkey/topbits/salt
|
||||
2: write zeros / seek+prefill where the hashchain/tree goes
|
||||
3: write blocks
|
||||
4: seek back
|
||||
5: write hashchain/tree
|
||||
* storage format: consider putting container bits in a separate file
|
||||
- $SI.index (contains list of shnums, leases, other-cabal-members, WE, etc)
|
||||
- $SI-$shnum.share (actual share data)
|
||||
* possible layout:
|
||||
- version
|
||||
- pubkey
|
||||
- topbits (k, N, size, segsize, etc)
|
||||
- salt? (salt tree root?)
|
||||
- share hash root
|
||||
- share hash chain
|
||||
- block hash tree
|
||||
- (salts?) (salt tree?)
|
||||
- blocks
|
||||
- signature (of [version .. share hash root])
|
||||
|
||||
=== SDMF slots overview ===
|
||||
|
||||
Each SDMF slot is created with a DSA public/private key pair, using a
|
||||
|
Loading…
x
Reference in New Issue
Block a user