·
90 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
What's Changed
- [blog] Is it ready yet? by @patrick-ogrady in #3058
- [cryptopgrahy/handshake] increase nonce before checking message len by @andresilva in #3063
- Fix replay operation by @dnkolegov-ar in #3064
- Fix panic in e2e fuzz test by @dnkolegov-ar in #3057
- [ci] Persist Fuzzing Corpus on
mainby @patrick-ogrady in #3067 - [stream] Avoid chunked
IoBufsin encrypted sender by @andresilva in #3055 - [consensus] Update blocking reasons to use unique reason strings by @BrendanChou in #3069
- [storage/qmdb] qmdb variants with partitioned indices by @roberto-bayardo in #2984
- stability: add unstable public to justfile by @cronokirby in #3052
- [gh] Use grep / sed for toolchain discovery by @cronokirby in #3073
- [runtime] Split
Blob::read_atintoread_atandread_at_bufby @andresilva in #3041 - [runtime] allow configuring runtime buffer pools by @andresilva in #3079
- [storage/qmdb] require batch api for database modifications by @roberto-bayardo in #3017
- [storage::queue] Implement a durable queue by @BrendanChou in #2995
- [storage/qmdb/current] concurrent reads in floor raising by @roberto-bayardo in #3078
- [Storage] [Utils] Use absolute indices rather than relative-to-pruning indices in bitmaps by @danlaine in #3050
- [utils] Add BitMap::is_unset_in_range by @cronokirby in #3085
- [storage/journal/contiguous] Allow concurrent reads during sync by @roberto-bayardo in #3080
- [runtime/iouring] retain FD ownership in queued ops by @andresilva in #3101
- [runtime/iouring] remove useless allow(dead_code) by @andresilva in #3102
- Revert "[runtime/iouring] remove useless allow(dead_code) (#3102)" by @patrick-ogrady in #3103
- [runtime, storage] use buffer pool and
IoBuf*inutils::bufferby @andresilva in #3082 - [runtime] pooled immutable
IoBufbacking by @andresilva in #3099 - [utils] AVX/Neon friendly
Bitmap::count_onesby @clabby in #3106 - [coding/zoda] Fix Namespace by @patrick-ogrady in #3108
- [storage/mmr/journaled] Non read-blocking sync for journaled MMR by @roberto-bayardo in #3095
- [Storage] Refactor
qmdb::currentgrafting by @danlaine in #3072 - [p2p] encode payload data without copying by @andresilva in #3105
- Include check-benchmark-names in just lint by @cronokirby in #3116
- [storage] non-mut sync for authenticated journal + Any qmdbs by @roberto-bayardo in #3117
- [storage/qmdb] move inactivity_floor_loc to PrunableStore by @roberto-bayardo in #3119
- [Storage] Replace
_with-as file name separator by @danlaine in #3114 - [storage/qmdb/current] make Current db sync non-mut by @roberto-bayardo in #3124
- [Storage] Replace
.to_string()with.into()by @danlaine in #3123 - [runtime] Add
with_scopeby @patrick-ogrady in #3127 - [utils] canonicalize lock primitives:
parking_lot(blocking),tokio::sync(async) by @andresilva in #3128 - [runtime] Enable
tcp_nodelayBy Default + Addso_lingerby @patrick-ogrady in #3135 - [storage] non-mut sync for Ordinal, update Persistable to non-mut sync/commit by @roberto-bayardo in #3131
- [workspace] enable
clippy::unused_asynclint by @andresilva in #3129 - [p2p] Add
WrappedBackgroundReceiverby @clabby in #3136 - [p2p] Defer Data Metric Creation by @patrick-ogrady in #3143
- [marshal] Improve Sync Performance by @patrick-ogrady in #3126
- [coding] Document some guarantees required by Scheme by @cronokirby in #3145
- [runtime] Mark
Pacertrait asBETAby @patrick-ogrady in #3148 - [marshal] Pipeline Ack Handling by @patrick-ogrady in #3151
- [examples/reshare] Set Max Pending by @patrick-ogrady in #3153
- [storage/fuzz] Fix
queue_crash_recoveryfuzz panic by @BrendanChou in #3134 - [consensus/marshal] Test batch ack persistence by @clabby in #3155
- [examples/reshare] Set > 1 Pending Acks by @patrick-ogrady in #3158
- [example/sync] Fix
Locationdecoding and interrupted read bugs by @danlaine in #3146 - [runtime/iobuf] improve BufferPool::alloc_zeroed by @andresilva in #3107
- [runtime/iobuf] add fast paths for double and triple chunk
IoBufs(Mut)by @andresilva in #3109 - [consensus/marshal] Ignore delivered blocks below floor by @clabby in #3168
- [runtime/deterministic] Configurable Start Time by @patrick-ogrady in #3170
- [Storage] Fix
qmdb::current::ordered::exclusion_proofpanic by @danlaine in #3167 - Towards unifying fuzz targets and module level tests by @cronokirby in #2983
- [docs] add invariants by @patrick-ogrady in #3183
- [consensus/marshal] Erasure coding by @clabby in #3164
- [docs] Coding blog by @clabby in #3182
- [docs] Add background to coding blog card by @clabby in #3188
- [storage/mmr/journaled] allow proof generation over the journaled MMR in dirty state by @roberto-bayardo in #3161
- [docs] typo in coding blog post by @andresilva in #3189
- [cryptography/bls12381/dkg] Improve Wording around "Share Reveals" by @patrick-ogrady in #3191
- [deployer] avoid repeated CIDR allocations in authorize loop by @VolodymyrBg in #3196
- [cryptography] More robust player resumption in DKG by @cronokirby in #3192
- [utils] specialized RNG for fuzzing by @andresilva in #3111
- [consensus/simplex] Expand Documentation by @patrick-ogrady in #3211
- [coding] Check padding bytes in ReedSolomon::decode by @clabby in #3209
- [cryptography] Make BatchVerifier not generic by @cronokirby in #3217
- [broadcast/consensus] Free per-peer buffers on peer set change by @clabby in #3210
- [coding] Optimize ReedSolomon by @clabby in #3206
- [coding] Short-circuit invalid
leaf_countin weaken & check by @clabby in #3223 - [utils] remove dead code in
pop()method by @VolodymyrBg in #3207 - [cryptography] Use
sha2intrinsics on aarch64 by @clabby in #3202 - [coding] Benchmark various shard selection schemes. by @clabby in #3221
- [Storage] Implement state sync for
qmdb::currentby @danlaine in #3139 - [Storage] Add support for variable-length keys in unordered QMDBs by @danlaine in #3233
- [math] Check Goldilocks in Range in Read by @cronokirby in #3236
- [p2p] Add block! macro for consistent blocker logging by @BrendanChou in #3234
- [Storage] Add support for variable-length keys in ordered QMDBs by @danlaine in #3240
- [ci] add cargo-hack feature-powerset check by @clabby in #3239
- [consensus/simplex] Improve Documentation/Testing for Certification after Nullification + Broadcast Nullify before Nullification by @patrick-ogrady in #3225
- [storage/qmdb] remove ability to get root() from non-durable states by @roberto-bayardo in #3235
- [runtime/utils/buffer/read] fix double counting of remaining bytes by @andresilva in #3250
- [consensus/simplex] Leader Nullify Fast Path by @patrick-ogrady in #3162
- [consensus/simplex] Use
CertificationTimeoutby @patrick-ogrady in #3261 - [coding] Fix checksum malleability issue by @cronokirby in #3247
- [runtime/iouring] use eventfd-driven wakeups in io_uring loop by @andresilva in #3159
- [storage/translator] Translator wrapper that pre-hashes the input by @roberto-bayardo in #3257
- [runtime/iouring] add flat
Waitersstore by @andresilva in #3255 - fix(consensus): log
current_viewin nullify debug message by @joshieDo in #3265 - [blogs] It's a Grind by @patrick-ogrady in #3266
- [runtime/storage] support vectored writes by @andresilva in #3242
- Implement sub-quadratic threshold recovery by @cronokirby in #3025
- [runtime/network] support vectored send by @andresilva in #3273
- [runtime/iouring] round config size to the next power of two by @andresilva in #3276
- [runtime/iouring] handle transient io_uring_enter errors by @andresilva in #3277
- [workspace] Re-categorize tests by @clabby in #3274
- [coding] remove HashSet from ReedSolomon decode duplicate check by @VolodymyrBg in #3285
- [workspace] make clippy happy by @andresilva in #3289
- [storage/mmr] improve consistency in the Location and Position APIs by @roberto-bayardo in #3283
- [storage/qmdb/sync] fix panic on empty operations by @roberto-bayardo in #3286
- [ci] improve coverage job by @andresilva in #3292
- [consensus/simplex] Remove Initialization timeout trigger by @joshieDo in #3267
- [marshal/coding] Support non-participant reconstruction by @clabby in #3224
- [p2p/simulated] Fix simulated Provider::subscribe race condition by @clabby in #3296
- [p2p/discovery] Document Poisoning Mitigations by @patrick-ogrady in #3301
- [consensus+broadcast] Take
ProvideroverPeerSetSubscriptionby @clabby in #3298 - [storage] Add
MultiArchiveby @clabby in #3297 - [runtime/iobuf] support split
IoBuf/IoBufsby @andresilva in #3305 - [runtime/utils/buffer/read] avoid copying by @andresilva in #3306
- [workspace] Remove slow flag from minifuzz tests by @cronokirby in #3313
- [bls12381] Allow building
Scalarfromu64and limbs by @roynalnaruto in #3316 - [runtime/utils/buffer/paged/cache] cleanup page fetch entries on cancellation by @andresilva in #3311
- [p2p/authenticated] Add Connection Age by @patrick-ogrady in #3324
- [consensus/simplex] Improve Logging for Missing Ancestry by @patrick-ogrady in #3323
- [runtime/utils/buffer/{write, tip}] avoid copying by @andresilva in #3307
-
[Storage] Replace type-state with batch API by @danlaine in #3327
- [storage/journal/authenticated] Ensure Stale Batch Has No Side Effects by @patrick-ogrady in #3332
- [storage/mmr] change pruning and sync API to be location instead of position based by @roberto-bayardo in #3309
- [release] 2026.3.0 by @patrick-ogrady in #3339
- [ci/publish] Remove
utilsfrom macros by @patrick-ogrady in #3340
New Contributors
- @joshieDo made their first contribution in #3265
- @roynalnaruto made their first contribution in #3316
Full Changelog: v2026.2.0...v2026.3.0
Stats
.github/actions/disk/action.yml | 15 +-
.github/scripts/check_publish_order.py | 187 +
.github/scripts/lint_cargo_toml.py | 33 +-
.github/workflows/coverage.yml | 27 +-
.github/workflows/fast.yml | 62 +-
.github/workflows/publish.yml | 5 +
.github/workflows/slow.yml | 29 +-
AGENTS.md | 107 +-
Cargo.lock | 179 +-
Cargo.toml | 47 +-
README.md | 1 +
broadcast/fuzz/Cargo.toml | 2 +-
.../fuzz_targets/broadcast_engine_operations.rs | 64 +-
broadcast/src/buffered/config.rs | 7 +-
broadcast/src/buffered/engine.rs | 281 +-
broadcast/src/buffered/ingress.rs | 82 +-
broadcast/src/buffered/mocks.rs | 9 +-
broadcast/src/buffered/mod.rs | 651 +--
broadcast/src/lib.rs | 2 +-
clippy.toml | 13 +
codec/conformance.toml | 12 +
codec/src/conformance.rs | 29 +-
codec/src/lib.rs | 14 +-
codec/src/types/primitives.rs | 79 +
coding/Cargo.toml | 3 +-
coding/conformance.toml | 18 +-
coding/fuzz/Cargo.toml | 1 +
coding/fuzz/src/lib.rs | 11 +-
coding/proptest-regressions/field.txt | 7 -
coding/proptest-regressions/ntt.txt | 9 -
coding/proptest-regressions/zoda/field.txt | 8 -
coding/src/benches/bench.rs | 224 +-
coding/src/benches/bench_size.rs | 17 +-
coding/src/lib.rs | 369 +-
coding/src/no_coding.rs | 42 +-
coding/src/reed_solomon.rs | 566 ++-
coding/src/zoda.rs | 273 +-
collector/fuzz/fuzz_targets/collector.rs | 6 +-
collector/src/p2p/engine.rs | 29 +-
collector/src/p2p/mocks/sender.rs | 4 +-
collector/src/p2p/mod.rs | 50 +-
consensus/Cargo.toml | 8 +-
consensus/conformance.toml | 14 +-
consensus/fuzz/Cargo.toml | 2 +-
consensus/fuzz/src/disrupter.rs | 4 +-
consensus/fuzz/src/invariants.rs | 6 +-
consensus/fuzz/src/lib.rs | 18 +-
consensus/src/aggregation/engine.rs | 26 +-
consensus/src/aggregation/mocks/monitor.rs | 11 +-
consensus/src/aggregation/mocks/provider.rs | 10 +-
consensus/src/aggregation/mod.rs | 31 +-
consensus/src/aggregation/types.rs | 2 +-
consensus/src/application/marshaled.rs | 740 ---
consensus/src/application/mod.rs | 7 -
consensus/src/lib.rs | 68 +-
consensus/src/marshal/actor.rs | 1138 -----
consensus/src/marshal/ancestry.rs | 247 +
consensus/src/marshal/application/mod.rs | 2 +
consensus/src/marshal/application/validation.rs | 163 +
.../src/marshal/application/verification_tasks.rs | 61 +
consensus/src/marshal/coding/marshaled.rs | 1040 +++++
consensus/src/marshal/coding/mod.rs | 1521 +++++++
consensus/src/marshal/coding/shards/engine.rs | 4748 ++++++++++++++++++++
consensus/src/marshal/coding/shards/mailbox.rs | 192 +
consensus/src/marshal/coding/shards/metrics.rs | 89 +
consensus/src/marshal/coding/shards/mod.rs | 25 +
consensus/src/marshal/coding/types.rs | 833 ++++
consensus/src/marshal/coding/validation.rs | 570 +++
consensus/src/marshal/coding/variant.rs | 103 +
consensus/src/marshal/config.rs | 18 +
consensus/src/marshal/core/actor.rs | 1627 +++++++
consensus/src/marshal/{ => core}/cache.rs | 205 +-
consensus/src/marshal/{ingress => core}/mailbox.rs | 320 +-
consensus/src/marshal/core/mod.rs | 50 +
consensus/src/marshal/core/variant.rs | 171 +
consensus/src/marshal/ingress/mod.rs | 2 -
consensus/src/marshal/mocks/application.rs | 55 +-
consensus/src/marshal/mocks/block.rs | 12 +-
consensus/src/marshal/mocks/harness.rs | 3571 +++++++++++++++
consensus/src/marshal/mocks/mod.rs | 2 +
consensus/src/marshal/mocks/resolver.rs | 10 +-
consensus/src/marshal/mocks/verifying.rs | 84 +
consensus/src/marshal/mod.rs | 2769 +-----------
.../src/marshal/{ingress => resolver}/handler.rs | 262 +-
consensus/src/marshal/resolver/mod.rs | 12 +-
consensus/src/marshal/resolver/p2p.rs | 40 +-
consensus/src/marshal/standard/deferred.rs | 976 ++++
consensus/src/marshal/standard/inline.rs | 496 ++
consensus/src/marshal/standard/mod.rs | 733 +++
consensus/src/marshal/standard/validation.rs | 356 ++
consensus/src/marshal/standard/variant.rs | 86 +
consensus/src/marshal/store.rs | 127 +-
consensus/src/ordered_broadcast/engine.rs | 15 +-
consensus/src/ordered_broadcast/mocks/monitor.rs | 11 +-
consensus/src/ordered_broadcast/mocks/provider.rs | 10 +-
consensus/src/ordered_broadcast/mod.rs | 25 +-
consensus/src/simplex/actors/batcher/actor.rs | 135 +-
consensus/src/simplex/actors/batcher/ingress.rs | 20 +-
consensus/src/simplex/actors/batcher/mod.rs | 625 ++-
consensus/src/simplex/actors/batcher/round.rs | 39 +-
consensus/src/simplex/actors/resolver/actor.rs | 8 +-
consensus/src/simplex/actors/resolver/state.rs | 30 +-
consensus/src/simplex/actors/voter/actor.rs | 175 +-
consensus/src/simplex/actors/voter/ingress.rs | 15 +-
consensus/src/simplex/actors/voter/mod.rs | 4301 ++++++++++++++----
consensus/src/simplex/actors/voter/round.rs | 56 +-
consensus/src/simplex/actors/voter/state.rs | 1164 ++++-
consensus/src/simplex/config.rs | 18 +-
consensus/src/simplex/engine.rs | 12 +-
consensus/src/simplex/metrics.rs | 40 +
consensus/src/simplex/mocks/application.rs | 57 +-
consensus/src/simplex/mocks/equivocator.rs | 9 +-
consensus/src/simplex/mocks/relay.rs | 15 +-
consensus/src/simplex/mocks/reporter.rs | 50 +-
consensus/src/simplex/mod.rs | 683 +--
consensus/src/simplex/scheme/reporter.rs | 10 +-
consensus/src/simplex/types.rs | 18 +
consensus/src/types.rs | 329 +-
cryptography/Cargo.toml | 14 +-
cryptography/conformance.toml | 2 +-
cryptography/src/blake3/mod.rs | 6 +-
.../benches/threshold_batch_verify_same_message.rs | 183 +-
...eshold_batch_verify_same_message_precomputed.rs | 187 +-
.../src/bls12381/benches/threshold_recover.rs | 74 +-
cryptography/src/bls12381/dkg.rs | 617 ++-
cryptography/src/bls12381/primitives/group.rs | 279 +-
.../src/bls12381/primitives/ops/threshold.rs | 2 +-
cryptography/src/bls12381/primitives/sharing.rs | 317 +-
cryptography/src/bls12381/scheme.rs | 4 +-
cryptography/src/certificate.rs | 233 +-
cryptography/src/ed25519/scheme.rs | 4 +-
cryptography/src/handshake/cipher.rs | 35 +-
cryptography/src/lib.rs | 11 +-
deployer/src/aws/authorize.rs | 5 +-
docs/blogs/coding.html | 167 +
docs/blogs/is-it-ready-yet.html | 304 ++
docs/blogs/is-it-ready-yet.md | 101 +
docs/blogs/its-a-grind.html | 220 +
docs/blogs/its-a-grind.md | 39 +
docs/blogs/zoda.html | 26 +-
docs/blogs/zoda.md | 2 +
docs/imgs/address-poisoning.jpeg | Bin 0 -> 83024 bytes
docs/imgs/alto_coding_4.png | Bin 0 -> 1084229 bytes
docs/imgs/alto_coding_8.png | Bin 0 -> 811309 bytes
docs/imgs/certify_sequence.png | Bin 0 -> 259041 bytes
docs/imgs/coding_chain.png | Bin 0 -> 364999 bytes
docs/imgs/coding_commitment_construction.png | Bin 0 -> 72941 bytes
docs/imgs/coding_dissemination.png | Bin 0 -> 308946 bytes
docs/imgs/compressed-index.png | Bin 0 -> 245665 bytes
docs/imgs/is-it-ready-yet.png | Bin 0 -> 331803 bytes
docs/imgs/radix-tree.png | Bin 0 -> 311848 bytes
docs/index.html | 22 +-
examples/bridge/src/bin/validator.rs | 16 +-
examples/chat/src/handler.rs | 13 +-
examples/chat/src/logger.rs | 5 +-
examples/chat/src/main.rs | 4 +-
examples/estimator/src/main.rs | 16 +-
examples/log/src/gui.rs | 16 +-
examples/log/src/main.rs | 6 +-
examples/reshare/src/application/core.rs | 10 +-
examples/reshare/src/application/scheme.rs | 12 +-
examples/reshare/src/application/types.rs | 2 +-
examples/reshare/src/dkg/actor.rs | 24 +-
examples/reshare/src/dkg/mod.rs | 5 +
examples/reshare/src/dkg/state.rs | 82 +-
examples/reshare/src/engine.rs | 52 +-
examples/reshare/src/main.rs | 1 -
examples/reshare/src/orchestrator/actor.rs | 45 +-
examples/reshare/src/setup.rs | 3 +-
examples/reshare/src/validator.rs | 88 +-
examples/sync/README.md | 6 +-
examples/sync/src/bin/client.rs | 83 +-
examples/sync/src/bin/server.rs | 230 +-
examples/sync/src/databases/any.rs | 51 +-
examples/sync/src/databases/current.rs | 181 +
examples/sync/src/databases/immutable.rs | 59 +-
examples/sync/src/databases/mod.rs | 18 +-
examples/sync/src/lib.rs | 7 +-
examples/sync/src/net/io.rs | 45 +-
examples/sync/src/net/mod.rs | 12 +-
examples/sync/src/net/wire.rs | 16 +-
invariants/Cargo.toml | 28 +
invariants/README.md | 10 +
invariants/src/lib.rs | 12 +
invariants/src/minifuzz.rs | 603 +++
justfile | 37 +-
math/Cargo.toml | 15 +-
math/benches/interpolation.rs | 26 +
math/conformance.toml | 2 +-
math/fuzz/Cargo.toml | 21 +
math/fuzz/fuzz_targets/main.rs | 10 +
math/proptest-regressions/algebra.txt | 7 -
math/proptest-regressions/ntt.txt | 10 +
math/proptest-regressions/poly.txt | 7 -
math/src/algebra.rs | 550 ++-
math/src/fields/goldilocks.rs | 189 +-
math/src/lib.rs | 34 +-
math/src/ntt.rs | 1515 ++++---
math/src/poly.rs | 304 +-
math/src/test.rs | 85 +-
mcp/src/utils.test.ts | 2 +-
p2p/Cargo.toml | 1 +
p2p/fuzz/src/lib.rs | 4 +-
p2p/src/authenticated/data.rs | 50 +-
p2p/src/authenticated/discovery/actors/dialer.rs | 17 +-
.../authenticated/discovery/actors/peer/actor.rs | 225 +-
.../authenticated/discovery/actors/router/actor.rs | 9 +-
.../discovery/actors/router/ingress.rs | 22 +-
.../discovery/actors/spawner/actor.rs | 36 +-
.../discovery/actors/tracker/actor.rs | 10 +-
.../discovery/actors/tracker/directory.rs | 60 +-
.../discovery/actors/tracker/ingress.rs | 22 +-
.../discovery/actors/tracker/metrics.rs | 8 +
p2p/src/authenticated/discovery/channels.rs | 4 +-
p2p/src/authenticated/discovery/mod.rs | 219 +-
p2p/src/authenticated/discovery/types.rs | 14 +-
p2p/src/authenticated/lookup/actors/dialer.rs | 17 +-
p2p/src/authenticated/lookup/actors/peer/actor.rs | 213 +-
.../authenticated/lookup/actors/router/actor.rs | 9 +-
.../authenticated/lookup/actors/router/ingress.rs | 22 +-
.../authenticated/lookup/actors/spawner/actor.rs | 35 +-
.../authenticated/lookup/actors/tracker/actor.rs | 18 +-
.../lookup/actors/tracker/directory.rs | 61 +-
.../authenticated/lookup/actors/tracker/ingress.rs | 9 +-
.../authenticated/lookup/actors/tracker/metrics.rs | 8 +
p2p/src/authenticated/lookup/channels.rs | 4 +-
p2p/src/authenticated/lookup/mod.rs | 31 +-
p2p/src/authenticated/lookup/types.rs | 14 +-
p2p/src/lib.rs | 59 +-
p2p/src/simulated/ingress.rs | 31 +-
p2p/src/simulated/mod.rs | 38 +-
p2p/src/simulated/network.rs | 18 +-
p2p/src/utils/codec.rs | 562 ++-
p2p/src/utils/limited.rs | 24 +-
p2p/src/utils/mux.rs | 15 +-
resolver/src/p2p/config.rs | 2 +-
resolver/src/p2p/engine.rs | 32 +-
resolver/src/p2p/fetcher.rs | 47 +-
resolver/src/p2p/mod.rs | 150 +-
runtime/Cargo.toml | 2 -
runtime/fuzz/fuzz_targets/blob_integrity.rs | 15 +-
runtime/fuzz/fuzz_targets/buffer.rs | 48 +-
runtime/src/deterministic.rs | 355 +-
runtime/src/iobuf/mod.rs | 3260 +++++++++++---
runtime/src/iobuf/pool.rs | 1644 ++++---
runtime/src/iouring/mod.rs | 1417 ++++--
runtime/src/lib.rs | 646 ++-
runtime/src/mocks.rs | 28 +-
runtime/src/network/audited.rs | 13 +-
runtime/src/network/deterministic.rs | 18 +-
runtime/src/network/iouring.rs | 394 +-
runtime/src/network/metered.rs | 20 +-
runtime/src/network/mod.rs | 75 +-
runtime/src/network/tokio.rs | 80 +-
runtime/src/storage/audited.rs | 45 +-
runtime/src/storage/faulty.rs | 70 +-
runtime/src/storage/iouring.rs | 347 +-
runtime/src/storage/memory.rs | 91 +-
runtime/src/storage/metered.rs | 47 +-
runtime/src/storage/mod.rs | 328 +-
runtime/src/storage/tokio/fallback.rs | 82 +-
runtime/src/storage/tokio/mod.rs | 38 +-
runtime/src/storage/tokio/unix.rs | 116 +-
runtime/src/telemetry/traces/collector.rs | 10 +-
runtime/src/tokio/runtime.rs | 160 +-
runtime/src/utils/buffer/benches/append.rs | 2 +-
runtime/src/utils/buffer/benches/read.rs | 5 +-
runtime/src/utils/buffer/mod.rs | 740 +--
runtime/src/utils/buffer/paged/append.rs | 642 ++-
runtime/src/utils/buffer/paged/cache.rs | 695 ++-
runtime/src/utils/buffer/paged/mod.rs | 11 +-
runtime/src/utils/buffer/paged/read.rs | 36 +-
runtime/src/utils/buffer/read.rs | 126 +-
runtime/src/utils/buffer/tip.rs | 312 +-
runtime/src/utils/buffer/write.rs | 155 +-
runtime/src/utils/cell.rs | 4 +
runtime/src/utils/handle.rs | 9 +-
runtime/src/utils/mod.rs | 641 ++-
runtime/src/utils/supervision.rs | 9 +-
scripts/find_unstable_public.sh | 142 +-
scripts/stability_helpers.sh | 18 +
storage/Cargo.toml | 4 +-
storage/conformance.toml | 48 +-
storage/fuzz/Cargo.toml | 21 +
storage/fuzz/fuzz_targets/archive_operations.rs | 10 +-
storage/fuzz/fuzz_targets/cache_operations.rs | 5 +-
.../fuzz/fuzz_targets/current_crash_recovery.rs | 357 ++
.../fuzz_targets/current_ordered_operations.rs | 255 +-
.../fuzz_targets/current_unordered_operations.rs | 158 +-
storage/fuzz/fuzz_targets/extract_pinned_nodes.rs | 3 +-
.../fuzz/fuzz_targets/fixed_journal_operations.rs | 55 +-
storage/fuzz/fuzz_targets/freezer_operations.rs | 8 +-
.../fuzz/fuzz_targets/journal_crash_recovery.rs | 140 +-
storage/fuzz/fuzz_targets/metadata_operations.rs | 2 +-
storage/fuzz/fuzz_targets/mmr_bitmap.rs | 22 +-
storage/fuzz/fuzz_targets/mmr_journaled.rs | 362 +-
.../fuzz_targets/mmr_journaled_crash_recovery.rs | 167 +-
storage/fuzz/fuzz_targets/mmr_operations.rs | 155 +-
storage/fuzz/fuzz_targets/ordinal_operations.rs | 4 +-
storage/fuzz/fuzz_targets/oversized_recovery.rs | 17 +-
storage/fuzz/fuzz_targets/proofs_malleability.rs | 34 +-
storage/fuzz/fuzz_targets/qmdb_any_fixed_sync.rs | 99 +-
.../fuzz/fuzz_targets/qmdb_any_variable_sync.rs | 201 +-
storage/fuzz/fuzz_targets/qmdb_immutable.rs | 189 +-
storage/fuzz/fuzz_targets/qmdb_keyless.rs | 148 +-
storage/fuzz/fuzz_targets/qmdb_ordered_batching.rs | 133 +-
.../fuzz/fuzz_targets/qmdb_ordered_operations.rs | 159 +-
.../fuzz/fuzz_targets/qmdb_unordered_operations.rs | 128 +-
storage/fuzz/fuzz_targets/queue_crash_recovery.rs | 522 +++
storage/fuzz/fuzz_targets/queue_operations.rs | 295 ++
storage/fuzz/fuzz_targets/range_proof.rs | 16 +-
storage/fuzz/fuzz_targets/store_operations.rs | 44 +-
storage/fuzz/fuzz_targets/verify_proof.rs | 3 +-
storage/src/archive/benches/utils.rs | 18 +-
storage/src/archive/conformance.rs | 4 +-
storage/src/archive/immutable/mod.rs | 72 +-
storage/src/archive/immutable/storage.rs | 12 +-
storage/src/archive/mod.rs | 397 +-
storage/src/archive/prunable/mod.rs | 168 +-
storage/src/archive/prunable/storage.rs | 202 +-
storage/src/bitmap/authenticated.rs | 200 +-
storage/src/bitmap/mod.rs | 5 +-
storage/src/cache/mod.rs | 50 +-
storage/src/cache/storage.rs | 2 +-
storage/src/freezer/benches/utils.rs | 8 +-
storage/src/freezer/conformance.rs | 2 +-
storage/src/freezer/mod.rs | 124 +-
storage/src/freezer/storage.rs | 113 +-
storage/src/index/benches/insert.rs | 51 +-
storage/src/index/mod.rs | 13 +-
storage/src/journal/authenticated.rs | 1153 +++--
storage/src/journal/benches/bench.rs | 24 +-
storage/src/journal/benches/fixed_append.rs | 2 +-
storage/src/journal/benches/fixed_read_random.rs | 10 +-
.../src/journal/benches/fixed_read_sequential.rs | 9 +-
storage/src/journal/benches/fixed_replay.rs | 7 +-
storage/src/journal/benches/variable_replay.rs | 9 +-
storage/src/journal/conformance.rs | 22 +-
storage/src/journal/contiguous/fixed.rs | 1092 +++--
storage/src/journal/contiguous/mod.rs | 93 +-
storage/src/journal/contiguous/tests.rs | 440 +-
storage/src/journal/contiguous/variable.rs | 1387 +++---
storage/src/journal/segmented/fixed.rs | 176 +-
storage/src/journal/segmented/glob.rs | 16 +-
storage/src/journal/segmented/manager.rs | 34 +-
storage/src/journal/segmented/oversized.rs | 302 +-
storage/src/journal/segmented/variable.rs | 203 +-
storage/src/kv/batch.rs | 45 +-
storage/src/kv/mod.rs | 2 +-
storage/src/lib.rs | 9 +-
storage/src/metadata/benches/utils.rs | 2 +-
storage/src/metadata/mod.rs | 62 +-
storage/src/metadata/storage.rs | 17 +-
storage/src/mmr/batch.rs | 1288 ++++++
storage/src/mmr/benches/append.rs | 17 +-
storage/src/mmr/benches/append_additional.rs | 22 +-
storage/src/mmr/benches/prove_many_elements.rs | 28 +-
storage/src/mmr/benches/prove_single_element.rs | 26 +-
storage/src/mmr/benches/update.rs | 38 +-
storage/src/mmr/conformance.rs | 26 +-
storage/src/mmr/grafting.rs | 936 ----
storage/src/mmr/hasher.rs | 12 +-
storage/src/mmr/iterator.rs | 46 +-
storage/src/mmr/journaled.rs | 2211 ++++++---
storage/src/mmr/location.rs | 269 +-
storage/src/mmr/mem.rs | 1305 +++---
storage/src/mmr/mod.rs | 14 +-
storage/src/mmr/position.rs | 135 +-
storage/src/mmr/proof.rs | 377 +-
storage/src/mmr/read.rs | 74 +
storage/src/mmr/storage.rs | 8 +-
storage/src/mmr/verification.rs | 30 +-
storage/src/ordinal/benches/utils.rs | 2 +-
storage/src/ordinal/mod.rs | 115 +-
storage/src/ordinal/storage.rs | 102 +-
storage/src/qmdb/any/batch.rs | 1456 ++++++
storage/src/qmdb/any/db.rs | 393 +-
storage/src/qmdb/any/mod.rs | 1620 ++++++-
storage/src/qmdb/any/operation/fixed.rs | 10 +-
storage/src/qmdb/any/operation/mod.rs | 61 +-
storage/src/qmdb/any/operation/update/mod.rs | 12 +-
storage/src/qmdb/any/operation/update/ordered.rs | 55 +-
storage/src/qmdb/any/operation/update/unordered.rs | 55 +-
storage/src/qmdb/any/operation/variable.rs | 40 +-
storage/src/qmdb/any/ordered/fixed.rs | 1346 ++++--
storage/src/qmdb/any/ordered/mod.rs | 1523 +------
storage/src/qmdb/any/ordered/variable.rs | 381 +-
storage/src/qmdb/any/states.rs | 128 -
storage/src/qmdb/any/sync/mod.rs | 39 +-
storage/src/qmdb/any/sync/tests.rs | 656 +--
storage/src/qmdb/any/traits.rs | 94 +
storage/src/qmdb/any/unordered/fixed.rs | 819 ++--
storage/src/qmdb/any/unordered/mod.rs | 975 +---
storage/src/qmdb/any/unordered/variable.rs | 643 +--
storage/src/qmdb/benches/fixed/generate.rs | 207 +-
storage/src/qmdb/benches/fixed/init.rs | 51 +-
storage/src/qmdb/benches/fixed/mod.rs | 223 +-
storage/src/qmdb/benches/keyless/generate.rs | 53 +-
storage/src/qmdb/benches/variable/generate.rs | 144 +-
storage/src/qmdb/benches/variable/init.rs | 39 +-
storage/src/qmdb/benches/variable/mod.rs | 169 +-
storage/src/qmdb/current/batch.rs | 1474 ++++++
storage/src/qmdb/current/db.rs | 917 ++--
storage/src/qmdb/current/grafting.rs | 864 ++++
storage/src/qmdb/current/mod.rs | 1243 ++++-
storage/src/qmdb/current/ordered/db.rs | 259 +-
storage/src/qmdb/current/ordered/fixed.rs | 492 +-
storage/src/qmdb/current/ordered/mod.rs | 86 +-
.../src/qmdb/current/ordered/test_trait_impls.rs | 208 +-
storage/src/qmdb/current/ordered/variable.rs | 468 +-
storage/src/qmdb/current/proof.rs | 169 +-
storage/src/qmdb/current/sync/mod.rs | 595 +++
storage/src/qmdb/current/sync/tests.rs | 478 ++
storage/src/qmdb/current/unordered/db.rs | 173 +-
storage/src/qmdb/current/unordered/fixed.rs | 385 +-
storage/src/qmdb/current/unordered/mod.rs | 87 +-
.../src/qmdb/current/unordered/test_trait_impls.rs | 193 +-
storage/src/qmdb/current/unordered/variable.rs | 397 +-
storage/src/qmdb/immutable/batch.rs | 253 ++
storage/src/qmdb/immutable/mod.rs | 1432 ++++--
storage/src/qmdb/immutable/sync.rs | 426 +-
storage/src/qmdb/keyless/batch.rs | 228 +
storage/src/qmdb/keyless/mod.rs | 1375 ++++--
storage/src/qmdb/mod.rs | 223 +-
storage/src/qmdb/operation.rs | 16 +-
storage/src/qmdb/store/batch.rs | 379 --
storage/src/qmdb/store/db.rs | 591 +--
storage/src/qmdb/store/mod.rs | 86 +-
storage/src/qmdb/sync/engine.rs | 32 +-
storage/src/qmdb/sync/gaps.rs | 10 +-
storage/src/qmdb/sync/journal.rs | 18 +-
storage/src/qmdb/sync/mod.rs | 3 +-
storage/src/qmdb/sync/resolver.rs | 12 +-
storage/src/qmdb/sync/target.rs | 59 +-
storage/src/qmdb/verify.rs | 280 +-
storage/src/queue/conformance.rs | 83 +
storage/src/queue/metrics.rs | 28 +
storage/src/queue/mod.rs | 94 +
storage/src/queue/shared.rs | 504 +++
storage/src/queue/storage.rs | 1294 ++++++
storage/src/translator.rs | 158 +-
stream/fuzz/fuzz_targets/e2e.rs | 55 +-
stream/src/encrypted.rs | 51 +-
stream/src/utils/codec.rs | 108 +-
utils/Cargo.toml | 12 +-
utils/conformance.toml | 4 +-
utils/fuzz/fuzz_targets/historical_bitmap.rs | 4 +-
utils/src/benches/bench.rs | 3 -
utils/src/bitmap/benches/bench.rs | 5 +
utils/src/bitmap/benches/count_ones.rs | 33 +
utils/src/bitmap/historical/bitmap.rs | 32 +-
utils/src/bitmap/historical/tests.rs | 2 +-
utils/src/bitmap/mod.rs | 221 +-
utils/src/bitmap/prunable.rs | 102 +-
utils/src/channel/fallible.rs | 44 +-
utils/src/channel/ring.rs | 23 +-
utils/src/channel/tracked.rs | 18 +-
utils/src/concurrency.rs | 10 +-
utils/src/lib.rs | 8 +-
utils/src/rational/benches/bench.rs | 5 +
utils/src/{ => rational}/benches/log2_ceil.rs | 0
utils/src/{rational.rs => rational/mod.rs} | 0
utils/src/rng.rs | 440 +-
utils/src/sync/mod.rs | 253 ++
utils/src/thread_local.rs | 329 ++
465 files changed, 73951 insertions(+), 30029 deletions(-)