Releases: commonwarexyz/monorepo
Releases · commonwarexyz/monorepo
Release list
v2026.7.0
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/journal/fixed] fix crash recovery for clear_to_size/init_at_size by @roberto-bayardo in #3809
- [storage/qmdb] specialize the (common) k=2 case in apply_batch by @roberto-bayardo in #3769
- [storage/journal/contiguous] avoid need to fsync when crossing blob boundaries by @roberto-bayardo in #3790
- [glue] Support Ordered Current by @patrick-ogrady in #3898
- [utils/fuzz] fix timeout on full bounded send by @andresilva in #3899
- [consensus/fuzz] avoid spinning on non-finalization by @andresilva in #3902
- [consensus/simplex] support targeted mock payload broadcasts by @andresilva in #3905
- [storage] Journal Recovery Nits by @patrick-ogrady in #3904
- [storage/journal] fix recovery with multiple empty trailing data sections by @andresilva in #3906
- [deployer] Allow collocating instances in the same AZ by @clabby in #3915
- [consensus] generate test per scheme fixture by @andresilva in #3914
- [consensus] run 1k test with mock certificate scheme by @andresilva in #3911
- [codec] Improve Conversion Ergonomics by @patrick-ogrady in #3913
- [storage/qmdb] generate test per variant by @andresilva in #3912
- [storage/journal/contiguous] fix buggy recovery assert by @roberto-bayardo in #3920
- [ci] restore rust-cache binary caching by @clabby in #3926
- [deployer] Support IOPS Configuration by @patrick-ogrady in #3927
- [glue/stateful] Add floor discovery protocol by @clabby in #3917
- [Storage] Durably adopt recovered contiguous data by @danlaine in #3928
- [storage/journal] Treat impossible fixed-journal recovery states as corruption by @roberto-bayardo in #3936
- [consensus/marshal] Validate coded payload config before decode by @clabby in #3935
- [storage/qmdb] expose grafting verifier by @patrick-ogrady in #3943
- [storage/journal/contiguous] remove legacy recovery by @roberto-bayardo in #3930
- [storage/index] Remove
ImmutableCursorby @danlaine in #3874 - [deployer] provision node exporter dashboard by @clabby in #3945
- [storage/journal/contiguous] strengthen the crash-recovery fuzz target by @danlaine in #3939
- [cryptography] Provider Separation by @patrick-ogrady in #3942
- [storage/jouirnals] add synchronous page-cache fast path to single read() by @roberto-bayardo in #3952
- [docs] Update primitive list by @clabby in #3944
- [runtime] [storage] sync file system on runtime start to ensure blob durability by @danlaine in #3950
- [deployer] add attach command by @clabby in #3946
- [workspace] Bump AWS dependencies by @clabby in #3957
- [deployer] NVMe Support by @patrick-ogrady in #3958
- [storage/journal] clean up variable journal recovery by @roberto-bayardo in #3941
- [workspace] cooldown AWS dependencies by @andresilva in #3961
- [docs] Constantinople blog post by @clabby in #3959
- [docs] Constantinople Nits by @patrick-ogrady in #3962
- [storage/freezer] use buffer pool by @andresilva in #3931
- [runtime/iobuf/benches] add iobuf decode benchmark by @andresilva in #3960
- [ci] partition harder by @andresilva in #3878
- [consensus/simplex/twins] improve case generation algorithm by @andresilva in #3925
- [ci] Improve Retry by @patrick-ogrady in #3968
- [storage/journal] Use checked arithmetic by @danlaine in #3933
- [runtime] Document and test read-after-remove semantics for
Storageby @danlaine in #3966 - [ci] update codecov-action to 7.0.0 by @andresilva in #3980
- [storage/qmdb] always batch-hash leaves in parallel by @roberto-bayardo in #3988
- [glue/stateful] Automate pruning by @clabby in #3965
- [qmdb/merkle] Optimize Batch by @patrick-ogrady in #3992
- [storage] optimized MMR position_to_location + bench by @roberto-bayardo in #3997
- [storage/merkle/persisted] flush merkleized nodes from RAM on authenticated journal commit by @roberto-bayardo in #3971
- [storage] remove Persistable trait by @roberto-bayardo in #3991
- [marshal] Reduce clones by @patrick-ogrady in #4009
- [runtime] key the page cache maps with ahash by @roberto-bayardo in #4004
- [marshal] Fix Buffer Delivery by @patrick-ogrady in #4008
- [stream] avoid ciphertext copy on recv by @andresilva in #4011
- [qmdb] Minimal Merkle Tweaks by @patrick-ogrady in #4007
- [storage] [glue] Use contiguous journal in compact QMDB to support rewind by @danlaine in #4000
- [qmdb/any] Cache batch reads for ordered merkleize by @patrick-ogrady in #4020
- [storage/journal/contiguous] Don't time cache hits by @danlaine in #4022
- [qmdb] Parallelize merkleize internals by @patrick-ogrady in #4031
- [consensus/glue] Tracing for
Applicationby @clabby in #3998 - [ci] Disable cargo HTTP/2 multiplexing by @roberto-bayardo in #4037
- [storage/journal/contiguous] Skip offsets.commit() in variable commit() by @roberto-bayardo in #4033
- [cryptography/lthash] batch hash updates by @pepyakin in #4039
- [deps] Update
ark+ minimalawsby @patrick-ogrady in #4051 - [storage] Write large appends directly to blob by @roberto-bayardo in #4015
- [storage/freezer] Improve Recovery During Resize by @patrick-ogrady in #4048
- [utils] Add
Cacheby @patrick-ogrady in #4055 - [consensus/simplex] Add Tracing by @patrick-ogrady in #4034
- [workspace] rustfmt by @andresilva in #4062
- [qmdb/compact] Add commit() for durability without full sync by @roberto-bayardo in #4032
- [storage/qmdb] Align current batch sync boundary by @marthendalnunes in #4065
- [consensus/aggregation] Add clarifying documentation about the signed payload by @BrendanChou in #4049
- [storage/index] store collision chains in a side table by @roberto-bayardo in #4025
- [runtime] Add
Blob::start_syncby @danlaine in #4078 - [storage] Make
bmtno_std by @christopherwxyz in #4090 - [cryptography] Vendor
reed-solomon-simdby @patrick-ogrady in #4092 - [storage/qmdb] Rename misleading sync_boundary
pruned_chunksparam by @roberto-bayardo in #4071 - [storage/qmdb/any] Use parallel index probe in
get_many_mapby @danlaine in #4052 - [coding/rs] Parallelize Reed-Solomon recovery across symbol stripes + Skip Encode by @a-qedaudit in #4091
- [storage/index] Partitioned ordered index as sorted struct-of-arrays by @rober...
v2026.5.0
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-bay...
v2026.4.0
Immutable
release. Only release title and notes can be modified.
What's Changed
- Fix byzantine sender in replica by @dnkolegov-ar in #3343
- runtime/deterministic: reject pre-epoch start_time values by @commonware-llm in #3351
- [workspace] Remove
awsfeature fromdeployer's defaults by @clabby in #3349 - Fix panic in fixed_journal_operations.rs by @dnkolegov-ar in #3329
- [Storage] Define
Key,Valueassociated types on QMDB operation by @danlaine in #3341 - [storage/qmdb] support pipelined batch updates with commit (fsync) by @roberto-bayardo in #3337
- [reshare] Track validator progress across crash restarts by @clabby in #3354
- [Storage] Remove redundant type bounds by @danlaine in #3345
- [math] Implemnt lin_comb_eval method by @cronokirby in #3312
- [Storage] Consolidate QMDB traits by @danlaine in #3350
- [storage/mmr] create storage/merkle module, move mmr into it by @roberto-bayardo in #3355
- [Storage] Change generic types to associated types by @danlaine in #3368
- [consensus/simplex] Strengthen twins framework by @clabby in #3281
- [Storage] Simplify
mmr::Hasherby @danlaine in #3369 - [Storage] Remove
mmr::update_leafby @danlaine in #3372 - [workspace] Propagate
mocksfeature by @clabby in #3380 - [storage/mmr] folded root computation for smaller proofs by @roberto-bayardo in #3304
- [coding] Use the default minifuzz config where possible by @cronokirby in #3378
- [p2p/authenticated] Refactor Dial Jitter by @patrick-ogrady in #3379
- [consensus/coding] Prevent Proposer Withholding by @clabby in #3338
- [storage/fuzz] fix fuzz test panic from expected checksum invalidation by @roberto-bayardo in #3388
- CI: move benchmark name linting to benchmark running step by @cronokirby in #3218
- [storage/mmr] hash leaf count in last to avoid malleability concern by @roberto-bayardo in #3392
- [storage/mmr/journaled] Tweak Readable for journaled MMR by @roberto-bayardo in #3398
- [utils] Add Map::iter_pairs_mut by @cronokirby in #3407
- [Storage] Fix comment by @danlaine in #3406
- [consensus/simplex] Add policy to handle non-voters' block dissemination by @clabby in #3347
- [codec] Add implementations for
Range*<T>by @clabby in #3394 - [utils] Add
NonEmptyRangetype by @clabby in #3395 - [storage/mmr/journaled] support crash recovery in init_sync by @roberto-bayardo in #3399
- [ci] Auto-assign pull requests by @clabby in #3419
- [Storage] Make batch mutation methods consume/produce Self by @danlaine in #3371
- [coding] Clarify Scheme unique commitment guarantee by @cronokirby in #3425
- [Storage] Change
mmr::Hashermethods to take&selfinstead of&mut selfby @danlaine in #3382 - [consensus/simplex] Remove
nullifyafternullificationbehavior by @BrendanChou in #3424 - [Storage] Clean up qmdb benchmarks by @danlaine in #3426
- [storage/merkle] Introduce "merkle family" to allow MMR variants, implement MMR and (F-)MMB versions by @roberto-bayardo in #3363
- [docs] The Carnot Bound by @patrick-ogrady in #3436
- [Storage] Consolidate storage configs by @danlaine in #3430
- [consensus/simplex] Timeout Regression Tests by @patrick-ogrady in #3432
- [Storage] QMDB state sync: don't reset outstanding requests on target update by @danlaine in #3438
- [storage/qmdb] Coordinate state sync finalization by @clabby in #3439
- [cryptography] Implement Scalar::from(SmallScalar) by @cronokirby in #3408
- [macros] Respect
RUST_LOGintest_tracedby @clabby in #3447 - [storage/merkle] change pruning api to be location based instead of position by @roberto-bayardo in #3443
- [Storage] Deduplicate fixed/variable code by @danlaine in #3437
- DKG Finalization Optimizations by @cronokirby in #3328
- [runtime/iouring] implement timeouts in userspace by @andresilva in #3284
- [p2p]
IoBuf-driven Batching by @patrick-ogrady in #3431 - [runtime/iobuf] reduce buffer-pool hot-path overhead by @andresilva in #3360
- [runtime/utils/buffer/paged/append] zero-copy writes by @andresilva in #3434
- [runtime/tokio] don't box spawned tasks by @andresilva in #3455
- [storage/rmap]: add coverage for first/last index and max-boundary gaps by @voith in #3414
- [blogs] zkSNARKs by @patrick-ogrady in #3456
- [Storage] Allow batches to live longer than their base by @danlaine in #3400
- [workspace] rustfmt by @andresilva in #3457
- updated with reference to plonk by @guruvamsi-policharla in #3462
- [runtime/tokio] Simplify
sleep_untilby @patrick-ogrady in #3464 - [storage] Allow rewinding QMDB by @clabby in #3450
- [Storage] Add Context alias by @danlaine in #3451
- [runtime] Revert #3455 by @clabby in #3473
- [consensus::simplex] Add test that shows that gossiped certificates reach the reporter by @BrendanChou in #3472
- [scripts] make stability wrapper work with sccache by @andresilva in #3469
- [consensus::simplex] Improve
test_invalidtest by @BrendanChou in #3478 - [runtime/tokio] don't use deprecated set_linger by @andresilva in #3488
- [Storage] Add
append_manyjournal optimization by @danlaine in #3489 - [runtime] Fix Network Flake by @patrick-ogrady in #3494
- [coding/rs] Remove Intermediate Copy + Only Decode Live Bytes by @commonware-llm in #3496
- [Storage] Fix UintIdentity hasher defeating hashbrown's SIMD filter by @danlaine in #3480
- [runtime] avoid stack multiplication in Handle::init by @andresilva in #3487
- [runtime/iobuf/pool] allow flushing thread-local cache by @andresilva in #3482
- [storage/qmdb] Fix path-dependent key selection in
any::unorderedby @clabby in #3476 - [runtime/tokio] use system thread stack size for all threads by @andresilva in #3475
- [storage] make clippy happy by @andresilva in #3500
- [storage] further generify storage crate on merkle family by @roberto-bayardo in #3463
- [storage/merkle] reject empty proof with non-empty digests by @roberto-bayardo in #3506
- [stream] Tighten Frame Allocation during Handshake by @patrick-ogrady in #3508
- [runtime] Avoid recursive supervision teardown by @commonware-llm in #3484
- [Storage] Support variable-length keys in
qmdb::immutableby @danlaine in #3466 - [Storage] Deduplicate index creation and state sync implementations by @danlaine in #3452
- [Storage] [Utils] Optimize bitmap scan; add ones iterator by @danlaine in #3477
- [storage/qmdb...
v2026.3.0
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 https://github.com/commonwa...
v2026.2.0
Immutable
release. Only release title and notes can be modified.
What's Changed
- [deployer] Cache AMI Lookup + Batch DescribeInstances + Surface Capacity Limit Errors by @patrick-ogrady in #2822
- [storage/journal]: add distinct labels to subjournals by @SuperFluffy in #2830
- [consensus/marshal] Add pruning API by @clabby in #2827
- [cryptography] 2701, document RecvCipher::recv caveats by @cronokirby in #2826
- [deployer] Rolling Updates and
samplySupport by @patrick-ogrady in #2828 - [runtime/fuzz] fix blob_integrity fuzz test by @roberto-bayardo in #2839
- [deployer] Update AWS config by @clabby in #2844
- [runtime/deterministic] Assert Metric Uniqueness by @patrick-ogrady in #2841
- [runtime/utils/buffer] use an arena instead of vector-per-page for buffer pool data by @roberto-bayardo in #2832
- [deployer] Improve S3 Fetch Robustness by @patrick-ogrady in #2851
- [storage/bmt] Constrain leaf count in root by @clabby in #2840
- [storage/qmdb/benches] split init from generation benchmarks by @roberto-bayardo in #2834
- [runtime] add composite iouring feature by @andresilva in #2850
- [deployer] Multi-AZ Deploys by @patrick-ogrady in #2862
- [runtime] Support
Attributesby @patrick-ogrady in #2864 - [consensus/simplex] Add Standard Threshold + Clarify Usage by @patrick-ogrady in #2863
- [runtime] Remove (erroneous) claim about cardinality explosion by @patrick-ogrady in #2867
- [Storage] Replace
mmr::Hashergeneric with associated type by @danlaine in #2868 - [ci] Fix Fuzz Panics by @patrick-ogrady in #2869
- [cryptography/bloomfilter] generic Hasher and optimizations by @andresilva in #2729
- [storage/mmr] change mmr Proof to store leaves instead of size by @roberto-bayardo in #2852
- Improve proofs malleability fuzz test by @dnkolegov-ar in #2853
- Fix panicing in qmdb_any_fixed_sync by @dnkolegov-ar in #2880
- [ci] Don't cancel other build jobs if one fails by @clabby in #2887
- [storage/metadata] change metadata sync so it doesn't block concurrent reads by @roberto-bayardo in #2875
- [cryptography] allow "unclosed" appends in Transcript by @cronokirby in #2885
- [storage/qmdb/current] share more code across unordered & ordered current db variants by @roberto-bayardo in #2818
- Defer deserializing signatures by @cronokirby in #2833
- [cryptography/bls12381] Use Batch Inversion in Interpolator by @patrick-ogrady in #2900
- [consensus/marshaled] Deferred verification by @clabby in #2604
- [Storage] Return error on invalid range argument in
mmr::mem::Mmrby @danlaine in #2899 - [cryptography/bls12381] Implement Concurrent MSM by @patrick-ogrady in #2878
- [mcp] Fix Flaky Test by @patrick-ogrady in #2902
- Use quint v0.30.0 by @dnkolegov-ar in #2879
- [pipeline] Fix Minnimit nullification interval by @clabby in #2903
- [cryptography] Clarify handshake re-ordering properties by @cronokirby in #2908
- [p2p] Add Regression Test for Duplicate Addresses by @patrick-ogrady in #2907
- [examples/flood] add latency measurement by @andresilva in #2894
- [deployer] Store Deployment Metadata by @patrick-ogrady in #2877
- [runtime] Introduce
IoBuftypes and update network and storage APIs by @andresilva in #2881 - [AGENTS.md] add example for imports at top of module by @andresilva in #2925
- [deployer] Limit
aptUsage by @patrick-ogrady in #2915 - [cryptography/certificate] improve docs on duplicate signatures by @andresilva in #2922
- [runtime] Add
Stream::peekfor non-consuming buffer inspection by @andresilva in #2906 - [macros] add support for on_start/on_end to select_loop! by @andresilva in #2671
- [deployer] Remove
dpkgRetry by @patrick-ogrady in #2934 - Don't store bytes again for ed25519 keys by @cronokirby in #2926
- refactor(codec): deduplicate read_ordered_map function by @reallesee in #2711
- [p2p] remove dead recipients in run_network by @radik878 in #2901
- [storage/qmdb/current] current dbs with variable length values by @roberto-bayardo in #2819
- [deployer] Ensure All Dependencies Installed by @patrick-ogrady in #2943
- [utils] Remove
Faults::quorum_from_sliceby @clabby in #2946 - [examples/estimator] Update
MinimmitErasure Coding by @patrick-ogrady in #2874 - [deployer] Validate Regions + Fix Partial Deploy Teardown by @patrick-ogrady in #2953
- [Storage] Factor out
qmdb::anystate sync; implement forqmdb::any::ordered::*by @danlaine in #2748 - [storage]
bmt::Tree<Hasher>->bmt::Tree<Digest>by @clabby in #2951 - [Storage] Fix
journal::contiguous::Variable::init_at_sizeby @danlaine in #2872 - [p2p] Respect
dialer_frequencyby @patrick-ogrady in #2956 - [storage/freezer] fix empty-slot bug during resize by @roberto-bayardo in #2966
- Make clippy happy by @clabby in #2971
- [treewide] rustfmt over select! by @andresilva in #2927
- [cryptography] Use
aws-lc-rsfor ChaCha20-Poly1305 on x86_64/aarch64 by @clabby in #2962 - [ci] run conformance tests on x86_64 and arm64 by @clabby in #2967
- [reshare] Add per-peer metrics for latest share and acknowledgements by @clabby in #2987
- [Storage] Reduce stack size in batch tests by moving state to heap by @danlaine in #2991
- [cryptography] Add some helpers for debugging DKG by @cronokirby in #2992
- [consensus/simplex] Tracked nullifications and skipped views per leader by @clabby in #2990
- [math] Clarify that 2^lg_rows needs to be a usize by @cronokirby in #2996
- [deployer] Unique Bucket Name by @patrick-ogrady in #2997
- [runtime] rename buffer::pool to buffer::paged by @andresilva in #2973
- [deployer] Fix Instrument by @patrick-ogrady in #2998
- [consensus/simplex] Fix Conflicting Enforcement by @patrick-ogrady in #2999
- [macros] Add
Stabilityby @patrick-ogrady in #2870 - [ci] Deny Warnings by @patrick-ogrady in #3000
- [macros] Don't emit stability cfg warning on
debug/testprofiles by @clabby in #3004 - [ci] use /mnt on linux runners by @andresilva in #2986
- [math] fix no_std by @andresilva in #3007
- [storage] fix bug in init_sync related to pinned nodes by @roberto-bayardo in #2994
- [macros] commonware_macros::select! uses tokio::select! by @andresilva in #3003
- [Storage] Use
into_merkleized()function instead of manual re-implementation by @danlaine in #3008 - [macros] Standardize Docs by @patrick-ogrady in #3012
- [wo...
v0.0.65
Immutable
release. Only release title and notes can be modified.
What's Changed
- [docs] Mirror Code +
llms.txtby @patrick-ogrady in #2603 - [Storage] Implement state sync for
qmdb::any::unordered::variableby @danlaine in #2602 - [docs] Restructure deploy paths for LLM-friendly versioning by @commonware-llm in #2612
- [docs] Add more instruction to llms.txt by @commonware-llm in #2615
- [docs] Add _headers for explicit sitemap Content-Type charset by @commonware-llm in #2616
- [docs] Add sitemap and LLMs to header by @commonware-llm in #2617
- [storage/index] allow Translator capping at sizes that are not equal to some int type by @roberto-bayardo in #2622
- [p2p/simulated] use BTreeSet for blocks by @andresilva in #2606
- [runtime/network/iouring] buffered reading by @andresilva in #2601
- [docs] Use Pretty URLs as Canonical by @commonware-llm in #2623
- [docs] Improve page load performance with prefetch by @patrick-ogrady in #2625
- [storage/qmdb/current] validate the number of chunks in range_proof input by @roberto-bayardo in #2619
- [docs] Create MCP Server by @patrick-ogrady in #2629
- [mcp] use
commonware-libraryinstead ofcommonwareby @patrick-ogrady in #2630 - [mcp] use commonware-library as MCP name by @patrick-ogrady in #2631
- [mcp] optimize search with D1 index by @commonware-llm in #2632
- [mcp] Remove manual indexing trigger by @patrick-ogrady in #2634
- [mcp] Optimize Ingestion by @patrick-ogrady in #2635
- [mcp] Support Multiple Search Modes by @patrick-ogrady in #2636
- [mcp] No Version Error by @patrick-ogrady in #2637
- [mcp] Generalize Crate Match by @patrick-ogrady in #2638
- [p2p]
CheckedSender::Error: 'staticby @clabby in #2641 - [mcp] Remove
/health+ Add CORS tests by @patrick-ogrady in #2644 - [docs] Add
MCPPage by @patrick-ogrady in #2645 - [docs] MCP Page Nits by @patrick-ogrady in #2646
- [mcp] Add Support for File Snippets by @patrick-ogrady in #2648
- [mcp] Implement snippet-based search scoring by @commonware-llm in #2647
- [mcp] Update Version by @patrick-ogrady in #2649
- [storage] create Persistable trait, rename top level store module to kv by @roberto-bayardo in #2642
- [consensus/simplex] Improve
is_activeDocs by @patrick-ogrady in #2652 - [mcp] Fix Description by @patrick-ogrady in #2654
- [p2p/lookup] Fix
allow_unregistered_handshakes(nowbypass_ip_check) by @patrick-ogrady in #2653 - [Storage] Remove
closemethods by @danlaine in #2608 - [storage/kv] move Batchable to kv module by @roberto-bayardo in #2655
- [cryptography] [storage] Replace
Hasher::EMPTYwithDigest::EMPTYby @danlaine in #2656 - [cryptography/certificate] make Scheme::is_attributable an associated function by @andresilva in #2657
- [storage/kv] implement kv traits for Batchable by @roberto-bayardo in #2658
- [Storage] Remove
closemethods by @danlaine in #2613 - [consensus/marshal] Improve
set_floordocumentation by @clabby in #2663 - [cryptography/certificate] declare if a scheme benefits from batch verification by @andresilva in #2660
- chore: annual license year update by @rejected-l in #2668
- [cryptography/certificate] cleanup unnecessary bounds by @andresilva in #2670
- [cryptography] add secp256r1 certificate scheme by @andresilva in #2669
- [p2p/discovery] Address Rotation Restart Test by @patrick-ogrady in #2672
- [cryptography/bls12381] Refactor Batch Verification by @patrick-ogrady in #2624
- [cryptography] use aws-lc-rs for optimized secp256r1 verification by @andresilva in #2680
- [p2p] Bound Block Duration by @patrick-ogrady in #2666
- [cryptography/certificate] make namespace a part of the scheme by @andresilva in #2559
- [storage/qmdb] decouple merkleization from database durability by @roberto-bayardo in #2580
- fix(storage): correct element indices in MMR documentation example by @strmfos in #2691
- [runtime/buffer] avoid write-locking the Append buffer during blob writes by @roberto-bayardo in #2679
- [consensus/aggregation] remove deprecated supervisor by @andresilva in #2699
- [consensus/simplex] Add Timeout then Certify Regression Test by @patrick-ogrady in #2697
- [consensus] add Height type by @andresilva in #2700
- Store RNG in deterministic runtime Config by @cronokirby in #2704
- [runtime] Release lock before notifying in Blocker by @syrupipy in #2696
- [p2p] Add Blocked Peers to Metrics by @patrick-ogrady in #2687
- [runtime/p2p] Use
Buf/BufMutin networking APIs by @clabby in #2558 - [cryptography] Remove aggregate verify_same_signer by @cronokirby in #2715
- [consensus/simplex] Add Voting Metrics by @patrick-ogrady in #2708
- [parallel] Introduce data parallelism abstraction by @clabby in #2621
- Set MSRV to 1.91.1 by @clabby in #2720
- [docs] Add
parallelto homepage by @clabby in #2719 - [Codec] Dedup
fn read_ordered_setby @danlaine in #2718 - Revert "[cryptography] Remove aggregate verify_same_signer (#2715)" by @cronokirby in #2721
- [consensus/simplex] Remove Certify Retry + Cancel Outstanding Certifications by @patrick-ogrady in #2703
- [runtime/storage] Versioned Blobs by @danlaine in #2694
- [docs] Fix Parallel Link by @patrick-ogrady in #2723
- [cryptography] Add Secret wrapper for protected key material by @andresilva in #2640
- [ci] Don't require
breaking-formatlabel for new conformance tests by @clabby in #2724 - [storage/archive] Add Lite Index + Remove Journal Padding by @patrick-ogrady in #2707
- [p2p] Add Restart Tests + Introduce
FallibleExtto Cleanup Channels by @patrick-ogrady in #2726 - [storage & runtime] Switch to page-level checksums instead of record-level checksums by @roberto-bayardo in #2667
- [consensus/broadcast/collector/resovler] Adopt
FallibleExt+ Shutdown Tests by @patrick-ogrady in #2738 - [runtime, storage] move to crc32c by @andresilva in #2740
- [storage/fuzz] fix mmr_journaled fuzz test by @roberto-bayardo in #2746
- [consensus] use NonZeroU64 for journal_heights_per_section by @andresilva in #2751
- Fix double-counting bug in DKG test harness reveal calculation by @cronokirby in #2752
- [consensus/simplex] Fix
Seedableimpl forbls12381_thresholdscheme by @clabby in #2756 - [storage/bmt] Add multi-proof support by @clabby in #2733
- Remove unneeded
PhantomDatausages by @danlaine in #2747
...
v0.0.64
Immutable
release. Only release title and notes can be modified.
What's Changed
- [storage/mmr] binary search in to_nearest_size by @syrupipy in #1908
- [Storage] Remove unneeded type bounds by @danlaine in #2072
- [docs] Add blog post for reshare example by @clabby in #1875
- [blogs/reshare] Add Background to Preview by @patrick-ogrady in #2077
- [Storage] Remove dynamic dispatch from
contiguous::variable::Journal::replayby @danlaine in #2073 - [consensus] remove associated types from
Epochable/Viewabletraits by @andresilva in #2076 - [reshare] Add peer set rotation test by @clabby in #2074
- [Storage] Use
contiguous::variable::Journalinadb::storeby @danlaine in #2078 - [consensus]
Applicationinterface by @clabby in #2067 - [consensus] Stream
Updates instead ofBlocks toApplicationby @clabby in #2090 - [ci/benchmarks] Limit Data Points by @patrick-ogrady in #2094
- [docs] Use new Benchmark Data URL by @patrick-ogrady in #2096
- [Storage] Use
contiguous::variable::Journalinadb::keylessby @danlaine in #2063 - Add regression fuzz tests by @dnkolegov-ar in #2071
- [p2p/lookup] Remove Unnecessary
dialableField by @patrick-ogrady in #2101 - [docs/benchmarks] Just use all-time by @patrick-ogrady in #2104
- [coding/benchmarks] Fix Module Format by @patrick-ogrady in #2105
- Implement the ZODA Coding Scheme by @cronokirby in #1802
- [docs/benchmarks] Lazy Charts by @patrick-ogrady in #2106
- [runtime] Add
tokio-consolefeature by @clabby in #2099 - [consensus::simplex] Remove dead code, fix minor missing-nullifications bug by @BrendanChou in #2100
- [examples/reshare] Cleanup Test by @patrick-ogrady in #2114
- [storage/operation/adb] Make adb variants share most of their code after rewriting it more abstractly by @roberto-bayardo in #2047
- [Storage] Add
pruning_boundaryhelpers by @danlaine in #2113 - [docs] add ZODA blog post by @cronokirby in #1894
- [consensus/simplex] use AttributableMap in batcher by @andresilva in #2109
- [Storage] Add
authenticated::Journalby @danlaine in #2112 - [consensus] Pass consensus context to
Application::verifyby @clabby in #2119 - [p2p/simulated] Add
ManagerandSocketManagerby @patrick-ogrady in #2123 - [storage/adb/any/variable] fix performance regression from double-sync in adb::any::variable by @roberto-bayardo in #2126
- [storage/journal/fixed] remove async from fixed journal size/pruning boundary by @roberto-bayardo in #2124
- [storage/adb] code sharing for fixed benchmarks by @roberto-bayardo in #2127
- [utils] optimize log2_ceil by @andresilva in #2117
- [p2p/simulated] Overwrite Channel (For Restart Testing) by @patrick-ogrady in #2140
- [consensus/marshal] Enshrine Finalizer Wait by @patrick-ogrady in #2144
- [storage/journal] do a full sync of the underlying journal with authenticated journal sync by @roberto-bayardo in #2145
- [Storage] Use
authenticated::journalinadb::keylessby @danlaine in #2122 - [storage/adb/bench] code sharing for adb::variable benchmarks by @roberto-bayardo in #2143
- [consensus/simplex] add TLE helper for bls12381_threshold::Scheme by @andresilva in #2147
- [Storage] Add commit to
journal::Contiguousby @danlaine in #2155 - [docs/minimmit] Add arXiv Link by @patrick-ogrady in #2156
- [coding] Avoid storing more data than necessary in fuzz by @cronokirby in #2158
- [blog] Welcome, Tempo by @patrick-ogrady in #2164
- [blogs/tempo] fix card by @patrick-ogrady in #2165
- Fix panic in the journal fuzz test by @dnkolegov-ar in #2162
- fix: typos in documentation comments by @prestoalvarez in #2163
- [Storage] Add separate types for clean/dirty MMRs by @danlaine in #2142
- Ensures the runtime cleans up tasks before panicking due to a timeout. by @evonide in #2168
- Fix a panic in the adb_keyless fuzz test by @dnkolegov-ar in #2166
- [workspace] Migrate to
rstestfor test matrices by @clabby in #2179 - [runtime] Create ergonomic metric wrappers by @fedemagnani in #2180
- [consensus/simplex] handle out of bounds in AttributableMap::insert by @andresilva in #2150
- Wrap the runtime loop in a catch unwind to also clean up correctly af… by @evonide in #2174
- add X follow badge by @davidcardenasus in #2172
- [consensus/marshal] Fills Gaps Before Processing by @clabby in #2160
- [storage/index] add a new index type which partitions keyspace across sub-indices by @roberto-bayardo in #2176
- [Storage] Rename
sync_datatocommitby @danlaine in #2118 - [ci] Partition miri tests by @clabby in #2197
- [ci] Partition Coverage by @patrick-ogrady in #2198
- [coding] Align CodecCfg to just take a usize parameter by @cronokirby in #2196
- [Storage] Use
authenticated::journalinadb::Immutableby @danlaine in #2125 - [storage/adb/any] use authenticated journal throughout adb::any by @roberto-bayardo in #2193
- [Storage] Parameterize MMRs on
Digestinstead ofHasherby @danlaine in #2195 - [Storage] Move authenticated bitmap to
storage::AuthenticatedBitMapby @danlaine in #2209 - [cryptography] derive Clone for DKG objects by @SuperFluffy in #2214
- [coding] Use MMR multi-proofs for ZODA by @cronokirby in #2215
- [storage/index] ordered variant of partitioned index by @roberto-bayardo in #2206
- [coding] Rename Error -> ZodaError by @cronokirby in #2227
- [p2p/router] Remove Unnecessary Clones by @GarmashAlex in #2224
- [utils] Introduce
Acknowledgementby @patrick-ogrady in #2216 - [consensus/simplex]
voterRefactor by @patrick-ogrady in #2199 - [consensus::simplex] Actor cleanup by @BrendanChou in #2236
- Fix issue 2028 by @dnkolegov-ar in #2234
- [ci] Cover
examplesby @clabby in #2237 - [ci] Upload all coverage reports at the same time by @clabby in #2240
- [coding] Avoid u16 overflow by @cronokirby in #2239
- [storage/adb/store] Add create op to Db trait + other cleanup by @roberto-bayardo in #2248
- [examples/estimator] Rename
Kudzuby @patrick-ogrady in #2259 - [estimator] Fix file refs by @clabby in #2261
- [workspace] Bump dependencies by @clabby in #2247
- [consensus::simplex] Refactor Simplex Recovery by @BrendanChou in #2192
- [coding] Reed-Solomon optimizations by @clabby in #2260
- Add a few comments explaining TLE divergences from paper by @cronoki...
v0.0.63
Immutable
release. Only release title and notes can be modified.
Changes
- [blog] Only Time Will Tell by @patrick-ogrady in #1585
- [blog] Battleware VRF by @patrick-ogrady in #1587
- [blogs] Roberto Nits by @patrick-ogrady in #1588
- [storage] add no_std compilation support by @roberto-bayardo in #1568
- Fuzz test for collector by @dnkolegov-ar in #1562
- [storage/mmr/journaled] fix assertion failure when trying to prune to a location earlier than current boundary by @roberto-bayardo in #1600
- [broadcast] Introduce Fuzzer by @dnkolegov-ar in #1552
- [estimator] Add More
.lazyFiles by @patrick-ogrady in #1620 - [storage/mmr] improve panic error messages by @roberto-bayardo in #1614
- [ci] Improve
no_stdcheck by @clabby in #1613 - [storage] Fix compile time assertions in
Currentby @clabby in #1618 - [cryptography/bls12381] Remove empty test by @patrick-ogrady in #1624
- [ci] Unpin
nightlyin CI workflows by @clabby in #1611 - [storage] Add
put_synctoCacheby @clabby in #1610 - [runtime] Clarifying documentation for the
Signalfuture by @clabby in #1628 - [cryptography] Less contributors in DKG benchmark in
testprofile by @clabby in #1629 - [estimator] Add Coding Specs by @patrick-ogrady in #1631
- [consensus] Add support for reconfiguration by @BrendanChou in #1397
- Update quint version to 0.28.0 by @dnkolegov-ar in #1633
- [adb::sync] Error refactor by @danlaine in #1630
- [adb] Remove sync upper bound rewind by @danlaine in #1616
- [adb::sync] Add
sync::Target::read_cfgvalidation by @danlaine in #1640 - [ci] Use
cargo-nextestforFast/SlowTests by @clabby in #1619 - [ci] Use
taiki-e/install-actionby @clabby in #1615 - [storage] Tune benchmarks down in CI tests by @clabby in #1642
- [consensus/marshal] Allow generic
Resolverby @clabby in #1647 - [codec] Add impl for () by @cronokirby in #1667
- [storage/mmr] update comment for 'size' field of Proof by @roberto-bayardo in #1669
- [coding] Add
SchemeAbstraction by @cronokirby in #1657 - [runtime]: add HandleMetrics and Aborter wrappers by @andresilva in #1685
- [broadcast] Use
BTreeMapinbuffered::Engineby @clabby in #1687 - [stream / cryptography]: Update handshake API, use
Transcriptby @cronokirby in #1557 - [runtime/io_uring] make force_poll mandatory by @andresilva in #1694
- [workspace] Fix lints with new clippy version by @clabby in #1693
- [cryptography] Implement Digest for Transcript::Summary by @cronokirby in #1701
- [storage/mmr] change range proving/verification API to require range of locations by @roberto-bayardo in #1678
- [p2p/simulated] Provide Max-Min Fair Bandwidth Allocation via Progressive Filling by @patrick-ogrady in #1655
- fix clippy warnings on println formatting by @danlaine in #1698
- [runtime] Add timeout() function to Clock trait by @syrupipy in #1650
- [ci] Support
merge_groupdispatch trigger by @clabby in #1716 - [consensus::marshal] Add getters by @BrendanChou in #1695
- [ci] Fail on Build Warnings by @patrick-ogrady in #1719
- [storage/mmr] document overflow conditions and provide better panic messages by @roberto-bayardo in #1714
- [adb::sync] Remove
close;syncwhen moving between sections by @danlaine in #1671 - [docs] Use
font-family: monospaceby @patrick-ogrady in #1728 - [docs] Add dedicated "How Things Work" page by @brunny-eth in #1654
- [docs] Make
Podcastby @patrick-ogrady in #1729 - [ci] Allow parallel slow jobs in merge queue by @patrick-ogrady in #1731
- [macros] Fix flaky test by @patrick-ogrady in #1733
- [storage/index] Provide both unordered and ordered variants of storage::index::Index by @roberto-bayardo in #1622
- [storage/mmr/proof] validate proof size in proof checking by @roberto-bayardo in #1724
- [consensus::marshal] Improve getter ergonomics by @BrendanChou in #1726
- [storage] Add
LocationandPositiontypes. by @danlaine in #1699 - [storage/mmr] change anydb::variable max_ops to NonZeroU64 by @roberto-bayardo in #1735
- fix typos in test comments by @viktorking7 in #1734
- [docs] Remove CF tracker by @patrick-ogrady in #1741
- [docs] Add dedicated podcast card by @patrick-ogrady in #1743
- Add more adjustments to the generic coding API by @cronokirby in #1744
- [consensus/threshold_simplex] include seed signature in Finalize messages by @andresilva in #1722
- update quint 0.29.0 by @dnkolegov-ar in #1730
- [CI] Remove
streambenchmarker by @patrick-ogrady in #1751 - [storage] Add
Location/Positiondocumentation; prevent panics by @danlaine in #1756 - [workspace] Add
justfileby @clabby in #1739 - [storage] Implement
Deref<Target=u64>for Location/Position by @danlaine in #1752 - [ci] Pin all action versions by @clabby in #1758
- [storage] make [*]Cap Translators order preserving by @roberto-bayardo in #1762
- feat: migrate simple 'select!{sleep}' patterns to 'timeout()' by @syrupipy in #1727
- [p2p] Add IP Rate Limiting by @patrick-ogrady in #1737
- [storage/mmr] fix potential hang in to_nearest_size by panicking on overflow by @roberto-bayardo in #1769
- [utils/net] Use
/48for IPV6 by @patrick-ogrady in #1771 - [storage/fuzz] Incorporate
simulate_failureby @dnkolegov-ar in #1582 - [p2p] Fix Flaky Doc Tests by @patrick-ogrady in #1775
- [workspace] make justfile nix friendly by @andresilva in #1777
- [consensus, p2p, storage] remove superfluous context cloning by @andresilva in #1778
- [runtime] Fix spawn_ref child tracking and adopt it across long-lived actors by @andresilva in #1764
- [p2p/lookup] Filter Unauthenticated IPs by @patrick-ogrady in #1774
- [storage/adb/any] test simple historical proof by @roberto-bayardo in #1781
- Fix flaky fuzz tests by @dnkolegov-ar in #1779
- [macros] Cleanup
select!test by @patrick-ogrady in #1793 - [website] Update Link Format by @patrick-ogrady in #1795
- [runtime] Standardize Panic Handling by @patrick-ogrady in #1790
- [ci] Run all benchmarks in
benchmarksjob by @clabby in #1810 - [coding] Remove redundant BMT proof verifications by @clabby in #1772
- [storage] Combine
synclower bound and upper bound intoRangeby @danlaine in #1789 - [bls12381/dkg...
v0.0.62
Changes
- [aggregation] Fix Restart Stall by @patrick-ogrady in #1566
- [cryptography] Mandate
Hasherimplementations to beDefaultby @clabby in #1564 - [storage/cache] Add
.first()Helper by @patrick-ogrady in #1569 - [storage/journal] improve consistency in journal read/get error handling by @roberto-bayardo in #1565
- [utils] Add
ClosedHelper by @patrick-ogrady in #1570 - Remove unnecessary clone() in wire message test by @eeemmmmmm in #1518
- [storage] prune dbs used in init benchmarks by @roberto-bayardo in #1576
- [release] v0.0.62 by @patrick-ogrady in #1575
- [ci] Fix publishing error by @patrick-ogrady in #1579
New Contributors
- @eeemmmmmm made their first contribution in #1518
Full Changelog: v0.0.61...v0.0.62
Stats
.github/workflows/fast.yml | 9 --
Cargo.lock | 56 +++----
Cargo.toml | 34 ++--
broadcast/Cargo.toml | 8 +-
codec/Cargo.toml | 8 +-
codec/fuzz/Cargo.toml | 5 +-
coding/Cargo.toml | 8 +-
coding/fuzz/Cargo.toml | 5 +-
collector/Cargo.toml | 8 +-
consensus/Cargo.toml | 8 +-
consensus/src/aggregation/engine.rs | 49 ++++--
consensus/src/aggregation/mocks/application.rs | 29 ++--
consensus/src/aggregation/mod.rs | 205 +++++++++++++++++++++++++
cryptography/Cargo.toml | 8 +-
cryptography/fuzz/Cargo.toml | 5 +-
cryptography/src/blake3/mod.rs | 6 -
cryptography/src/lib.rs | 8 +-
cryptography/src/sha256/mod.rs | 14 +-
deployer/Cargo.toml | 8 +-
examples/bridge/Cargo.toml | 8 +-
examples/chat/Cargo.toml | 8 +-
examples/estimator/Cargo.toml | 8 +-
examples/flood/Cargo.toml | 8 +-
examples/log/Cargo.toml | 8 +-
examples/sync/Cargo.toml | 8 +-
examples/vrf/Cargo.toml | 8 +-
macros/Cargo.toml | 8 +-
p2p/Cargo.toml | 8 +-
resolver/Cargo.toml | 8 +-
resolver/src/p2p/wire.rs | 2 +-
runtime/Cargo.toml | 8 +-
runtime/fuzz/Cargo.toml | 5 +-
scripts/bump_versions.sh | 58 -------
storage/Cargo.toml | 8 +-
storage/fuzz/Cargo.toml | 5 +-
storage/src/adb/any/variable/mod.rs | 16 +-
storage/src/adb/any/variable/sync.rs | 117 ++++++--------
storage/src/adb/benches/current_init.rs | 1 +
storage/src/adb/benches/fixed_init.rs | 1 +
storage/src/adb/benches/variable_init.rs | 1 +
storage/src/adb/immutable/mod.rs | 10 +-
storage/src/adb/keyless.rs | 30 +---
storage/src/archive/prunable/storage.rs | 6 +-
storage/src/cache/mod.rs | 10 +-
storage/src/cache/storage.rs | 8 +-
storage/src/freezer/storage.rs | 14 +-
storage/src/journal/fixed.rs | 29 ++--
storage/src/journal/mod.rs | 6 +-
storage/src/journal/variable.rs | 38 ++---
storage/src/store/benches/restart.rs | 1 +
storage/src/store/mod.rs | 8 +-
storage/src/store/operation.rs | 10 ++
stream/Cargo.toml | 8 +-
stream/fuzz/Cargo.toml | 5 +-
utils/Cargo.toml | 8 +-
utils/fuzz/Cargo.toml | 5 +-
utils/src/futures.rs | 111 ++++++++++++-
57 files changed, 671 insertions(+), 419 deletions(-)v0.0.61
Changes
- [codec] Impl
Encodefor&[T: Encode]by @clabby in #1513 - [storage] fix rewind bugs by @roberto-bayardo in #1521
- fix: correct typo by @viktorking7 in #1525
- [commonware-utils] Add
rand/std_rngtostdfeature by @danlaine in #1529 - [docs] Point to YouTube for Podcasts by @patrick-ogrady in #1537
- Update Minimmit spec by @dnkolegov-ar in #1456
[commonware-resolver]enablemocksfeature for unit tests by @danlaine in #1527- [cryptography] document non-uniform JF DKG by @cronokirby in #1541
- Transcript API by @cronokirby in #1501
- [cryptography] Use CryptoRng consistently by @cronokirby in #1542
- [storage/adb/fixed] Lightweight commit & new approach to pruning by @roberto-bayardo in #1539
- [storage/adb/bench] benchmarks for generating various adbs by @roberto-bayardo in #1546
- Fix fuzz targets and related functions by @dnkolegov-ar in #1536
- Update quint version to 0.27 by @dnkolegov-ar in #1503
- [cryptography/bls12381/tle] Add
HashtoCiphertextby @patrick-ogrady in #1556 - [storage] lightweight commit for store, adb::immutable, adb::keyless, and adb::any::fixed by @roberto-bayardo in #1523
- [collector] Minimal Panic Fix by @patrick-ogrady in #1560
- [release] v0.0.61 by @patrick-ogrady in #1561
New Contributors
- @viktorking7 made their first contribution in #1525
Full Changelog: v0.0.60...v0.0.61
Stats
.github/workflows/quint.yml | 2 +-
AGENTS.md | 31 +-
Cargo.lock | 69 +-
Cargo.toml | 30 +-
broadcast/Cargo.toml | 2 +-
codec/Cargo.toml | 2 +-
codec/fuzz/Cargo.toml | 2 +-
codec/src/types/vec.rs | 45 +-
coding/Cargo.toml | 2 +-
coding/fuzz/Cargo.toml | 2 +-
collector/Cargo.toml | 3 +-
collector/src/lib.rs | 12 +-
collector/src/p2p/engine.rs | 12 +-
collector/src/p2p/ingress.rs | 8 +-
collector/src/p2p/mocks/mod.rs | 1 +
collector/src/p2p/mocks/sender.rs | 42 +
collector/src/p2p/mod.rs | 119 +-
consensus/Cargo.toml | 2 +-
consensus/src/aggregation/engine.rs | 2 +-
consensus/src/ordered_broadcast/engine.rs | 2 +-
consensus/src/simplex/actors/voter/actor.rs | 2 +-
.../src/threshold_simplex/actors/voter/actor.rs | 2 +-
cryptography/Cargo.toml | 5 +-
cryptography/fuzz/Cargo.toml | 3 +-
cryptography/fuzz/fuzz_targets/blake3_hasher.rs | 26 +-
cryptography/fuzz/fuzz_targets/metamorph_lthash.rs | 3 +
cryptography/fuzz/fuzz_targets/sha256_hasher.rs | 53 +-
cryptography/src/blake3/mod.rs | 4 +-
cryptography/src/bls12381/dkg/dealer.rs | 4 +-
cryptography/src/bls12381/dkg/mod.rs | 22 +-
cryptography/src/bls12381/dkg/ops.rs | 4 +-
cryptography/src/bls12381/primitives/group.rs | 4 +-
cryptography/src/bls12381/primitives/ops.rs | 4 +-
cryptography/src/bls12381/primitives/poly.rs | 4 +-
cryptography/src/bls12381/primitives/variant.rs | 8 +-
cryptography/src/bls12381/scheme.rs | 6 +-
cryptography/src/bls12381/tle.rs | 6 +-
cryptography/src/ed25519/scheme.rs | 7 +-
cryptography/src/lib.rs | 10 +-
cryptography/src/secp256r1/scheme.rs | 4 +-
cryptography/src/sha256/mod.rs | 4 +-
cryptography/src/transcript.rs | 367 +++++
deployer/Cargo.toml | 2 +-
docs/shared.js | 2 +-
examples/bridge/Cargo.toml | 2 +-
examples/chat/Cargo.toml | 2 +-
examples/estimator/Cargo.toml | 2 +-
examples/flood/Cargo.toml | 2 +-
examples/log/Cargo.toml | 2 +-
examples/sync/Cargo.toml | 2 +-
examples/sync/src/bin/server.rs | 3 +
examples/sync/src/databases/any.rs | 5 +-
examples/sync/src/databases/immutable.rs | 4 +-
examples/sync/src/databases/mod.rs | 4 +-
examples/vrf/Cargo.toml | 3 +-
examples/vrf/src/handlers/contributor.rs | 6 +-
macros/Cargo.toml | 2 +-
p2p/Cargo.toml | 2 +-
p2p/src/lib.rs | 4 +-
pipeline/minimmit/minimmit.md | 40 +-
pipeline/minimmit/quint/defs.qnt | 2 +-
.../quint/{main_n6f0.qnt => main_n6f1b0.qnt} | 5 +-
.../quint/{main_n6f1.qnt => main_n6f1b1.qnt} | 3 +-
.../quint/{main_n6f2.qnt => main_n6f2b2.qnt} | 3 +-
.../quint/{main_n7f1.qnt => main_n7f1b1.qnt} | 3 +-
pipeline/minimmit/quint/makefile | 33 +-
pipeline/minimmit/quint/option.qnt | 2 +-
pipeline/minimmit/quint/replica.qnt | 448 +++---
pipeline/minimmit/quint/scripts/invariant.sh | 2 +-
pipeline/minimmit/quint/scripts/smoke.sh | 50 +
pipeline/minimmit/quint/tests/tests_n6f0.qnt | 851 -----------
pipeline/minimmit/quint/tests/tests_n6f1.qnt | 174 ---
pipeline/minimmit/quint/tests/tests_n6f1b0.qnt | 1600 ++++++++++++++++++++
pipeline/minimmit/quint/tests/tests_n6f1b1.qnt | 175 +++
pipeline/minimmit/quint/tests/tests_n7f1.qnt | 176 ---
pipeline/minimmit/quint/tests/tests_n7f1b1.qnt | 175 +++
pipeline/minimmit/quint/twins_n6f1b1.qnt | 41 +
pipeline/minimmit/quint/types.qnt | 40 +-
resolver/Cargo.toml | 8 +-
runtime/Cargo.toml | 2 +-
runtime/fuzz/Cargo.toml | 2 +-
storage/Cargo.toml | 2 +-
storage/fuzz/Cargo.toml | 2 +-
.../fuzz/fuzz_targets/adb_current_operations.rs | 59 +-
storage/fuzz/fuzz_targets/adb_operations.rs | 23 +-
storage/fuzz/fuzz_targets/adb_sync.rs | 25 +-
storage/fuzz/fuzz_targets/journal_operations.rs | 18 +-
storage/src/adb/any/fixed/mod.rs | 711 ++++-----
storage/src/adb/any/fixed/sync.rs | 225 +--
storage/src/adb/any/variable/mod.rs | 464 +++---
storage/src/adb/any/variable/sync.rs | 23 +-
storage/src/adb/benches/bench.rs | 8 +-
storage/src/adb/benches/current_init.rs | 3 +-
storage/src/adb/benches/fixed_generate.rs | 131 ++
storage/src/adb/benches/fixed_init.rs | 3 +-
storage/src/adb/benches/keyless_generate.rs | 110 ++
storage/src/adb/benches/variable_generate.rs | 138 ++
storage/src/adb/current.rs | 380 ++---
storage/src/adb/immutable/mod.rs | 121 +-
storage/src/adb/immutable/sync/mod.rs | 2 +-
storage/src/adb/keyless.rs | 841 ++++++++--
storage/src/adb/mod.rs | 37 +
storage/src/adb/sync/resolver.rs | 8 +-
storage/src/archive/prunable/storage.rs | 2 +-
storage/src/cache/storage.rs | 2 +-
storage/src/freezer/storage.rs | 1 +
storage/src/journal/fixed.rs | 52 +-
storage/src/journal/variable.rs | 156 +-
storage/src/mmr/journaled.rs | 54 +-
storage/src/mmr/mem.rs | 12 +-
storage/src/store/mod.rs | 174 ++-
stream/Cargo.toml | 2 +-
stream/fuzz/Cargo.toml | 2 +-
utils/Cargo.toml | 4 +-
utils/fuzz/Cargo.toml | 2 +-
utils/fuzz/fuzz_targets/bitvec.rs | 169 ++-
utils/fuzz/fuzz_targets/lib_functions.rs | 6 +-
utils/fuzz/fuzz_targets/priority_set.rs | 38 +-
utils/src/lib.rs | 35 +-
119 files changed, 5707 insertions(+), 3164 deletions(-)