Skip to main content

Crate store_qmdb

Crate store_qmdb 

Source
Expand description

Store-backed bridge for Commonware authenticated storage proofs.

The crate currently supports multiple Commonware authenticated backends:

  • ordered QMDB (qmdb::any and qmdb::current::ordered)
  • 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-MMR nodes stored by Position.

Current ordered 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::QmdbError;
pub use proof::AuthenticatedOperationRangeProof;
pub use proof::CurrentOperationRangeProofResult;
pub use proof::KeyValueProofResult;
pub use proof::MultiProofResult;
pub use proof::OperationRangeProof;
pub use proof::UnorderedOperationRangeProof;
pub use proof::VariantOperationRangeProof;
pub use proof::VariantRoot;

Modules§

error
proof
prune

Structs§

CurrentBoundaryState
Current-state rows for one uploaded batch boundary.
ImmutableClient
KeylessClient
OrderedClient
UnorderedClient
UploadReceipt
Metadata returned after uploading one batch of QMDB operations.
VersionedValue
Historical value resolved for one logical key.

Enums§

QmdbVariant
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).