Expand description
Store-backed bridge for Commonware authenticated storage proofs.
The crate currently supports multiple Commonware authenticated backends:
- ordered QMDB (
qmdb::anyandqmdb::current::ordered) - unordered QMDB (
qmdb::any::unorderedand current hit proofs when callers upload current-boundary rows) - immutable (
qmdb::immutable) - keyless (
qmdb::keyless)
Writers upload exact Commonware operations into the Exoware store, then publish an externally authoritative watermark once the uploaded prefix is complete.
Uploads may still happen concurrently and out of order. Current batch-boundary
state may also be uploaded ahead of publication. Only watermark publication is
monotonic: publishing watermark W means the whole contiguous prefix
[0, W] is available and may now be trusted by readers.
Readers fence historical queries against that low watermark. Historical proofs
use the global ops Merkle nodes stored by Position.
Current QMDB proofs use versioned current-state deltas:
- bitmap chunk rows
- grafted-node rows
Those rows are versioned by uploaded batch boundary Location, not by the
final published watermark. That is what preserves lower-boundary current
proofs below a later published low watermark.
Re-exports§
pub use error::ProofKind;pub use error::QmdbError;pub use proof::CurrentOperationRangeProofResult;pub use proof::OperationRangeCheckpoint;pub use proof::RawKeyValueProof;pub use proof::RawMultiProof;pub use proof::VariantRoot;pub use proof::VerifiedCurrentRange;pub use proof::VerifiedKeyLookup;pub use proof::VerifiedKeyRange;pub use proof::VerifiedKeyValue;pub use proof::VerifiedMultiOperations;pub use proof::VerifiedOperationRange;pub use proof::VerifiedUnorderedKeyValue;pub use proof::VerifiedVariantRange;
Modules§
Structs§
- Built
Immutable Upload - Built
Keyless Upload - Deterministic output of a keyless row-build.
- Built
Ordered Upload - Built
Unordered Upload - Deterministic output of an unordered row-build.
- Current
Boundary State - Current-state rows for one uploaded current batch boundary.
- Current
Operation Client - Client for
qmdb.v1.CurrentOperationService, parameterized on the Merkle family and current-state operation type. - Current
Operation Range Proof - Current
Sync Resolver - Store-backed resolver for Commonware
current::syncover Exoware QMDB’s operation-log API. - Immutable
Client - Immutable
Writer - Sole-writer immutable QMDB helper. Pipelining, flushing, failure, and
sole-writer contract are identical to
KeylessWriter— see its docs for details. - Keyless
Client - Keyless
Writer - Sole-writer keyless QMDB helper.
- Operation
LogClient - Client for
qmdb.v1.OperationLogService, parameterized on the Merkle family and backend operation type. - Operation
LogRange Proof - Operation
LogSubscribe Proof - Operation
LogSubscription - Operation
LogSync Resolver - Store-backed resolver for Commonware QMDB sync over Exoware QMDB’s operation-log API.
- Ordered
Client - Ordered
Connect - Ordered
Connect Client - Ordered
Writer - Sole-writer ordered QMDB helper. Pipelining, flushing, failure, and
sole-writer contract are identical to
KeylessWriter— see its docs for details.prepare_uploadadditionally requires the caller-suppliedCurrentBoundaryStatefor the batch. - Prepared
Upload - A QMDB upload that has reserved writer state and encoded its Store rows, but has not yet been persisted.
- Prepared
Watermark - A prepared QMDB watermark row that should be staged into the same Store batch as the uploads it publishes.
- Published
Checkpoint - Writer publication point that is known to be durable in Store.
- Unordered
Client - Unordered
Connect - Unordered
Connect Client - Unordered
Writer - Sole-writer unordered QMDB helper. Pipelining, flushing, failure, and
sole-writer contract are identical to
KeylessWriter— see its docs for details. - Upload
Receipt - Metadata returned after uploading one batch of QMDB operations.
- Versioned
Value - Historical value resolved for one logical key.
- Writer
State - Caller-owned frontier for resuming a single-writer helper without reading the store.
Enums§
- Qmdb
Variant - QMDB proof/root variant supported by
exoware-qmdb.
Constants§
- MAX_
OPERATION_ SIZE - Maximum encoded operation size for QMDB key and value payloads (u16 length on the wire).
Functions§
- build_
immutable_ upload - build_
keyless_ upload - Pure function: from the Merkle peaks preceding the batch, compute every
store row needed to persist
opsas a single atomic PUT. No I/O. - build_
ordered_ upload - Build every store row for one ordered batch: op rows, update-index rows,
presence row, Merkle node rows (derived from the supplied peaks), current-state
rows (from the caller-supplied
current_boundary), and optionally the watermark row. No I/O. - build_
unordered_ upload - Pure row-build for an unordered batch. Produces op rows, update-index rows for keyed ops, presence row, Merkle node rows, and (optionally) the watermark row.
- immutable_
operation_ log_ connect_ stack - keyless_
operation_ log_ connect_ stack - ordered_
connect_ stack - Mount key lookup, ordered key range, and operation subscription services on one endpoint, so a single HTTP URL serves the full ordered-QMDB surface.
- recover_
boundary_ state - Recover the current-boundary delta for one batch from local proof material
emitted by a Commonware
currentQMDB. - unordered_
connect_ stack - Mount current key lookup and operation subscription services on one unordered-QMDB endpoint. Unordered supports hit proofs for explicit keys but does not expose key-space range or missing-key exclusion proofs.
- unordered_
operation_ log_ connect_ stack