Skip to main content

Crate exoware_qmdb

Crate exoware_qmdb 

Source
Expand description

Store-backed bridge for Commonware authenticated storage proofs.

The crate currently supports multiple Commonware authenticated backends:

  • ordered QMDB (qmdb::any::ordered and qmdb::current::ordered)
  • unordered QMDB (qmdb::any::unordered and current hit proofs when callers upload current-boundary rows)
  • immutable (qmdb::immutable)
  • keyless (qmdb::keyless)

Callers provide authenticated Commonware operation ranges and stage their Store rows without constructing an uploader or reading remote state. An application-owned durable queue publishes the watermark after the whole contiguous prefix is durable.

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::VerifiedCurrentRange;
pub use proof::VerifiedKeyLookup;
pub use proof::VerifiedKeyRange;
pub use proof::VerifiedKeyValue;
pub use proof::VerifiedMultiOperations;
pub use proof::VerifiedOperationRange;

Modules§

error
proof
proto
prune

Structs§

AuthenticatedOperationRange
An operation range ending at the leaf count committed by its proof.
CurrentBoundaryState
Current-state rows for one uploaded current batch boundary.
CurrentOperationClient
Client for qmdb.v1.CurrentOperationService, parameterized on the Merkle family and current-state operation type.
CurrentOperationRangeProof
ImmutableClient
KeylessClient
OperationLogClient
Client for qmdb.v1.OperationLogService, parameterized on the Merkle family and backend operation type. Implements Commonware QMDB sync Source. Callers supply a target with an independently trusted operation-log root.
OperationLogRangeProof
OperationLogSubscribeProof
OperationLogSubscription
OrderedClient
OrderedConnect
OrderedConnectClient
PreparedAuthenticatedRange
Deterministic logical Store rows authenticated against an independently trusted root.
UnorderedClient
UnorderedConnect
UnorderedConnectClient
VersionedValue
Historical value resolved for one logical key.

Constants§

MAX_OPERATION_SIZE
Maximum encoded operation size for QMDB key and value payloads (u16 length on the wire).

Traits§

UploadOperation
A QMDB operation whose keyed changes can be indexed for historical queries.

Functions§

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.
ordered_operation_log_connect_stack
prepare_authenticated_range
Verify an operation range and prepare its operation, index, and Merkle node rows.
recover_boundary_state
Recover the current-boundary delta for one batch from local proof material emitted by a Commonware current QMDB.
stage_authenticated_range
Stage authenticated range rows under the client’s configured namespace.
stage_watermark
Stage a published commit location under the client’s configured namespace.
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