Immutable
release. Only release title and notes can be modified.
For a summary of notable changes, please refer to the Release Notes.
What's Changed
- [storage/qmdb] Fix Benchmarking Setup by @patrick-ogrady in #3597
- [storage/qmdb] vectorize small maps in batch API by @roberto-bayardo in #3591
- [storage] Fix Benchmarks Regression by @patrick-ogrady in #3599
- [Storage] Implement state sync for
qmdb::keylessby @danlaine in #3587 - [Storage] Add read-many methods by @danlaine in #3574
- [runtime] Remove
async movewrapping fromspawn_cell!by @patrick-ogrady in #3605 - [Storage/qmdb/current] fix MMB prune + growth root computation bug by bounding pruning by @danlaine in #3593
- [runtime/append] Append::read_many_into test all items and concurrent reads by @andresilva in #3604
- [runtime/iouring] wakeup through futex or eventfd by @andresilva in #3606
- [examples/reshare] Set
is_dkgCorrectly after Restart by @patrick-ogrady in #3615 - [blogs] BTE by @patrick-ogrady in #3619
- [storage/qmdb/sync] bind fetches to target size and wait for boundary state by @clabby in #3607
- [storage/merkle] fix verify_proof_and_pinned_nodes by @roberto-bayardo in #3611
- [Storage] Cache
pruned_chunksinBitmapBatchLayer;leninOnesIterby @danlaine in #3623 - [Storage]
qmdb::current: fasterChunkOverlaymap, iterativeget_chunkby @danlaine in #3625 - Update fixed journal operations by @dnkolegov-ar in #3602
- [storage/qmdb/current] add ability to authenticate ops root from qmdb canonical root by @roberto-bayardo in #3610
- [consensus/simplex+marshal] Auto-certify locally proposed views + Improve Durability Guarantees by @clabby in #3543
- [storage/qmdb/bench] chained-growth benchmark by @roberto-bayardo in #3633
- [runtime] Fix Flaky Affinity Test by @patrick-ogrady in #3638
- [consensus/marshal] Cache Proposed Block by @patrick-ogrady in #3641
- [Storage] Add conformance and order-independence tests for QMDB by @danlaine in #3554
- adds pipelined decryption by @guruvamsi-policharla in #3643
- [workspace] clippy and fmt by @andresilva in #3644
- [storage/qmdb] Support generalized Merkle family in qmdb state sync by @roberto-bayardo in #3626
- [storage/qmdb] Optimized ordered+chained path with sorted vectors instead of BTreeMap by @roberto-bayardo in #3640
- [runtime] storage benchmarking harness by @andresilva in #3596
- [storage/merkle] use vectors instead of BtreeSet for height sorting in merkleization by @roberto-bayardo in #3642
- [runtime/iouring] idle spinner by @andresilva in #3618
- [storage/qmdb/current] fix bitmap batch parent chain growth with rwlock by @roberto-bayardo in #3627
- [Storage] Add inactivity floor to
qmdb::immutableCommit operation by @danlaine in #3588 - [Storage] Add inactivity floor to
qmdb::keylessCommit operation by @danlaine in #3624 - changes paper link to eprint by @guruvamsi-policharla in #3652
- [storage/fuzz] generalize fuzz tests on merkle family by @roberto-bayardo in #3646
- [storage] add get_many batch read API to qmdb variants by @clabby in #3637
- [storage] invalidate rewinded pages in page cache by @roberto-bayardo in #3653
- [storage] Generalize benchmarks on Merkle family by @roberto-bayardo in #3651
- [ci] Allocate swap memory by @clabby in #3655
- [coding/zoda] Accept caller-provided namespace in ZODA encoding by @cronokirby in #3409
- [runtime] Use Owned Metrics (Remove Scope) + Allow Duplicates by @patrick-ogrady in #3648
- [storage/journal] allow try_read_sync to read from the append buffer in addition to the page cache by @roberto-bayardo in #3656
- [cryptography] Vendor
ed25519-consensusby @clabby in #3616 - [cryptography] Reuse decompressed Ed25519 batch keys by @clabby in #3617
- [ci] Increase Optimization Level for Cryptography Crates in Tests by @patrick-ogrady in #3672
- [Storage] Add "compact"
qmdb::keyless,qmdb::immutable, persisted merkle implementations by @danlaine in #3650 - [runtime/iouring] clarify docs around shutdown by @andresilva in #3676
- [storage] report qmdb sync progress by @clabby in #3663
- [Storage] Fix merkle::update benchmark misuse of iter_custom by @danlaine in #3677
- [storage/merkle] clarify batch invalidation by @roberto-bayardo in #3675
- [Storage] Make QMDB
stream_range: Sendby @danlaine in #3679 - [Storage] Fix
qmdb::immutablechained batch floor validation by @danlaine in #3654 - [runtime/iobuf/pool] striped atomic bitmap freelist by @andresilva in #3546
- [codec] specialize codec for byte containers by @andresilva in #3673
- [utils] Add Reservation by @patrick-ogrady in #3683
- [Storage] Use bitmap for merkleization in
qmdb::anyby @danlaine in #3662 - [storage/qmdb/immutable] Fix bug in rewind when keys collide in snapshot by @roberto-bayardo in #3695
- [resolver] Async Consumer Delivery by @patrick-ogrady in #3691
- [runtime/iobuf/pool] don't cap tls cache at 8 buffers by @andresilva in #3685
- [runtime/network] poison sink/stream on error and cancellation by @andresilva in #3501
- commonware-formatting by @michaelkaplan13 in #3696
- [Storage] Use
commonware-parallelincommonware-storageby @danlaine in #3674 - [codec] Avoid cloning bytes in
Lazy::getby @clabby in #3701 - Edit AGENTS.md by @danlaine in #3703
- [consensus/marshal] Cheaper
CodedBlock::cloneby @clabby in #3708 - [ci] Benchmark tracking by @clabby in #3698
- [storage] Support configurable bagging in merkle root computation by @roberto-bayardo in #3667
- [runtime/iobuf/freelist] add loom model by @andresilva in #3692
- [utils] Optimize Bitmap Encoding by @patrick-ogrady in #3715
- [runtime/iouring/waker] add loom model by @andresilva in #3711
- [storage/qmdb/current] support split (pyramid) bagging in qmdb-current by @roberto-bayardo in #3693
- [storage/qmdb/current] have current proof types implement codec by @roberto-bayardo in #3717
- [docs] Pyramid Bagging by @patrick-ogrady in #3724
- [Storage] Use read_many in
qmdb::any::Merkleizer::read_opsby @danlaine in #3725 - [Storage] Replace
BTreeSet,HashSet,HashMapwithAHashSet,AHashMapby @danlaine in #3729 - [runtime] Refactor Context API by @patrick-ogrady in #3680
- [utils/bitmap] Roaring Bitmap by @michaelkaplan13 in #3687
- [ci] Bump build job timeout by @clabby in #3732
- [storage/journal] batch read/append journal optimizations by @roberto-bayardo in #3709
- [ci] Fix Benchmarks by @patrick-ogrady in #3738
- [Storage] Add contiguous journal and QMDB metrics by @danlaine in #3721
- [workspace] rustfmt by @andresilva in #3740
- [storage/qmdb/current] Refactor current range proof planning by @roberto-bayardo in #3731
- [storage/merkle] fix exp(height) performance issue in collect siblings by @roberto-bayardo in #3742
[storage/qmdb]OptimizeDb::apply_batchsnapshot merge by @danlaine in #3730- [Storage] Deduplicate common QMDB code; refactor compact witness by @danlaine in #3699
- [cryptography] Parallel-capable
BatchVerifierby @clabby in #3749 - [storage] Parameterize resolver impls over Strategy by @clabby in #3750
- [consensus/simplex] Clarify Failure Semantics by @patrick-ogrady in #3753
- [consensus] Remove
VerifyingApplicationby @clabby in #3754 - [storage] require explicit Strategy generics by @clabby in #3751
- [consensus/marshal] Prevent Unnecessary Erasure Coding by @patrick-ogrady in #3756
- [Storage] Add
qmdb::anytracing by @danlaine in #3737 - [actors] Introduce
Mailboxby @patrick-ogrady in #3739 - [blogs] Route 66 by @patrick-ogrady in #3763
- [runtime/iobuf/pool] optimize local cache hot path by @andresilva in #3728
- [coding] Reject non-canonical RS encoding by @clabby in #3758
- [storage/qmdb] appropriate items-per-blob in apply_batch benchmark by @roberto-bayardo in #3766
- [storage] Expose QMDB batch bounds by @clabby in #3765
- [Storage] Refactor
qmdb::currentgrafting/proofs by @danlaine in #3743 - [ci] Install Rust toolchain from
dtolnay/rust-toolchainby @clabby in #3777 - [storage] Expose More QMDB Proof Logic by @patrick-ogrady in #3773
- [consensus/simplex] Internal Message Migration by @patrick-ogrady in #3768
- [ci] Disable
swatinem/rust-cachecache-binby @clabby in #3781 - [ci] Add dependency cooldown check by @clabby in #3780
- [runtime/iobuf/pool] pooled buffers share Layout by @andresilva in #3752
- [cryptography] bump aws-lc-rs to 1.16.3 by @andresilva in #3787
- [actor] Add Custom Overflow Types by @patrick-ogrady in #3789
- [consensus] Sync Reporter by @patrick-ogrady in #3785
- [resolver] Migrate to Mailbox by @patrick-ogrady in #3791
- [ci] Fix fmt by @patrick-ogrady in #3793
- [storage] Fix Benchmarks by @patrick-ogrady in #3794
- [ci] Bump performance benchmark samples by @clabby in #3799
- [runtime/iobuf/pool] remove Arc from pooled hot path by @andresilva in #3767
- fix sync bug from journal crash by @roberto-bayardo in #3798
- [actor] Add Backoff Metrics by @patrick-ogrady in #3802
- [ci] Fix QMDB Benchmarks by @patrick-ogrady in #3803
- [ci] Fix benchmarks (Again) by @patrick-ogrady in #3808
- [p2p] Migrate to Mailbox by @patrick-ogrady in #3795
- [examples] Migrate to Actor Mailbox by @patrick-ogrady in #3806
- [storage/qmdb/sync] Avoid requiring a trusted ops root in current qmdb sync by @roberto-bayardo in #3778
- [workspace] rustfmt by @andresilva in #3817
- [storage] Avoid blocking readers during metadata fsync and relax full Merkle apply_batch to &self by @roberto-bayardo in #3775
- [resolver] Add Subscribers + Clarify Fetch Semantics in Marshal by @patrick-ogrady in #3796
- [docs] Phone a Friend by @patrick-ogrady in #3829
- [docs] Center Align by @patrick-ogrady in #3830
- [consensus] document
Applicationcancellation safety by @clabby in #3826 - [consensus/marshaled] Time
standardparent fetches duringproposeby @clabby in #3827 - [resolver] Remove Loom Tests by @patrick-ogrady in #3831
- [resolver] Remove Useless Loom Dep by @patrick-ogrady in #3833
- [consensus] Restore marshal ancestor stream symmetry by @clabby in #3835
- [runtime] add Blob::write_at_sync by @andresilva in #3840
- [cryptography] Golden DKG by @cronokirby in #3704
- [consensus] Improve State Sync Ergonomics by @patrick-ogrady in #3828
- [runtime] append page-size shrink crash safety fix by @roberto-bayardo in #3837
- [marshal] Add Regression Test for Pending Acks by @patrick-ogrady in #3848
- Add Golden blog post by @cronokirby in #3836
- [actor] Add Unreliable Feedback Type by @patrick-ogrady in #3849
- [cryptography] Clarify DKG differences by @cronokirby in #3854
- updated twitter handle by @guruvamsi-policharla in #3859
- [runtime/utils/buffer/write] use
Blob::write_at_syncby @andresilva in #3852 - [consensus/marshal]
commonware-gluemarshal changes by @clabby in #3764 - [runtime/utils/buffer/append] use
Blob::write_at_syncby @andresilva in #3857 - [storage] use
Blob::write_at_syncby @andresilva in #3858 - [runtime/iobuf/pool] improve buffer pool defaults by @andresilva in #3860
- [consensus/marshal]
AncestorStreamfetch duration histogram by @clabby in #3832 - [marshal] Start at Anchor by @patrick-ogrady in #3855
- [marshal] Exoware Tweaks by @patrick-ogrady in #3863
- [marshal] Alto Tweaks by @patrick-ogrady in #3862
- [ci] Use Slow Tests by @patrick-ogrady in #3865
- [resolver] Add Delivery Helper by @patrick-ogrady in #3867
- [runtime/storage/iouring] serialize storage operations by @andresilva in #3869
- [storage/index] Deduplicate
Cursorby @danlaine in #3876 - [glue] Introduce
commonware-glueby @clabby in #3381 - [broadcast/fuzz] fix subscribe deadlock by @andresilva in #3880
- [stream/fuzz] fix connection target deadlock on large messages by @andresilva in #3883
- [build] trim dev debuginfo to line tables for faster builds by @andresilva in #3875
- [storage/index] Rename
prunetoretainby @danlaine in #3879 - [Storage] Revert PR 3778 by @danlaine in #3887
- Final Pass on Actor Semantics by @patrick-ogrady in #3866
- [qmdb] Resolver Dedup by @patrick-ogrady in #3871
- [storage/index] Cursor trait/bound cleanups by @danlaine in #3877
- [storage/index] simplify+optimize Cursor by @roberto-bayardo in #3760
- [runtime/fuzz] cap max cache size to 64MB by @andresilva in #3888
- [glue] Make Compact Handling More Robust by @patrick-ogrady in #3892
- [glue/stateful] Gracefully recover from partial state sync by @clabby in #3896
- [release] Stage
v2026.5.0by @patrick-ogrady in #3890
New Contributors
- @michaelkaplan13 made their first contribution in #3696
Full Changelog: v2026.4.0...v2026.5.0
Stats
.github/actions/disk/action.yml | 33 +
.github/actions/setup/action.yml | 38 +
.github/benchmark-tracking.toml | 56 +
.../borrowed_child_context/.cargo/config.toml | 2 +
.github/dylints/borrowed_child_context/Cargo.lock | 1609 +++++
.github/dylints/borrowed_child_context/Cargo.toml | 18 +
.../dylints/borrowed_child_context/rust-toolchain | 5 +
.github/dylints/borrowed_child_context/src/lib.rs | 80 +
.github/dylints/borrowed_child_context/ui/main.rs | 40 +
.../dylints/borrowed_child_context/ui/main.stderr | 66 +
.../.cargo/config.toml | 2 +
.../child_attribute_name_conflict/Cargo.lock | 1609 +++++
.../child_attribute_name_conflict/Cargo.toml | 18 +
.../child_attribute_name_conflict/rust-toolchain | 5 +
.../child_attribute_name_conflict/src/lib.rs | 147 +
.../child_attribute_name_conflict/ui/main.rs | 46 +
.../child_attribute_name_conflict/ui/main.stderr | 87 +
.github/scripts/benchmark-tracking.py | 477 ++
.github/scripts/check_conformance_label.sh | 53 +-
.github/scripts/lint_benchmark_names.py | 12 +
.github/workflows/benchmark.yml | 74 +-
.github/workflows/conformance-label.yml | 5 +-
.github/workflows/coverage.yml | 7 +-
.github/workflows/fast.yml | 55 +-
.github/workflows/loom.yml | 43 +
.github/workflows/performance.yml | 141 +
.github/workflows/publish.yml | 28 +-
.github/workflows/slow.yml | 49 +-
AGENTS.md | 65 +-
Cargo.lock | 525 +-
Cargo.toml | 147 +-
README.md | 3 +
RELEASE_NOTES.md | 273 +
actor/Cargo.toml | 39 +
actor/README.md | 10 +
actor/src/benches/bench.rs | 5 +
actor/src/benches/mailbox.rs | 411 ++
actor/src/lib.rs | 76 +
actor/src/mailbox.rs | 2280 ++++++++
broadcast/Cargo.toml | 2 +-
broadcast/fuzz/Cargo.toml | 1 +
.../fuzz_targets/broadcast_engine_operations.rs | 84 +-
broadcast/src/buffered/config.rs | 3 +-
broadcast/src/buffered/engine.rs | 41 +-
broadcast/src/buffered/ingress.rs | 113 +-
broadcast/src/buffered/metrics.rs | 68 +-
broadcast/src/buffered/mod.rs | 610 +-
broadcast/src/lib.rs | 17 +-
codec/src/codec.rs | 153 +
codec/src/lib.rs | 22 +-
codec/src/types/lazy.rs | 4 +-
codec/src/types/mod.rs | 142 +
codec/src/types/primitives.rs | 223 +-
codec/src/types/vec.rs | 140 +-
coding/fuzz/src/lib.rs | 6 +-
coding/src/benches/bench_phased.rs | 12 +-
coding/src/benches/bench_phased_size.rs | 5 +-
coding/src/lib.rs | 51 +-
coding/src/reed_solomon.rs | 325 +-
coding/src/zoda/mod.rs | 18 +-
collector/Cargo.toml | 4 +-
collector/fuzz/Cargo.toml | 1 +
collector/fuzz/fuzz_targets/collector.rs | 57 +-
collector/src/lib.rs | 28 +-
collector/src/p2p/engine.rs | 87 +-
collector/src/p2p/ingress.rs | 290 +-
collector/src/p2p/mocks/handler.rs | 2 +-
collector/src/p2p/mocks/monitor.rs | 7 +-
collector/src/p2p/mocks/sender.rs | 28 +-
collector/src/p2p/mod.rs | 204 +-
conformance/Cargo.toml | 1 +
conformance/src/lib.rs | 21 +-
consensus/Cargo.toml | 3 +-
consensus/conformance.toml | 10 +-
consensus/fuzz/src/disrupter.rs | 74 +-
consensus/fuzz/src/lib.rs | 131 +-
consensus/src/aggregation/engine.rs | 76 +-
consensus/src/aggregation/metrics.rs | 49 +-
consensus/src/aggregation/mocks/application.rs | 11 +-
consensus/src/aggregation/mocks/reporter.rs | 87 +-
consensus/src/aggregation/mod.rs | 172 +-
consensus/src/aggregation/types.rs | 5 -
consensus/src/lib.rs | 92 +-
consensus/src/marshal/ancestry.rs | 463 +-
consensus/src/marshal/application/validation.rs | 36 +-
.../src/marshal/application/verification_tasks.rs | 111 +
consensus/src/marshal/coding/marshaled.rs | 1033 ++--
consensus/src/marshal/coding/mod.rs | 1781 +++++-
consensus/src/marshal/coding/shards/engine.rs | 1828 +++---
consensus/src/marshal/coding/shards/mailbox.rs | 209 +-
consensus/src/marshal/coding/shards/metrics.rs | 62 +-
consensus/src/marshal/coding/shards/mod.rs | 2 +-
consensus/src/marshal/coding/types.rs | 134 +-
consensus/src/marshal/coding/variant.rs | 78 +-
consensus/src/marshal/config.rs | 57 +-
consensus/src/marshal/conformance.rs | 127 +
consensus/src/marshal/core/acks.rs | 192 +
consensus/src/marshal/core/actor.rs | 1983 ++++---
consensus/src/marshal/core/cache.rs | 144 +-
consensus/src/marshal/core/delivery.rs | 37 +
consensus/src/marshal/core/floor.rs | 413 ++
consensus/src/marshal/core/mailbox.rs | 1456 ++++-
consensus/src/marshal/core/mod.rs | 15 +-
consensus/src/marshal/core/stream.rs | 82 +
consensus/src/marshal/core/subscriptions.rs | 324 ++
consensus/src/marshal/core/variant.rs | 101 +-
consensus/src/marshal/mocks/application.rs | 4 +-
consensus/src/marshal/mocks/harness.rs | 2053 ++++++-
consensus/src/marshal/mocks/verifying.rs | 130 +-
consensus/src/marshal/mod.rs | 17 +-
consensus/src/marshal/resolver/handler.rs | 680 ++-
consensus/src/marshal/resolver/p2p.rs | 28 +-
consensus/src/marshal/standard/deferred.rs | 1173 ++--
consensus/src/marshal/standard/inline.rs | 1135 +++-
consensus/src/marshal/standard/mod.rs | 4956 ++++++++++++++--
consensus/src/marshal/standard/validation.rs | 109 +-
consensus/src/marshal/standard/variant.rs | 66 +-
consensus/src/ordered_broadcast/engine.rs | 105 +-
consensus/src/ordered_broadcast/metrics.rs | 99 +-
consensus/src/ordered_broadcast/mocks/automaton.rs | 14 +-
consensus/src/ordered_broadcast/mocks/reporter.rs | 87 +-
consensus/src/ordered_broadcast/mod.rs | 96 +-
consensus/src/ordered_broadcast/types.rs | 8 -
consensus/src/reporter.rs | 59 +-
consensus/src/simplex/actors/batcher/actor.rs | 186 +-
consensus/src/simplex/actors/batcher/ingress.rs | 438 +-
consensus/src/simplex/actors/batcher/mod.rs | 886 ++-
consensus/src/simplex/actors/batcher/round.rs | 42 +-
consensus/src/simplex/actors/resolver/actor.rs | 50 +-
consensus/src/simplex/actors/resolver/ingress.rs | 545 +-
consensus/src/simplex/actors/resolver/mod.rs | 6 +-
consensus/src/simplex/actors/resolver/state.rs | 305 +-
consensus/src/simplex/actors/voter/actor.rs | 266 +-
consensus/src/simplex/actors/voter/ingress.rs | 345 +-
consensus/src/simplex/actors/voter/mod.rs | 6138 +++++++++++++-------
consensus/src/simplex/actors/voter/round.rs | 118 +-
consensus/src/simplex/actors/voter/slot.rs | 55 +-
consensus/src/simplex/actors/voter/state.rs | 247 +-
consensus/src/simplex/config.rs | 59 +-
consensus/src/simplex/engine.rs | 26 +-
consensus/src/simplex/metrics.rs | 33 +-
consensus/src/simplex/mocks/application.rs | 125 +-
consensus/src/simplex/mocks/conflicter.rs | 14 +-
consensus/src/simplex/mocks/equivocator.rs | 33 +-
consensus/src/simplex/mocks/impersonator.rs | 6 +-
consensus/src/simplex/mocks/nuller.rs | 6 +-
consensus/src/simplex/mocks/nullify_only.rs | 4 +-
consensus/src/simplex/mocks/outdated.rs | 6 +-
consensus/src/simplex/mocks/reconfigurer.rs | 8 +-
consensus/src/simplex/mocks/reporter.rs | 80 +-
consensus/src/simplex/mocks/twins.rs | 6 +-
consensus/src/simplex/mod.rs | 1492 +++--
.../src/simplex/scheme/bls12381_threshold/mod.rs | 2 +-
.../src/simplex/scheme/bls12381_threshold/vrf.rs | 171 +-
consensus/src/simplex/scheme/reporter.rs | 74 +-
consensus/src/types.rs | 8 +-
cooldown.toml | 4 +
cryptography/Cargo.toml | 20 +-
cryptography/conformance.toml | 40 +-
cryptography/fuzz/Cargo.toml | 21 +-
.../fuzz/fuzz_targets/bls12381_batch_operations.rs | 3 +-
...2381_dkg.rs => bls12381_dkg_feldman_desmedt.rs} | 2 +-
.../fuzz/fuzz_targets/bls12381_dkg_golden.rs | 25 +
.../fuzz/fuzz_targets/ed25519_batch_verifier.rs | 5 +-
cryptography/fuzz/fuzz_targets/ed25519_decode.rs | 274 +-
cryptography/fuzz/fuzz_targets/zk.rs | 10 +
cryptography/src/blake3/mod.rs | 13 +-
.../benches/aggregate_verify_same_signer.rs | 10 +-
cryptography/src/bls12381/benches/bench.rs | 9 +-
cryptography/src/bls12381/benches/dkg.rs | 184 +-
.../src/bls12381/benches/dkg/feldman_desmedt.rs | 182 +
cryptography/src/bls12381/benches/dkg/golden.rs | 131 +
.../benches/scheme_batch_verify_same_message.rs | 43 +-
.../benches/scheme_batch_verify_same_signer.rs | 60 +-
.../benches/threshold_batch_verify_same_message.rs | 8 +-
... => threshold_batch_verify_same_message_pre.rs} | 12 +-
.../benches/threshold_batch_verify_same_signer.rs | 103 +
.../src/bls12381/benches/threshold_recover.rs | 2 +-
.../src/bls12381/certificate/threshold/mocks.rs | 2 +-
.../src/bls12381/certificate/threshold/mod.rs | 2 +-
.../bls12381/{dkg.rs => dkg/feldman_desmedt.rs} | 32 +-
.../src/bls12381/dkg/golden/evrf/bandersnatch.rs | 636 ++
cryptography/src/bls12381/dkg/golden/evrf/mod.rs | 976 ++++
cryptography/src/bls12381/dkg/golden/mod.rs | 2218 +++++++
cryptography/src/bls12381/dkg/mod.rs | 19 +
cryptography/src/bls12381/primitives/group.rs | 11 +-
cryptography/src/bls12381/primitives/mod.rs | 2 +-
cryptography/src/bls12381/primitives/ops/mod.rs | 25 +-
.../src/bls12381/primitives/ops/threshold.rs | 2 +-
cryptography/src/bls12381/scheme.rs | 30 +-
cryptography/src/crc32/mod.rs | 7 +-
.../ed25519/benches/batch_verify_same_message.rs | 43 +-
.../ed25519/benches/batch_verify_same_signer.rs | 60 +-
cryptography/src/ed25519/certificate/mod.rs | 157 +-
cryptography/src/ed25519/core/batch.rs | 224 +
cryptography/src/ed25519/core/error.rs | 15 +
cryptography/src/ed25519/core/mod.rs | 29 +
cryptography/src/ed25519/core/signature.rs | 63 +
cryptography/src/ed25519/core/signing_key.rs | 160 +
cryptography/src/ed25519/core/verification_key.rs | 246 +
cryptography/src/ed25519/mod.rs | 14 +-
cryptography/src/ed25519/scheme.rs | 90 +-
cryptography/src/handshake.rs | 2 +-
cryptography/src/lib.rs | 5 +-
cryptography/src/secp256r1/common.rs | 26 +-
cryptography/src/secp256r1/recoverable.rs | 21 +-
cryptography/src/secp256r1/standard.rs | 21 +-
cryptography/src/sha256/mod.rs | 13 +-
cryptography/src/transcript.rs | 9 +-
cryptography/src/zk/bulletproofs/circuit.rs | 1964 +++++++
cryptography/src/zk/bulletproofs/ipa.rs | 1140 ++++
cryptography/src/zk/bulletproofs/mod.rs | 31 +
cryptography/src/zk/mod.rs | 33 +
cryptography/src/zk/pedersen_to_plain.rs | 632 ++
docs/blogs/batch-pari.html | 97 +-
docs/blogs/batch-pari.md | 2 +-
docs/blogs/bte.html | 428 ++
docs/blogs/bte.md | 194 +
docs/blogs/carnot-bound.html | 68 +-
docs/blogs/coding.html | 2 +-
docs/blogs/commonware-cryptography.html | 4 +-
docs/blogs/golden-000.png | Bin 0 -> 9358 bytes
docs/blogs/golden-001.png | Bin 0 -> 12529 bytes
docs/blogs/golden.html | 626 ++
docs/blogs/golden.md | 445 ++
docs/blogs/phone-a-friend.html | 816 +++
docs/blogs/phone-a-friend.md | 370 ++
docs/blogs/pyramid-mmb.html | 384 ++
docs/blogs/pyramid-mmb.md | 66 +
docs/blogs/reshare.html | 6 +-
docs/blogs/route-66.html | 157 +
docs/blogs/route-66.md | 29 +
docs/blogs/zoda.html | 291 +-
docs/imgs/bagging_mmb.jpeg | Bin 0 -> 1699452 bytes
docs/imgs/batch-mempool-decryption.png | Bin 0 -> 1079158 bytes
docs/imgs/bte.png | Bin 0 -> 73525 bytes
docs/imgs/encrypted-transaction.png | Bin 0 -> 301344 bytes
docs/imgs/gandalf-you-shall-not-pass.jpg | Bin 0 -> 81080 bytes
docs/imgs/many-blockchain-stacks.png | Bin 0 -> 374677 bytes
docs/imgs/mmr-leaf-age.png | Bin 0 -> 93695 bytes
docs/imgs/mmr-vs-mmb.png | Bin 0 -> 153950 bytes
docs/imgs/mmr_combined_linear.png | Bin 0 -> 491379 bytes
.../mmr_mmb_variants_worst_case_comparison.png | Bin 0 -> 755973 bytes
docs/imgs/mmr_recent_average_comparison.png | Bin 0 -> 393458 bytes
docs/imgs/mmr_recent_pyramid_mmr_comparison.png | Bin 0 -> 414729 bytes
docs/imgs/modern-blockchain-stack.png | Bin 0 -> 53674 bytes
docs/imgs/pyramid-bagging.png | Bin 0 -> 121728 bytes
docs/imgs/route-66.png | Bin 0 -> 187794 bytes
docs/index.html | 34 +-
docs/makefile | 2 +-
docs/style.css | 18 +
docs/template.html | 9 +-
examples/bridge/Cargo.toml | 3 +-
examples/bridge/src/application/actor.rs | 28 +-
examples/bridge/src/application/ingress.rs | 70 +-
examples/bridge/src/application/mod.rs | 14 +-
examples/bridge/src/bin/dealer.rs | 5 +-
examples/bridge/src/bin/indexer.rs | 10 +-
examples/bridge/src/bin/validator.rs | 38 +-
examples/chat/Cargo.toml | 2 +-
examples/chat/src/handler.rs | 11 +-
examples/chat/src/main.rs | 9 +-
examples/estimator/Cargo.toml | 1 -
examples/estimator/src/main.rs | 27 +-
examples/flood/Cargo.toml | 2 +-
examples/flood/dashboard.json | 97 -
examples/flood/src/bin/flood.rs | 67 +-
examples/flood/src/bin/setup.rs | 7 +-
examples/flood/src/lib.rs | 3 +-
examples/log/Cargo.toml | 3 +-
examples/log/src/application/actor.rs | 41 +-
examples/log/src/application/ingress.rs | 62 +-
examples/log/src/application/mod.rs | 17 +-
examples/log/src/application/reporter.rs | 6 +-
examples/log/src/gui.rs | 2 +-
examples/log/src/main.rs | 20 +-
examples/reshare/Cargo.toml | 4 +-
examples/reshare/src/application/core.rs | 62 +-
examples/reshare/src/application/scheme.rs | 2 +-
examples/reshare/src/application/types.rs | 21 +-
examples/reshare/src/dkg/actor.rs | 373 +-
examples/reshare/src/dkg/egress.rs | 2 +-
examples/reshare/src/dkg/ingress.rs | 59 +-
examples/reshare/src/dkg/state.rs | 59 +-
examples/reshare/src/engine.rs | 39 +-
examples/reshare/src/main.rs | 7 +-
examples/reshare/src/orchestrator/actor.rs | 119 +-
examples/reshare/src/orchestrator/ingress.rs | 49 +-
examples/reshare/src/orchestrator/mod.rs | 2 +
examples/reshare/src/setup.rs | 10 +-
examples/reshare/src/validator.rs | 43 +-
examples/sync/Cargo.toml | 2 +-
examples/sync/README.md | 156 +-
examples/sync/src/bin/client.rs | 472 +-
examples/sync/src/bin/server.rs | 678 ++-
examples/sync/src/databases/any.rs | 46 +-
examples/sync/src/databases/current.rs | 62 +-
examples/sync/src/databases/immutable.rs | 72 +-
examples/sync/src/databases/immutable_compact.rs | 97 +
examples/sync/src/databases/keyless.rs | 202 +
examples/sync/src/databases/keyless_compact.rs | 97 +
examples/sync/src/databases/mod.rs | 246 +-
examples/sync/src/error.rs | 12 +-
examples/sync/src/lib.rs | 11 +-
examples/sync/src/net/io.rs | 30 +-
examples/sync/src/net/mod.rs | 59 +-
examples/sync/src/net/resolver.rs | 163 +-
examples/sync/src/net/wire.rs | 216 +-
formatting/Cargo.toml | 34 +
formatting/README.md | 10 +
formatting/src/benches/bench.rs | 7 +
formatting/src/benches/decode.rs | 56 +
formatting/src/benches/display.rs | 32 +
formatting/src/benches/encode.rs | 23 +
{utils => formatting}/src/hex_literal.rs | 25 -
formatting/src/lib.rs | 185 +
glue/Cargo.toml | 61 +
glue/README.md | 9 +
glue/conformance.toml | 11 +
glue/src/lib.rs | 12 +
glue/src/simulate/action.rs | 109 +
glue/src/simulate/engine.rs | 78 +
glue/src/simulate/exit.rs | 103 +
glue/src/simulate/mod.rs | 23 +
glue/src/simulate/plan.rs | 1118 ++++
glue/src/simulate/processed.rs | 15 +
glue/src/simulate/property.rs | 34 +
glue/src/simulate/reporter.rs | 56 +
glue/src/simulate/team.rs | 179 +
glue/src/simulate/tracker.rs | 163 +
glue/src/stateful/actor/core/mailbox.rs | 240 +
glue/src/stateful/actor/core/mod.rs | 413 ++
glue/src/stateful/actor/core/processing.rs | 167 +
glue/src/stateful/actor/core/syncing.rs | 523 ++
glue/src/stateful/actor/mod.rs | 7 +
glue/src/stateful/actor/processor/metrics.rs | 102 +
glue/src/stateful/actor/processor/mod.rs | 1855 ++++++
glue/src/stateful/actor/syncer/actor.rs | 226 +
glue/src/stateful/actor/syncer/mailbox.rs | 194 +
glue/src/stateful/actor/syncer/mod.rs | 442 ++
glue/src/stateful/actor/syncer/plan.rs | 242 +
glue/src/stateful/db/any.rs | 614 ++
glue/src/stateful/db/current.rs | 773 +++
glue/src/stateful/db/immutable/compact.rs | 824 +++
glue/src/stateful/db/immutable/mod.rs | 7 +
glue/src/stateful/db/immutable/standard.rs | 494 ++
glue/src/stateful/db/keyless/compact.rs | 888 +++
glue/src/stateful/db/keyless/mod.rs | 7 +
glue/src/stateful/db/keyless/standard.rs | 604 ++
glue/src/stateful/db/mod.rs | 3765 ++++++++++++
glue/src/stateful/db/p2p/compact/actor.rs | 694 +++
glue/src/stateful/db/p2p/compact/handler.rs | 234 +
glue/src/stateful/db/p2p/compact/mailbox.rs | 260 +
glue/src/stateful/db/p2p/compact/mod.rs | 13 +
glue/src/stateful/db/p2p/mod.rs | 8 +
glue/src/stateful/db/p2p/standard/actor.rs | 716 +++
glue/src/stateful/db/p2p/standard/handler.rs | 446 ++
glue/src/stateful/db/p2p/standard/mailbox.rs | 243 +
glue/src/stateful/db/p2p/standard/metrics.rs | 66 +
glue/src/stateful/db/p2p/standard/mod.rs | 22 +
glue/src/stateful/mod.rs | 274 +
glue/src/stateful/tests/common.rs | 197 +
glue/src/stateful/tests/mocks.rs | 225 +
glue/src/stateful/tests/mod.rs | 744 +++
glue/src/stateful/tests/multi_db_app.rs | 699 +++
glue/src/stateful/tests/properties.rs | 148 +
glue/src/stateful/tests/single_db_app.rs | 589 ++
invariants/Cargo.toml | 2 +-
invariants/src/minifuzz.rs | 4 +-
justfile | 23 +-
math/conformance.toml | 6 +-
math/src/lib.rs | 7 +-
math/src/poly.rs | 34 +-
math/src/synthetic.rs | 386 ++
math/src/test.rs | 90 +-
p2p/Cargo.toml | 2 +-
p2p/fuzz/fuzz_targets/simulated.rs | 19 +-
p2p/fuzz/src/lib.rs | 65 +-
p2p/src/authenticated/discovery/actors/dialer.rs | 125 +-
p2p/src/authenticated/discovery/actors/listener.rs | 91 +-
.../authenticated/discovery/actors/peer/actor.rs | 494 +-
.../authenticated/discovery/actors/peer/ingress.rs | 76 +-
p2p/src/authenticated/discovery/actors/peer/mod.rs | 13 +-
.../authenticated/discovery/actors/router/actor.rs | 208 +-
.../discovery/actors/router/ingress.rs | 171 +-
.../authenticated/discovery/actors/router/mod.rs | 7 +-
.../discovery/actors/spawner/actor.rs | 337 +-
.../discovery/actors/spawner/ingress.rs | 169 +-
.../authenticated/discovery/actors/spawner/mod.rs | 2 +-
.../discovery/actors/tracker/actor.rs | 618 +-
.../discovery/actors/tracker/directory.rs | 667 ++-
.../discovery/actors/tracker/ingress.rs | 187 +-
.../discovery/actors/tracker/metrics.rs | 74 +-
.../authenticated/discovery/actors/tracker/mod.rs | 5 +-
.../discovery/actors/tracker/record.rs | 29 +
p2p/src/authenticated/discovery/channels.rs | 95 +-
p2p/src/authenticated/discovery/config.rs | 13 +-
p2p/src/authenticated/discovery/metrics.rs | 81 +-
p2p/src/authenticated/discovery/mod.rs | 981 ++--
p2p/src/authenticated/discovery/network.rs | 43 +-
p2p/src/authenticated/lookup/actors/dialer.rs | 125 +-
p2p/src/authenticated/lookup/actors/listener.rs | 212 +-
p2p/src/authenticated/lookup/actors/peer/actor.rs | 473 +-
.../authenticated/lookup/actors/peer/ingress.rs | 51 +-
p2p/src/authenticated/lookup/actors/peer/mod.rs | 16 +-
.../authenticated/lookup/actors/router/actor.rs | 208 +-
.../authenticated/lookup/actors/router/ingress.rs | 114 +-
p2p/src/authenticated/lookup/actors/router/mod.rs | 7 +-
.../authenticated/lookup/actors/spawner/actor.rs | 138 +-
.../authenticated/lookup/actors/spawner/ingress.rs | 169 +-
p2p/src/authenticated/lookup/actors/spawner/mod.rs | 2 +-
.../authenticated/lookup/actors/tracker/actor.rs | 882 +--
.../lookup/actors/tracker/directory.rs | 677 ++-
.../authenticated/lookup/actors/tracker/ingress.rs | 149 +-
.../authenticated/lookup/actors/tracker/metrics.rs | 74 +-
p2p/src/authenticated/lookup/actors/tracker/mod.rs | 11 +-
.../authenticated/lookup/actors/tracker/record.rs | 80 +-
p2p/src/authenticated/lookup/channels.rs | 95 +-
p2p/src/authenticated/lookup/config.rs | 13 +-
p2p/src/authenticated/lookup/metrics.rs | 63 +-
p2p/src/authenticated/lookup/mod.rs | 814 ++-
p2p/src/authenticated/lookup/network.rs | 50 +-
p2p/src/authenticated/mailbox.rs | 35 +-
p2p/src/authenticated/mod.rs | 2 +-
p2p/src/authenticated/relay.rs | 110 +-
p2p/src/lib.rs | 120 +-
p2p/src/simulated/ingress.rs | 175 +-
p2p/src/simulated/metrics.rs | 2 +-
p2p/src/simulated/mod.rs | 778 +--
p2p/src/simulated/network.rs | 924 +--
p2p/src/utils/codec.rs | 263 +-
p2p/src/utils/limited.rs | 382 +-
p2p/src/utils/mocks/mod.rs | 101 +-
p2p/src/utils/mod.rs | 2 +-
p2p/src/utils/mux.rs | 195 +-
resolver/Cargo.toml | 2 +-
resolver/src/delivery.rs | 526 ++
resolver/src/ingress.rs | 392 ++
resolver/src/lib.rs | 156 +-
resolver/src/opaque.rs | 964 +++
resolver/src/p2p/config.rs | 6 +-
resolver/src/p2p/engine.rs | 291 +-
resolver/src/p2p/fetcher.rs | 522 +-
resolver/src/p2p/inflight.rs | 374 ++
resolver/src/p2p/ingress.rs | 374 +-
resolver/src/p2p/metrics.rs | 70 +-
resolver/src/p2p/mocks/consumer.rs | 85 +-
resolver/src/p2p/mocks/mod.rs | 2 +-
resolver/src/p2p/mocks/producer.rs | 2 +-
resolver/src/p2p/mod.rs | 2750 ++++++---
resolver/src/subscribers.rs | 173 +
runtime/Cargo.toml | 19 +-
runtime/fuzz/fuzz_targets/buffer.rs | 17 +-
runtime/macros/Cargo.toml | 26 +
runtime/macros/README.md | 10 +
runtime/macros/src/lib.rs | 279 +
runtime/macros/tests/encode_struct_where_bounds.rs | 39 +
runtime/src/deterministic.rs | 339 +-
runtime/src/iobuf/benches/bench.rs | 47 +-
runtime/src/iobuf/benches/freelist.rs | 281 +
runtime/src/iobuf/benches/pool.rs | 196 +-
runtime/src/iobuf/benches/utils.rs | 141 +
runtime/src/iobuf/{aligned.rs => buffer.rs} | 420 +-
runtime/src/iobuf/freelist.rs | 2309 ++++++++
runtime/src/iobuf/mod.rs | 57 +-
runtime/src/iobuf/pool.rs | 2128 ++++---
runtime/src/iouring/mod.rs | 1199 +++-
runtime/src/iouring/request.rs | 49 +-
runtime/src/iouring/spinner.rs | 322 +
runtime/src/iouring/waiter.rs | 8 +
runtime/src/iouring/waker.rs | 1918 +++++-
runtime/src/lib.rs | 1185 ++--
runtime/src/macros.rs | 5 +-
runtime/src/mocks.rs | 265 +-
runtime/src/network/deterministic.rs | 37 +-
runtime/src/network/iouring.rs | 307 +-
runtime/src/network/metered.rs | 74 +-
runtime/src/network/mod.rs | 264 +-
runtime/src/network/tokio.rs | 85 +-
runtime/src/process/metered.rs | 37 +-
runtime/src/storage/audited.rs | 66 +-
runtime/src/storage/benches/config.rs | 389 ++
runtime/src/storage/benches/error.rs | 23 +
runtime/src/storage/benches/filesystem.rs | 190 +
runtime/src/storage/benches/main.rs | 50 +
runtime/src/storage/benches/report.rs | 210 +
runtime/src/storage/benches/runner.rs | 177 +
runtime/src/storage/benches/workload.rs | 377 ++
runtime/src/storage/faulty.rs | 84 +-
runtime/src/storage/iouring.rs | 131 +-
runtime/src/storage/memory.rs | 33 +-
runtime/src/storage/metered.rs | 112 +-
runtime/src/storage/mod.rs | 42 +-
runtime/src/storage/tokio/fallback.rs | 61 +-
runtime/src/storage/tokio/mod.rs | 63 +-
runtime/src/storage/tokio/unix.rs | 93 +-
runtime/src/telemetry/metrics/histogram.rs | 169 +-
runtime/src/telemetry/metrics/mod.rs | 1345 +++++
runtime/src/telemetry/metrics/registration.rs | 30 +
runtime/src/telemetry/metrics/status.rs | 51 +-
runtime/src/telemetry/metrics/task.rs | 2 +-
runtime/src/tokio/mod.rs | 4 +-
runtime/src/tokio/runtime.rs | 307 +-
runtime/src/tokio/telemetry.rs | 67 +-
runtime/src/utils/buffer/mod.rs | 304 +-
runtime/src/utils/buffer/paged/append.rs | 2092 ++++++-
runtime/src/utils/buffer/paged/cache.rs | 264 +-
runtime/src/utils/buffer/paged/mod.rs | 35 +-
runtime/src/utils/buffer/tip.rs | 25 +-
runtime/src/utils/buffer/write.rs | 146 +-
runtime/src/utils/cell.rs | 251 +-
runtime/src/utils/handle.rs | 25 +-
runtime/src/utils/mod.rs | 812 +--
runtime/src/utils/signal.rs | 4 +-
runtime/src/utils/supervision.rs | 13 +-
storage/Cargo.toml | 19 +-
storage/conformance.toml | 206 +-
storage/fuzz/Cargo.toml | 16 +-
storage/fuzz/fuzz_targets/archive_operations.rs | 4 +-
storage/fuzz/fuzz_targets/cache_operations.rs | 6 +-
.../fuzz/fuzz_targets/current_crash_recovery.rs | 76 +-
.../fuzz/fuzz_targets/current_mmb_prune_grow.rs | 569 ++
.../fuzz_targets/current_ordered_operations.rs | 185 +-
.../fuzz_targets/current_unordered_batch_root.rs | 27 +-
.../fuzz_targets/current_unordered_operations.rs | 178 +-
.../fuzz/fuzz_targets/fixed_journal_operations.rs | 165 +-
storage/fuzz/fuzz_targets/freezer_operations.rs | 9 +-
.../fuzz/fuzz_targets/journal_crash_recovery.rs | 6 +-
.../fuzz/fuzz_targets/merkle_family_operations.rs | 19 +-
.../{merkle_journaled.rs => merkle_full.rs} | 117 +-
...h_recovery.rs => merkle_full_crash_recovery.rs} | 31 +-
storage/fuzz/fuzz_targets/metadata_operations.rs | 4 +-
storage/fuzz/fuzz_targets/mmr_bitmap.rs | 26 +-
.../fuzz/fuzz_targets/ordered_index_operations.rs | 16 +-
storage/fuzz/fuzz_targets/ordinal_operations.rs | 6 +-
storage/fuzz/fuzz_targets/oversized_recovery.rs | 18 +-
storage/fuzz/fuzz_targets/proof_store.rs | 114 +-
storage/fuzz/fuzz_targets/proofs_malleability.rs | 219 +-
storage/fuzz/fuzz_targets/qmdb_any_fixed_sync.rs | 78 +-
.../fuzz/fuzz_targets/qmdb_any_variable_sync.rs | 82 +-
storage/fuzz/fuzz_targets/qmdb_immutable.rs | 51 +-
storage/fuzz/fuzz_targets/qmdb_keyless.rs | 241 +-
storage/fuzz/fuzz_targets/qmdb_ordered_batching.rs | 15 +-
.../fuzz/fuzz_targets/qmdb_ordered_operations.rs | 26 +-
.../fuzz/fuzz_targets/qmdb_unordered_batch_root.rs | 27 +-
.../fuzz/fuzz_targets/qmdb_unordered_operations.rs | 22 +-
storage/fuzz/fuzz_targets/queue_crash_recovery.rs | 6 +-
storage/fuzz/fuzz_targets/queue_operations.rs | 4 +-
storage/fuzz/fuzz_targets/range_proof.rs | 66 +-
storage/fuzz/fuzz_targets/store_operations.rs | 10 +-
.../fuzz_targets/unordered_index_operations.rs | 16 +-
storage/fuzz/fuzz_targets/verify_proof.rs | 58 +-
storage/src/archive/benches/get.rs | 154 +-
storage/src/archive/benches/put.rs | 7 +-
storage/src/archive/benches/restart.rs | 41 +-
storage/src/archive/conformance.rs | 6 +-
storage/src/archive/immutable/mod.rs | 28 +-
storage/src/archive/immutable/storage.rs | 31 +-
storage/src/archive/mod.rs | 143 +-
storage/src/archive/prunable/mod.rs | 143 +-
storage/src/archive/prunable/storage.rs | 37 +-
storage/src/bitmap/authenticated.rs | 290 +-
storage/src/cache/mod.rs | 58 +-
storage/src/cache/storage.rs | 24 +-
storage/src/freezer/benches/put.rs | 7 +-
storage/src/freezer/benches/restart.rs | 4 +-
storage/src/freezer/conformance.rs | 12 +-
storage/src/freezer/mod.rs | 159 +-
storage/src/freezer/storage.rs | 50 +-
storage/src/index/benches/bench.rs | 35 +-
storage/src/index/benches/insert_and_retain.rs | 60 +
storage/src/index/mod.rs | 453 +-
storage/src/index/ordered.rs | 148 +-
storage/src/index/partitioned/ordered.rs | 46 +-
storage/src/index/partitioned/unordered.rs | 24 +-
storage/src/index/storage.rs | 439 +-
storage/src/index/unordered.rs | 134 +-
storage/src/journal/authenticated.rs | 653 ++-
storage/src/journal/benches/bench.rs | 2 +
storage/src/journal/benches/fixed_append.rs | 14 +-
storage/src/journal/benches/fixed_read_random.rs | 66 +-
storage/src/journal/benches/fixed_replay.rs | 43 +-
.../src/journal/benches/variable_read_random.rs | 142 +
storage/src/journal/benches/variable_replay.rs | 43 +-
storage/src/journal/conformance.rs | 29 +-
storage/src/journal/contiguous/fixed.rs | 630 +-
storage/src/journal/contiguous/metrics.rs | 276 +
storage/src/journal/contiguous/mod.rs | 31 +-
storage/src/journal/contiguous/tests.rs | 21 +
storage/src/journal/contiguous/variable.rs | 772 ++-
storage/src/journal/mod.rs | 9 +
storage/src/journal/segmented/fixed.rs | 224 +-
storage/src/journal/segmented/glob.rs | 22 +-
storage/src/journal/segmented/manager.rs | 14 +-
storage/src/journal/segmented/oversized.rs | 165 +-
storage/src/journal/segmented/variable.rs | 337 +-
storage/src/merkle/batch.rs | 573 +-
storage/src/merkle/benches/append.rs | 54 +-
storage/src/merkle/benches/append_additional.rs | 69 +-
storage/src/merkle/benches/prove_many_elements.rs | 101 +-
storage/src/merkle/benches/prove_single_element.rs | 67 +-
storage/src/merkle/benches/update.rs | 81 +-
storage/src/merkle/conformance.rs | 20 +-
storage/src/merkle/hasher.rs | 217 +-
storage/src/merkle/mem.rs | 446 +-
storage/src/merkle/mmb/batch.rs | 4 +-
storage/src/merkle/mmb/{journaled.rs => full.rs} | 16 +-
storage/src/merkle/mmb/mem.rs | 136 +-
storage/src/merkle/mmb/mod.rs | 73 +-
storage/src/merkle/mmb/proof.rs | 53 +-
storage/src/merkle/mmr/batch.rs | 4 +-
storage/src/merkle/mmr/{journaled.rs => full.rs} | 143 +-
storage/src/merkle/mmr/iterator.rs | 13 +-
storage/src/merkle/mmr/mem.rs | 170 +-
storage/src/merkle/mmr/mod.rs | 53 +-
storage/src/merkle/mmr/proof.rs | 88 +-
storage/src/merkle/mmr/verification.rs | 22 +-
storage/src/merkle/mod.rs | 185 +-
storage/src/merkle/persisted/compact.rs | 768 +++
.../src/merkle/{journaled.rs => persisted/full.rs} | 1078 ++--
storage/src/merkle/persisted/mod.rs | 2 +
storage/src/merkle/position.rs | 6 +-
storage/src/merkle/proof.rs | 1584 +++--
storage/src/merkle/read.rs | 44 +-
storage/src/merkle/verification.rs | 471 +-
storage/src/metadata/benches/restart.rs | 4 +-
storage/src/metadata/benches/sync.rs | 7 +-
storage/src/metadata/mod.rs | 127 +-
storage/src/metadata/storage.rs | 34 +-
storage/src/ordinal/benches/put.rs | 7 +-
storage/src/ordinal/benches/restart.rs | 4 +-
storage/src/ordinal/mod.rs | 226 +-
storage/src/ordinal/storage.rs | 20 +-
storage/src/qmdb/any/batch.rs | 1510 +++--
storage/src/qmdb/any/db.rs | 515 +-
storage/src/qmdb/any/mod.rs | 1055 +++-
storage/src/qmdb/any/operation/mod.rs | 2 +-
storage/src/qmdb/any/operation/update/ordered.rs | 3 +-
storage/src/qmdb/any/operation/update/unordered.rs | 3 +-
storage/src/qmdb/any/ordered/fixed.rs | 289 +-
storage/src/qmdb/any/ordered/mod.rs | 159 +-
storage/src/qmdb/any/ordered/variable.rs | 113 +-
storage/src/qmdb/any/sync/mod.rs | 135 +-
storage/src/qmdb/any/sync/tests.rs | 1279 +++-
storage/src/qmdb/any/traits.rs | 22 +-
storage/src/qmdb/any/unordered/fixed.rs | 254 +-
storage/src/qmdb/any/unordered/mod.rs | 116 +-
storage/src/qmdb/any/unordered/variable.rs | 133 +-
storage/src/qmdb/batch_chain.rs | 380 ++
storage/src/qmdb/benches/apply_batch.rs | 246 +
storage/src/qmdb/benches/bench.rs | 13 +-
storage/src/qmdb/benches/bench_merkleize.rs | 13 -
storage/src/qmdb/benches/chained_growth.rs | 233 +
storage/src/qmdb/benches/common.rs | 765 +--
storage/src/qmdb/benches/generate.rs | 256 +-
storage/src/qmdb/benches/init.rs | 198 +-
storage/src/qmdb/benches/merkleize.rs | 316 +-
storage/src/qmdb/bitmap.rs | 88 +
storage/src/qmdb/compact/batch.rs | 30 +
storage/src/qmdb/compact/mod.rs | 4 +
storage/src/qmdb/compact/witness.rs | 429 ++
storage/src/qmdb/conformance.rs | 1123 ++++
storage/src/qmdb/current/batch.rs | 958 +--
storage/src/qmdb/current/db.rs | 1165 +++-
storage/src/qmdb/current/grafting.rs | 781 +--
storage/src/qmdb/current/mod.rs | 1976 +++++--
storage/src/qmdb/current/ordered/db.rs | 74 +-
storage/src/qmdb/current/ordered/fixed.rs | 51 +-
storage/src/qmdb/current/ordered/mod.rs | 467 +-
.../src/qmdb/current/ordered/test_trait_impls.rs | 58 +-
storage/src/qmdb/current/ordered/variable.rs | 47 +-
storage/src/qmdb/current/proof.rs | 1125 ----
storage/src/qmdb/current/proof/mod.rs | 2243 +++++++
storage/src/qmdb/current/sync/mod.rs | 439 +-
storage/src/qmdb/current/sync/tests.rs | 709 ++-
storage/src/qmdb/current/unordered/db.rs | 17 +-
storage/src/qmdb/current/unordered/fixed.rs | 74 +-
storage/src/qmdb/current/unordered/mod.rs | 147 +-
.../src/qmdb/current/unordered/test_trait_impls.rs | 62 +-
storage/src/qmdb/current/unordered/variable.rs | 36 +-
storage/src/qmdb/immutable/batch.rs | 310 +-
storage/src/qmdb/immutable/compact.rs | 1269 ++++
storage/src/qmdb/immutable/fixed.rs | 426 +-
storage/src/qmdb/immutable/mod.rs | 1853 +++++-
storage/src/qmdb/immutable/operation/fixed.rs | 42 +-
storage/src/qmdb/immutable/operation/mod.rs | 89 +-
storage/src/qmdb/immutable/operation/variable.rs | 70 +-
storage/src/qmdb/immutable/sync.rs | 1017 ----
storage/src/qmdb/immutable/sync/mod.rs | 231 +
storage/src/qmdb/immutable/sync/tests.rs | 2260 +++++++
storage/src/qmdb/immutable/variable.rs | 394 +-
storage/src/qmdb/keyless/batch.rs | 264 +-
storage/src/qmdb/keyless/compact.rs | 1224 ++++
storage/src/qmdb/keyless/fixed.rs | 583 +-
storage/src/qmdb/keyless/mod.rs | 1605 +++--
storage/src/qmdb/keyless/operation/fixed.rs | 79 +-
storage/src/qmdb/keyless/operation/mod.rs | 89 +-
storage/src/qmdb/keyless/operation/variable.rs | 57 +-
storage/src/qmdb/keyless/sync/mod.rs | 206 +
storage/src/qmdb/keyless/sync/tests.rs | 2196 +++++++
storage/src/qmdb/keyless/variable.rs | 529 +-
storage/src/qmdb/metrics.rs | 249 +
storage/src/qmdb/mod.rs | 104 +-
storage/src/qmdb/store/db.rs | 63 +-
storage/src/qmdb/sync/compact.rs | 1199 ++++
storage/src/qmdb/sync/database.rs | 49 +-
storage/src/qmdb/sync/engine.rs | 490 +-
storage/src/qmdb/sync/error.rs | 40 +-
storage/src/qmdb/sync/gaps.rs | 19 +-
storage/src/qmdb/sync/journal.rs | 169 +-
storage/src/qmdb/sync/mod.rs | 24 +-
storage/src/qmdb/sync/requests.rs | 91 +-
storage/src/qmdb/sync/resolver.rs | 716 ++-
storage/src/qmdb/sync/target.rs | 102 +-
storage/src/qmdb/verify.rs | 225 +-
storage/src/queue/conformance.rs | 24 +-
storage/src/queue/metrics.rs | 17 +-
storage/src/queue/shared.rs | 45 +-
storage/src/queue/storage.rs | 77 +-
stream/Cargo.toml | 1 +
stream/fuzz/fuzz_targets/connection.rs | 23 +-
stream/fuzz/fuzz_targets/e2e.rs | 97 +-
stream/fuzz/fuzz_targets/lazy_transport.rs | 6 +-
stream/fuzz/fuzz_targets/transport.rs | 6 +-
stream/src/encrypted.rs | 38 +-
stream/src/utils/codec.rs | 31 +-
utils/Cargo.toml | 18 +
utils/conformance.toml | 28 +
utils/fuzz/Cargo.toml | 10 +-
utils/fuzz/fuzz_targets/lib_functions.rs | 22 +-
utils/fuzz/fuzz_targets/roaring.rs | 10 +
utils/src/bitmap/benches/bench.rs | 22 +-
utils/src/bitmap/benches/roaring_contains.rs | 47 +
utils/src/bitmap/benches/roaring_difference.rs | 36 +
utils/src/bitmap/benches/roaring_insert.rs | 36 +
utils/src/bitmap/benches/roaring_insert_range.rs | 32 +
utils/src/bitmap/benches/roaring_intersection.rs | 36 +
utils/src/bitmap/benches/roaring_iteration.rs | 31 +
utils/src/bitmap/benches/roaring_memory.rs | 151 +
utils/src/bitmap/benches/roaring_union.rs | 36 +
utils/src/bitmap/benches/roaring_write.rs | 40 +
utils/src/bitmap/benches/write.rs | 37 +
utils/src/bitmap/historical/tests.rs | 3 +-
utils/src/bitmap/mod.rs | 33 +-
utils/src/bitmap/prunable.rs | 2 +-
utils/src/bitmap/roaring/container/array.rs | 899 +++
utils/src/bitmap/roaring/container/bitmap.rs | 983 ++++
utils/src/bitmap/roaring/container/mod.rs | 1204 ++++
utils/src/bitmap/roaring/container/run.rs | 924 +++
utils/src/bitmap/roaring/fuzz.rs | 569 ++
utils/src/bitmap/roaring/mod.rs | 886 +++
utils/src/bitmap/roaring/ops.rs | 826 +++
utils/src/bitmap/roaring/prunable.rs | 576 ++
utils/src/channel/fallible.rs | 98 +-
utils/src/channel/mod.rs | 1 +
utils/src/channel/reservation.rs | 189 +
utils/src/channel/ring.rs | 30 +
utils/src/futures.rs | 11 +
utils/src/lib.rs | 164 +-
utils/src/sequence/fixed_bytes.rs | 5 +-
utils/src/thread_local.rs | 4 +-
utils/src/vec.rs | 109 +-
762 files changed, 149478 insertions(+), 36488 deletions(-)