v0.0.63
·
856 commits
to main
since this release
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] Improve
test_invalid_commitment_degreeby @patrick-ogrady in #1814 - [p2p] Remove Task Spawn from Drop by @patrick-ogrady in #1780
- [cryptography] Add standard types for DKG participant comms by @clabby in #1815
- [bls12381/dkg] Remove Duplicate Commitment Check by @patrick-ogrady in #1806
- [storage] add BitMap type by @danlaine in #1803
- [p2p] Verify
InfoinPeerby @patrick-ogrady in #1798 - [bls12381/dkg] Check Commitments (Tolerate Equivocation Attack) by @patrick-ogrady in #1813
- [utils] Replace
Bitvecusage withBitMapby @danlaine in #1819 - [storage/adb] Implement new floor raising policy in adb::fixed::any by @roberto-bayardo in #1801
- [storage] Fix empty range panic in
mmr_journaledfuzz test; fuzz nit by @danlaine in #1830 - [storage] Fix
full_benchgate forcfg_if-gated benches by @clabby in #1837 - [codec] Make
RangeCfggeneric over ordered types by @danlaine in #1828 - [ci] Add riscv{32/64}imac-unknown-none-elf cross-compilation images by @clabby in #1827
- [runtime] Introduce
ContextCell+ Remove_refby @patrick-ogrady in #1834 - [examples/bridge] update README and dealer by @andresilva in #1842
- [storage] Prevent overflow on
LocationtoPositionconversion by @danlaine in #1832 - [runtime/iouring] make sure that the timespec pointer stays valid by @andresilva in #1845
- [storage] Use
commonware-utils::bitmap::BitmapinMerkleizedBitmapby @danlaine in #1516 - [ci] Fix
Lockjob by @clabby in #1855 - [storage] Add
Cursor::findmethod by @danlaine in #1854 - [cryptography] BLS DKG: describe reveal caveats better by @cronokirby in #1859
- [storage/store] part 1 of ordered any: storage traits + implementations by @roberto-bayardo in #1858
- [cryptography] Error on reading invalid bloom filter by @danlaine in #1853
- [storage/adb] pt 2 of ordered-any: move existing implementations to 'unordered.rs' by @roberto-bayardo in #1860
- [utils] Add convenience
From<[u8; N]>impl forFixedBytes<N>by @clabby in #1871 - [storage/adb/any] implement ordered variant of adb::any::fixed by @roberto-bayardo in #1865
- [storage] Validate config in
mmr::initby @danlaine in #1856 - [storage] Add
MAX_POSITION; fixTryFromoverflow by @danlaine in #1879 - [storage] Move MMR size check to
Position; validate size inextract_pinned_nodesby @danlaine in #1857 - [storage] Prevent panics from user inputs to
pubfunctions by @danlaine in #1847 - [chore]
&Vec<T>->&[T]by @clabby in #1887 - [utils] Add
Setarray type by @clabby in #1885 - [runtime/deterministic] Add
externalSupport by @patrick-ogrady in #1848 - [runtime] Add Comment on Setting Latency by @patrick-ogrady in #1900
- [runtime] avoid boxing the external future in Waiter by @andresilva in #1899
- [broadcast] Exit on shutdown signal in
buffered::Engineby @clabby in #1902 - [runtime] Tree-Structured Context (Remove
Detached) by @patrick-ogrady in #1867 - [runtime] Fix Flaky
spawn_after_abortby @patrick-ogrady in #1915 - [cryptography] poly: add from_iter and new_with_constant fns by @cronokirby in #1877
- [examples] Introduce
commonware-reshareby @clabby in #1796 - [consensus] merge simplex and threshold_simplex by @andresilva in #1824
- [consensus/simplex] Implement BLS multisignature signing scheme by @andresilva in #1913
- [p2p] Add backup channel for
Muxerby @clabby in #1927 - [reshare] Gossip finalizations for prevous epoch boundaries by @clabby in #1933
- [reshare] Align entry/exit logic by @patrick-ogrady in #1937
- Update AGENTS.md to request agent not use hard to type symbols by @danlaine in #1939
- [utils]: const sequence constructors by @SuperFluffy in #1907
- [Fuzz] Focus fuzz tests by replacing take with custom Arbitrary definition by @danlaine in #1942
- [utils] Implement rewindable bitmap by @danlaine in #1717
- [consensus/simplex] use bitmap for signer set in certificates by @andresilva in #1940
- [storage/adb] clamp end_loc in historical_proof using the log size by @roberto-bayardo in #1952
- [p2p] Cap Data Length to Remaining Bytes by @patrick-ogrady in #1955
- [reshare] Don't panic if
Dkgmessage fails to decode by @clabby in #1963 - [consensus/simplex] remove bitmap length check when decoding Signers by @andresilva in #1961
- New granular fuzz tests for storage by @dnkolegov-ar in #1851
- [Storage] Use
oldest_retained_sectionfield injournal::variable::Journalby @danlaine in #1965 - [cryptography/bls12381/dkg] Expand Test Coverage by @patrick-ogrady in #1967
- [consensus/simplex] account for signing scheme attributability when reporting activity by @andresilva in #1941
- [storage/mmr/iterator] check if mmr size is valid before passing to peak iterator by @roberto-bayardo in #1970
- [storage/mmr/bitmap] return error instead of panic if pruned chunks data is corrupt by @roberto-bayardo in #1969
- [examples] Support DKG setup in
reshareby @clabby in #1946 - [p2p] Support hex formatting in
PeerRejectedby @clabby in #1979 - [storage/adb/current] adb::ordered::current (provides exclusion proof support) by @roberto-bayardo in #1799
- [consensus/simplex] Use enum for message type labels in metrics by @andresilva in #1976
- [p2p] Accept
SetinOracle::registerby @clabby in #1980 - [consensus/simplex] resolver metrics by task type by @andresilva in #1975
- [storage/adb/variable] implement new floor raising policy for adb::any::variable by @roberto-bayardo in #1985
- Init fuzz for p2p by @dnkolegov-ar in #1571
- [storage/store+adb] move store/ into adb/ and store/operation to adb/operation by @roberto-bayardo in #1989
- [storage/adb] Refactor Operation variants by @roberto-bayardo in #1993
- Add fuzz test for new utils by @dnkolegov-ar in #1974
- [reshare] Fix comment by @clabby in #2003
- [consensus/simplex] prevent overflow in select_leader by @andresilva in #2002
- [Utils] Run
Prunablebitmap tests for multiple chunk sizes by @danlaine in #1998 - [storage/adb/store] new floor raising policy for unauth store by @roberto-bayardo in #1997
- [storage/mmr/mem] document the panic conditions of get_node_unchecked by @roberto-bayardo in #2011
- [storage/adb/bench] add unauthenticated store and variable store to the fixed-generate benchmark by @roberto-bayardo in #2012
- [codec] Use more restrictive
IsUnittype (rather thanDefault) forDecodeExt/ReadExtby @BrendanChou in #2013 - [Runtime] Change
Storageto ensure blobs are durably open/removed by @danlaine in #1990 - [runtime] Add option to instrument
spawned tasks by @clabby in #1999 - [storage/adb/benches] benchmark against more variants by @roberto-bayardo in #2021
- [utils] Add
hex_literalmacro by @clabby in #1981 - [consensus/simplex] unify participants committees under Scheme by @andresilva in #2000
- [storage] Add
journal::Contiguous; implement forjournal::Fixedandjournal::Variableby @danlaine in #1893 - [consensus/simplex] validate participants length by @andresilva in #2023
- [consensus/simplex] threshold certificate verifier by @andresilva in #2029
- [reshare] Gossip boundary finalizations for non-members of the committee by @clabby in #2022
- [storage/adb] improve code sharing among fixed adb variants by @roberto-bayardo in #2027
- [AGENTS] Add Custom Instructions for Copilot by @patrick-ogrady in #2038
- [storage/adb/current] optimize commit by delaying bitmap state writing by @roberto-bayardo in #2037
- Add select_leaders test by @dnkolegov-ar in #2018
- [bitmap] remove invariant that last chunk has room for next bit by @danlaine in #1589
- [Storage] Move "sectioned" journal implementations to
segmentedby @danlaine in #1947 - [consensus/simplex] Handle Restart Votes by @patrick-ogrady in #2045
- [p2p/lookup] Prefer Latest Socket by @patrick-ogrady in #2052
- [consenus/simplex] Expose leader on
Contextby @klkvr in #2053 - [p2p/lookup] Attempt Handshakes with Unregistered IPs by @patrick-ogrady in #2054
- [cryptography/blake3] Remove redundant
hashimpl by @patrick-ogrady in #2055 - [consensus/simplex] Log Leader Election and Broadcast Votes by @patrick-ogrady in #2057
- [Storage] Change
journal::contiguous::Contiguousto remove unneeded async/Result in signatures by @danlaine in #2058 - [storage] Use
journal::variable::Variableinadb::any::variable::Anyby @danlaine in #2036 - [consensus] Remove
Coordinatorby @clabby in #1984 - [Storage] Use contiguous journal in
adb::Immutableby @danlaine in #1916 - [Storage] Remove unneeded bounds on
journal::contiguous::Contiguousby @danlaine in #2064 - [marshal] Send Tip Updates by @patrick-ogrady in #2065
- [release] v0.0.63 by @patrick-ogrady in #2066
New Contributors
- @syrupipy made their first contribution in #1650
- @brunny-eth made their first contribution in #1654
- @klkvr made their first contribution in #2053
Full Changelog: v0.0.62...v0.0.63
Stats
.github/actions/setup/action.yml | 8 +-
.github/copilot-instructions.md | 1 +
.github/scripts/check_no_std.sh | 34 +
.github/workflows/benchmark.yml | 12 +-
.github/workflows/coverage.yml | 15 +-
.github/workflows/docker.yml | 165 +
.github/workflows/fast.yml | 156 +-
.github/workflows/publish.yml | 7 +-
.github/workflows/quint.yml | 11 +-
.github/workflows/slow.yml | 91 +-
AGENTS.md | 44 +-
CONTRIBUTING.md | 20 +-
Cargo.lock | 285 +-
Cargo.toml | 44 +-
FUZZING.md | 6 +-
README.md | 3 +
broadcast/fuzz/Cargo.toml | 27 +
.../fuzz_targets/broadcast_engine_operations.rs | 280 ++
broadcast/src/buffered/engine.rs | 30 +-
broadcast/src/buffered/mocks.rs | 2 +-
broadcast/src/buffered/mod.rs | 80 +-
codec/fuzz/fuzz_targets/codec_roundtrip.rs | 61 +-
codec/src/config.rs | 194 +-
codec/src/extensions.rs | 65 +-
codec/src/types/btree_map.rs | 8 +-
codec/src/types/btree_set.rs | 8 +-
codec/src/types/bytes.rs | 2 +-
codec/src/types/hash_map.rs | 8 +-
codec/src/types/hash_set.rs | 8 +-
codec/src/types/primitives.rs | 27 +-
codec/src/types/vec.rs | 2 +-
codec/src/varint.rs | 25 +-
coding/Cargo.toml | 17 +-
coding/fuzz/Cargo.toml | 11 +
coding/fuzz/fuzz_targets/no_coding.rs | 10 +
coding/fuzz/fuzz_targets/reed_solomon.rs | 88 +-
coding/fuzz/src/lib.rs | 89 +
coding/src/benches/bench.rs | 108 +
coding/src/benches/bench_size.rs | 57 +
coding/src/benches/no_coding.rs | 18 +
coding/src/benches/reed_solomon.rs | 18 +
coding/src/lib.rs | 391 +-
coding/src/no_coding.rs | 87 +
coding/src/reed_solomon/benches/bench.rs | 6 -
coding/src/reed_solomon/benches/decode.rs | 54 -
coding/src/reed_solomon/benches/encode.rs | 42 -
coding/src/reed_solomon/mod.rs | 569 +--
collector/fuzz/Cargo.toml | 29 +
collector/fuzz/fuzz_targets/collector.rs | 439 ++
collector/src/p2p/engine.rs | 8 +-
collector/src/p2p/mod.rs | 9 +-
consensus/Cargo.toml | 6 +-
consensus/fuzz/Cargo.toml | 24 +
.../fuzz/fuzz_targets/simplex_select_leader.rs | 83 +
consensus/src/aggregation/config.rs | 6 +-
consensus/src/aggregation/engine.rs | 21 +-
consensus/src/aggregation/metrics.rs | 40 +-
consensus/src/aggregation/mocks/application.rs | 4 +-
consensus/src/aggregation/mocks/monitor.rs | 2 +-
consensus/src/aggregation/mocks/reporter.rs | 3 +-
consensus/src/aggregation/mocks/supervisor.rs | 14 +-
consensus/src/aggregation/mod.rs | 34 +-
consensus/src/aggregation/safe_tip.rs | 16 +-
consensus/src/aggregation/types.rs | 17 +-
consensus/src/lib.rs | 26 +-
consensus/src/marshal/actor.rs | 734 ++-
consensus/src/marshal/cache.rs | 395 ++
consensus/src/marshal/config.rs | 38 +-
consensus/src/marshal/finalizer.rs | 31 +-
consensus/src/marshal/ingress/handler.rs | 86 +-
consensus/src/marshal/ingress/mailbox.rs | 182 +-
consensus/src/marshal/ingress/mod.rs | 2 +-
consensus/src/marshal/mocks/application.rs | 24 +-
consensus/src/marshal/mod.rs | 779 +++-
consensus/src/marshal/resolver/mod.rs | 3 +
consensus/src/marshal/resolver/p2p.rs | 74 +
consensus/src/ordered_broadcast/ack_manager.rs | 3 +-
consensus/src/ordered_broadcast/config.rs | 4 +-
consensus/src/ordered_broadcast/engine.rs | 32 +-
consensus/src/ordered_broadcast/metrics.rs | 61 +-
consensus/src/ordered_broadcast/mocks/automaton.rs | 4 +-
consensus/src/ordered_broadcast/mocks/monitor.rs | 2 +-
consensus/src/ordered_broadcast/mocks/reporter.rs | 3 +-
.../src/ordered_broadcast/mocks/sequencers.rs | 8 +-
.../src/ordered_broadcast/mocks/validators.rs | 12 +-
consensus/src/ordered_broadcast/mod.rs | 34 +-
consensus/src/ordered_broadcast/types.rs | 15 +-
.../actors/batcher/actor.rs | 262 +-
consensus/src/simplex/actors/batcher/ingress.rs | 62 +
.../actors/batcher/mod.rs | 12 +-
consensus/src/simplex/actors/mod.rs | 1 +
consensus/src/simplex/actors/resolver/actor.rs | 329 +-
consensus/src/simplex/actors/resolver/ingress.rs | 45 +-
consensus/src/simplex/actors/resolver/mod.rs | 13 +-
consensus/src/simplex/actors/voter/actor.rs | 1792 ++++----
consensus/src/simplex/actors/voter/ingress.rs | 50 +-
consensus/src/simplex/actors/voter/mod.rs | 1033 ++++-
consensus/src/simplex/config.rs | 77 +-
consensus/src/simplex/engine.rs | 148 +-
consensus/src/simplex/metrics.rs | 89 +-
consensus/src/simplex/mocks/application.rs | 97 +-
consensus/src/simplex/mocks/conflicter.rs | 122 +-
consensus/src/simplex/mocks/fixtures.rs | 133 +
.../mocks/impersonator.rs | 73 +-
consensus/src/simplex/mocks/mod.rs | 5 +-
consensus/src/simplex/mocks/nuller.rs | 84 +-
consensus/src/simplex/mocks/outdated.rs | 90 +-
consensus/src/simplex/mocks/reconfigurer.rs | 101 +
consensus/src/simplex/mocks/relay.rs | 3 +
consensus/src/simplex/mocks/reporter.rs | 334 ++
consensus/src/simplex/mocks/supervisor.rs | 318 --
consensus/src/simplex/mod.rs | 3040 +++++++++----
.../simplex/signing_scheme/bls12381_multisig.rs | 1112 +++++
.../simplex/signing_scheme/bls12381_threshold.rs | 1386 ++++++
consensus/src/simplex/signing_scheme/ed25519.rs | 1036 +++++
consensus/src/simplex/signing_scheme/mod.rs | 258 ++
consensus/src/simplex/signing_scheme/reporter.rs | 365 ++
consensus/src/simplex/signing_scheme/utils.rs | 135 +
consensus/src/simplex/types.rs | 4756 ++++++++++++++------
.../threshold_simplex/actors/batcher/ingress.rs | 49 -
consensus/src/threshold_simplex/actors/mod.rs | 3 -
.../src/threshold_simplex/actors/resolver/actor.rs | 578 ---
.../threshold_simplex/actors/resolver/ingress.rs | 62 -
.../src/threshold_simplex/actors/resolver/mod.rs | 26 -
.../src/threshold_simplex/actors/voter/actor.rs | 2073 ---------
.../src/threshold_simplex/actors/voter/ingress.rs | 28 -
.../src/threshold_simplex/actors/voter/mod.rs | 782 ----
consensus/src/threshold_simplex/config.rs | 166 -
consensus/src/threshold_simplex/engine.rs | 221 -
consensus/src/threshold_simplex/metrics.rs | 88 -
.../src/threshold_simplex/mocks/application.rs | 310 --
.../src/threshold_simplex/mocks/conflicter.rs | 109 -
consensus/src/threshold_simplex/mocks/invalid.rs | 106 -
consensus/src/threshold_simplex/mocks/mod.rs | 10 -
consensus/src/threshold_simplex/mocks/nuller.rs | 92 -
consensus/src/threshold_simplex/mocks/outdated.rs | 117 -
consensus/src/threshold_simplex/mocks/relay.rs | 58 -
.../src/threshold_simplex/mocks/supervisor.rs | 432 --
consensus/src/threshold_simplex/mod.rs | 3501 --------------
consensus/src/threshold_simplex/types.rs | 3697 ---------------
consensus/src/types.rs | 102 +
consensus/src/utils.rs | 108 +
cryptography/Cargo.toml | 25 +-
cryptography/fuzz/Cargo.toml | 4 +-
cryptography/fuzz/fuzz_targets/blake3_hasher.rs | 8 +-
cryptography/fuzz/fuzz_targets/bloomfilter.rs | 44 +-
.../fuzz/fuzz_targets/bls12381_batch_verifier.rs | 20 +-
.../fuzz/fuzz_targets/ed25519_batch_verifier.rs | 20 +-
cryptography/src/blake3/mod.rs | 30 +-
cryptography/src/bloomfilter.rs | 80 +-
cryptography/src/bls12381/benches/dkg_recovery.rs | 21 +-
.../src/bls12381/benches/dkg_reshare_recovery.rs | 25 +-
cryptography/src/bls12381/dkg/arbiter.rs | 122 +-
cryptography/src/bls12381/dkg/dealer.rs | 48 +-
cryptography/src/bls12381/dkg/mod.rs | 1242 ++---
cryptography/src/bls12381/dkg/ops.rs | 37 +-
cryptography/src/bls12381/dkg/player.rs | 171 +-
cryptography/src/bls12381/dkg/types.rs | 236 +
cryptography/src/bls12381/primitives/group.rs | 6 +
cryptography/src/bls12381/primitives/poly.rs | 38 +-
cryptography/src/ed25519/scheme.rs | 2 +-
cryptography/src/handshake.rs | 406 ++
cryptography/src/handshake/benches/bench.rs | 34 +
cryptography/src/handshake/benches/handshake.rs | 7 +
cryptography/src/handshake/benches/transport.rs | 13 +
cryptography/src/handshake/cipher.rs | 93 +
cryptography/src/handshake/error.rs | 37 +
cryptography/src/handshake/key_exchange.rs | 80 +
cryptography/src/lib.rs | 2 +
cryptography/src/secp256r1/scheme.rs | 4 +-
cryptography/src/sha256/mod.rs | 21 +-
cryptography/src/transcript.rs | 98 +-
docker/README.md | 67 +
docker/docker-bake.hcl | 50 +
docker/riscv-unknown-elf-toolchain.dockerfile | 46 +
docker/rust-riscv-cross.dockerfile | 47 +
docs/CNAME | 1 -
docs/benchmarks.html | 17 +-
docs/blogs/adb-any.html | 15 +-
docs/blogs/adb-current.html | 19 +-
docs/blogs/buffered-signatures.html | 21 +-
docs/blogs/commonware-broadcast.html | 13 +-
docs/blogs/commonware-cryptography.html | 7 +-
docs/blogs/commonware-deployer.html | 11 +-
docs/blogs/commonware-runtime.html | 11 +-
docs/blogs/commonware-the-anti-framework.html | 19 +-
docs/blogs/introducing-commonware.html | 9 +-
docs/blogs/minimmit.html | 13 +-
docs/blogs/mmr.html | 15 +-
docs/blogs/only-time-will-tell.html | 136 +
docs/blogs/threshold-simplex.html | 13 +-
docs/hiring.css | 2 +-
docs/hiring.html | 7 +-
docs/imgs/battleware-duel.png | Bin 0 -> 457749 bytes
docs/imgs/creature-generation.png | Bin 0 -> 500363 bytes
docs/imgs/matchmaking.png | Bin 0 -> 545796 bytes
docs/imgs/multi-proof.png | Bin 0 -> 477491 bytes
docs/imgs/threshold-roots.png | Bin 0 -> 695412 bytes
docs/imgs/timelock-decryption.png | Bin 0 -> 752677 bytes
docs/index.html | 41 +-
docs/podcast.html | 259 ++
docs/podcast.png | Bin 0 -> 113859 bytes
docs/shared.js | 26 +-
docs/style.css | 157 +-
examples/bridge/Cargo.toml | 2 +-
examples/bridge/README.md | 44 +-
examples/bridge/src/application/actor.rs | 88 +-
examples/bridge/src/application/ingress.rs | 30 +-
examples/bridge/src/application/mod.rs | 13 +-
examples/bridge/src/application/supervisor.rs | 92 -
examples/bridge/src/bin/dealer.rs | 7 +-
examples/bridge/src/bin/indexer.rs | 83 +-
examples/bridge/src/bin/validator.rs | 53 +-
examples/bridge/src/lib.rs | 13 +-
examples/bridge/src/types/block.rs | 24 +-
examples/bridge/src/types/inbound.rs | 25 +-
examples/bridge/src/types/outbound.rs | 22 +-
examples/chat/src/handler.rs | 2 +-
examples/chat/src/main.rs | 22 +-
examples/estimator/README.md | 4 +-
.../estimator/alpenglow_votor_large_block.lazy | 15 +
.../alpenglow_votor_large_block_coding_50.lazy | 15 +
.../estimator/alpenglow_votor_small_block.lazy | 15 +
examples/estimator/minimmit.lazy | 10 +-
examples/estimator/minimmit_large_block.lazy | 14 +
.../estimator/minimmit_large_block_coding_50.lazy | 14 +
examples/estimator/minimmit_small_block.lazy | 14 +
examples/estimator/simplex.lazy | 6 +-
examples/estimator/simplex_large_block.lazy | 15 +
.../estimator/simplex_large_block_coding_50.lazy | 15 +
examples/estimator/simplex_small_block.lazy | 15 +
...lex_with_sizes.lazy => simplex_with_delay.lazy} | 12 +-
examples/estimator/src/lib.rs | 56 +-
examples/estimator/src/main.rs | 19 +-
examples/flood/src/bin/flood.rs | 10 +-
examples/log/Cargo.toml | 2 +-
examples/log/src/application/actor.rs | 36 +-
examples/log/src/application/ingress.rs | 32 +-
examples/log/src/application/mod.rs | 17 +-
examples/log/src/application/reporter.rs | 39 +
examples/log/src/application/supervisor.rs | 75 -
examples/log/src/main.rs | 53 +-
examples/reshare/.gitignore | 1 +
examples/reshare/Cargo.toml | 40 +
examples/reshare/README.md | 51 +
examples/reshare/src/application/actor.rs | 250 +
examples/reshare/src/application/ingress.rs | 136 +
examples/reshare/src/application/mod.rs | 13 +
examples/reshare/src/application/scheme.rs | 121 +
examples/reshare/src/application/types.rs | 140 +
examples/reshare/src/dkg/actor.rs | 659 +++
examples/reshare/src/dkg/ingress.rs | 100 +
examples/reshare/src/dkg/manager.rs | 676 +++
examples/reshare/src/dkg/mod.rs | 13 +
examples/reshare/src/dkg/types.rs | 237 +
examples/reshare/src/engine.rs | 312 ++
examples/reshare/src/main.rs | 124 +
examples/reshare/src/orchestrator/actor.rs | 391 ++
examples/reshare/src/orchestrator/ingress.rs | 51 +
examples/reshare/src/orchestrator/mod.rs | 7 +
examples/reshare/src/setup.rs | 381 ++
examples/reshare/src/validator.rs | 1709 +++++++
examples/sync/Cargo.toml | 2 +-
examples/sync/README.md | 2 +-
examples/sync/src/bin/client.rs | 44 +-
examples/sync/src/bin/server.rs | 72 +-
examples/sync/src/databases/any.rs | 31 +-
examples/sync/src/databases/immutable.rs | 23 +-
examples/sync/src/databases/mod.rs | 10 +-
examples/sync/src/lib.rs | 4 +-
examples/sync/src/net/mod.rs | 13 +-
examples/sync/src/net/resolver.rs | 8 +-
examples/sync/src/net/wire.rs | 48 +-
examples/vrf/Cargo.toml | 3 +
examples/vrf/src/handlers/arbiter.rs | 40 +-
examples/vrf/src/handlers/contributor.rs | 90 +-
examples/vrf/src/handlers/mod.rs | 8 +-
examples/vrf/src/handlers/utils.rs | 16 -
examples/vrf/src/handlers/vrf.rs | 8 +-
examples/vrf/src/handlers/wire.rs | 109 +-
examples/vrf/src/main.rs | 26 +-
justfile | 64 +
macros/Cargo.toml | 5 +
macros/src/lib.rs | 120 +-
macros/tests/select.rs | 44 +-
p2p/Cargo.toml | 4 +
p2p/fuzz/Cargo.toml | 47 +
p2p/fuzz/fuzz_targets/discovery.rs | 8 +
p2p/fuzz/fuzz_targets/lookup.rs | 8 +
p2p/fuzz/fuzz_targets/simulated.rs | 302 ++
p2p/fuzz/src/lib.rs | 629 +++
p2p/src/authenticated/data.rs | 4 +-
p2p/src/authenticated/discovery/actors/dialer.rs | 46 +-
p2p/src/authenticated/discovery/actors/listener.rs | 355 +-
.../authenticated/discovery/actors/peer/actor.rs | 64 +-
.../authenticated/discovery/actors/peer/ingress.rs | 6 +-
p2p/src/authenticated/discovery/actors/peer/mod.rs | 13 +-
.../authenticated/discovery/actors/router/actor.rs | 12 +-
.../discovery/actors/router/ingress.rs | 10 +-
.../discovery/actors/spawner/actor.rs | 62 +-
.../discovery/actors/spawner/ingress.rs | 20 +-
.../authenticated/discovery/actors/spawner/mod.rs | 7 +-
.../discovery/actors/tracker/actor.rs | 772 ++--
.../discovery/actors/tracker/directory.rs | 51 +-
.../discovery/actors/tracker/ingress.rs | 148 +-
.../authenticated/discovery/actors/tracker/mod.rs | 23 +-
.../discovery/actors/tracker/record.rs | 35 +-
.../discovery/actors/tracker/reservation.rs | 32 +-
.../authenticated/discovery/actors/tracker/set.rs | 128 +-
p2p/src/authenticated/discovery/channels.rs | 2 +-
p2p/src/authenticated/discovery/config.rs | 36 +-
p2p/src/authenticated/discovery/metrics.rs | 2 +-
p2p/src/authenticated/discovery/mod.rs | 83 +-
p2p/src/authenticated/discovery/network.rs | 35 +-
p2p/src/authenticated/discovery/types.rs | 470 +-
p2p/src/authenticated/ip.rs | 264 --
p2p/src/authenticated/lookup/actors/dialer.rs | 46 +-
p2p/src/authenticated/lookup/actors/listener.rs | 602 ++-
p2p/src/authenticated/lookup/actors/peer/actor.rs | 23 +-
.../authenticated/lookup/actors/router/actor.rs | 12 +-
.../authenticated/lookup/actors/router/ingress.rs | 10 +-
.../authenticated/lookup/actors/spawner/actor.rs | 23 +-
.../authenticated/lookup/actors/spawner/ingress.rs | 20 +-
.../authenticated/lookup/actors/tracker/actor.rs | 319 +-
.../lookup/actors/tracker/directory.rs | 214 +-
.../authenticated/lookup/actors/tracker/ingress.rs | 133 +-
p2p/src/authenticated/lookup/actors/tracker/mod.rs | 8 +-
.../authenticated/lookup/actors/tracker/record.rs | 18 +-
.../lookup/actors/tracker/reservation.rs | 32 +-
p2p/src/authenticated/lookup/channels.rs | 2 +-
p2p/src/authenticated/lookup/config.rs | 41 +-
p2p/src/authenticated/lookup/metrics.rs | 2 +-
p2p/src/authenticated/lookup/mod.rs | 90 +-
p2p/src/authenticated/lookup/network.rs | 38 +-
p2p/src/authenticated/lookup/types.rs | 45 +-
p2p/src/authenticated/mailbox.rs | 36 +-
p2p/src/authenticated/mod.rs | 1 -
p2p/src/authenticated/relay.rs | 2 +-
p2p/src/lib.rs | 38 +-
p2p/src/simulated/bandwidth.rs | 1223 ++---
p2p/src/simulated/ingress.rs | 111 +-
p2p/src/simulated/mod.rs | 905 ++--
p2p/src/simulated/network.rs | 720 +--
p2p/src/simulated/transmitter.rs | 1389 ++++++
p2p/src/utils/mux.rs | 497 +-
p2p/src/utils/requester/config.rs | 4 +-
p2p/src/utils/requester/requester.rs | 12 +-
pipeline/minimmit/quint/tests/tests_n6f1b1.qnt | 4 +-
resolver/src/p2p/config.rs | 11 +-
resolver/src/p2p/engine.rs | 50 +-
resolver/src/p2p/fetcher.rs | 95 +-
resolver/src/p2p/metrics.rs | 60 +-
resolver/src/p2p/mocks/coordinator.rs | 86 -
resolver/src/p2p/mocks/mod.rs | 2 -
resolver/src/p2p/mod.rs | 128 +-
runtime/Cargo.toml | 3 +
runtime/fuzz/fuzz_targets/buffer.rs | 18 +-
runtime/src/deterministic.rs | 1247 +++--
runtime/src/iouring/mod.rs | 128 +-
runtime/src/lib.rs | 1119 +++--
runtime/src/macros.rs | 39 +-
runtime/src/network/iouring.rs | 4 +-
runtime/src/storage/iouring.rs | 61 +-
runtime/src/storage/memory.rs | 12 +-
runtime/src/storage/tokio/mod.rs | 71 +-
runtime/src/telemetry/metrics/task.rs | 58 +-
runtime/src/telemetry/traces/collector.rs | 345 ++
runtime/src/telemetry/traces/mod.rs | 3 +
runtime/src/tokio/mod.rs | 3 +-
runtime/src/tokio/runtime.rs | 244 +-
runtime/src/utils/cell.rs | 265 ++
runtime/src/utils/handle.rs | 491 +-
runtime/src/utils/mod.rs | 140 +-
runtime/src/utils/signal.rs | 4 +
runtime/src/utils/supervision.rs | 201 +
storage/Cargo.toml | 36 +-
storage/fuzz/Cargo.toml | 129 +-
storage/fuzz/fuzz_targets/adb_any_fixed_sync.rs | 252 ++
storage/fuzz/fuzz_targets/adb_any_variable_sync.rs | 340 ++
storage/fuzz/fuzz_targets/adb_immutable.rs | 275 ++
storage/fuzz/fuzz_targets/adb_keyless.rs | 288 ++
.../fuzz/fuzz_targets/adb_ordered_operations.rs | 286 ++
storage/fuzz/fuzz_targets/adb_sync.rs | 170 -
...b_operations.rs => adb_unordered_operations.rs} | 8 +-
storage/fuzz/fuzz_targets/cache_operations.rs | 292 ++
.../fuzz_targets/current_ordered_operations.rs | 369 ++
...erations.rs => current_unordered_operations.rs} | 115 +-
storage/fuzz/fuzz_targets/extract_pinned_nodes.rs | 37 +
...l_operations.rs => fixed_journal_operations.rs} | 37 +-
storage/fuzz/fuzz_targets/freezer_operations.rs | 16 +-
storage/fuzz/fuzz_targets/index_operations.rs | 175 -
storage/fuzz/fuzz_targets/mmr_bitmap.rs | 206 +
storage/fuzz/fuzz_targets/mmr_journaled.rs | 427 ++
storage/fuzz/fuzz_targets/mmr_operations.rs | 94 +-
.../fuzz/fuzz_targets/ordered_index_operations.rs | 180 +
storage/fuzz/fuzz_targets/ordinal_operations.rs | 46 +-
storage/fuzz/fuzz_targets/proofs_malleability.rs | 202 +
storage/fuzz/fuzz_targets/range_proof.rs | 60 +
storage/fuzz/fuzz_targets/store_operations.rs | 224 +
storage/fuzz/fuzz_targets/translator_operations.rs | 144 +
.../fuzz_targets/unordered_index_operations.rs | 180 +
storage/fuzz/fuzz_targets/verify_proof.rs | 66 +
storage/src/adb/any/fixed/mod.rs | 1857 ++------
storage/src/adb/any/fixed/ordered.rs | 1839 ++++++++
storage/src/adb/any/fixed/sync.rs | 573 +--
storage/src/adb/any/fixed/unordered.rs | 1478 ++++++
storage/src/adb/any/variable/mod.rs | 1159 +++--
storage/src/adb/any/variable/sync.rs | 984 ----
storage/src/adb/benches/bench.rs | 2 -
storage/src/adb/benches/current_init.rs | 189 -
storage/src/adb/benches/fixed_generate.rs | 333 +-
storage/src/adb/benches/fixed_init.rs | 328 +-
storage/src/adb/benches/keyless_generate.rs | 5 +-
storage/src/adb/benches/variable_generate.rs | 164 +-
storage/src/adb/benches/variable_init.rs | 32 +-
storage/src/adb/current/mod.rs | 192 +
storage/src/adb/current/ordered.rs | 1689 +++++++
.../src/adb/{current.rs => current/unordered.rs} | 731 ++-
storage/src/adb/immutable/mod.rs | 727 ++-
storage/src/adb/immutable/sync/journal.rs | 91 -
storage/src/adb/immutable/sync/mod.rs | 408 +-
storage/src/adb/keyless.rs | 293 +-
storage/src/adb/mod.rs | 37 +-
storage/src/adb/operation/fixed/mod.rs | 28 +
storage/src/adb/operation/fixed/ordered.rs | 207 +
storage/src/adb/operation/fixed/unordered.rs | 176 +
storage/src/adb/operation/keyless.rs | 76 +
storage/src/adb/operation/mod.rs | 342 ++
storage/src/adb/operation/variable.rs | 576 +++
storage/src/{ => adb}/store/benches/bench.rs | 0
storage/src/{ => adb}/store/benches/restart.rs | 16 +-
storage/src/{ => adb}/store/mod.rs | 499 +-
storage/src/adb/sync/database.rs | 32 +-
storage/src/adb/sync/engine.rs | 134 +-
storage/src/adb/sync/error.rs | 48 +-
storage/src/adb/sync/gaps.rs | 190 +-
storage/src/adb/sync/journal.rs | 23 +-
storage/src/adb/sync/mod.rs | 6 +-
storage/src/adb/sync/requests.rs | 10 +-
storage/src/adb/sync/resolver.rs | 42 +-
storage/src/adb/sync/target.rs | 127 +-
storage/src/adb/verify.rs | 331 +-
storage/src/archive/benches/utils.rs | 14 +
storage/src/archive/immutable/storage.rs | 26 +-
storage/src/archive/mod.rs | 6 +
storage/src/archive/prunable/mod.rs | 6 +-
storage/src/archive/prunable/storage.rs | 12 +-
storage/src/bmt/mod.rs | 10 +-
storage/src/cache/mod.rs | 2 +-
storage/src/cache/storage.rs | 10 +-
storage/src/freezer/mod.rs | 8 +-
storage/src/freezer/storage.rs | 4 +-
storage/src/index/benches/hashmap_insert.rs | 7 +-
storage/src/index/benches/hashmap_insert_fixed.rs | 7 +-
storage/src/index/benches/hashmap_iteration.rs | 7 +-
storage/src/index/benches/insert.rs | 71 +-
storage/src/index/mod.rs | 1566 +++++--
storage/src/index/ordered.rs | 394 ++
storage/src/index/storage.rs | 372 +-
storage/src/index/unordered.rs | 252 ++
storage/src/journal/benches/bench.rs | 2 +-
storage/src/journal/benches/fixed_read_random.rs | 2 +-
.../src/journal/benches/fixed_read_sequential.rs | 4 +-
storage/src/journal/benches/fixed_replay.rs | 2 +-
storage/src/journal/{ => contiguous}/fixed.rs | 119 +-
storage/src/journal/contiguous/mod.rs | 135 +
storage/src/journal/contiguous/tests.rs | 1069 +++++
storage/src/journal/contiguous/variable.rs | 2230 +++++++++
storage/src/journal/mod.rs | 24 +-
storage/src/journal/segmented/mod.rs | 6 +
storage/src/journal/{ => segmented}/variable.rs | 194 +-
storage/src/lib.rs | 30 +-
storage/src/metadata/mod.rs | 12 +-
storage/src/metadata/storage.rs | 25 +
storage/src/mmr/benches/append.rs | 11 +-
storage/src/mmr/benches/append_additional.rs | 13 +-
storage/src/mmr/benches/prove_many_elements.rs | 41 +-
storage/src/mmr/benches/prove_single_element.rs | 26 +-
storage/src/mmr/benches/update.rs | 28 +-
storage/src/mmr/bitmap.rs | 860 ++--
storage/src/mmr/grafting.rs | 1019 +++++
storage/src/mmr/hasher.rs | 818 +---
storage/src/mmr/iterator.rs | 215 +-
storage/src/mmr/journaled.rs | 632 +--
storage/src/mmr/location.rs | 589 +++
storage/src/mmr/mem.rs | 804 +++-
storage/src/mmr/mod.rs | 112 +-
storage/src/mmr/position.rs | 495 ++
storage/src/mmr/proof.rs | 1619 +++++++
storage/src/mmr/{tests/mod.rs => stability.rs} | 77 +-
storage/src/mmr/storage.rs | 94 +-
storage/src/mmr/verification.rs | 1759 +-------
storage/src/ordinal/mod.rs | 72 +-
storage/src/ordinal/storage.rs | 24 +-
storage/src/rmap/mod.rs | 36 +
storage/src/store/operation.rs | 548 ---
storage/src/translator.rs | 78 +-
stream/Cargo.toml | 11 +-
stream/fuzz/Cargo.toml | 17 +-
stream/fuzz/fuzz_targets/confirmation.rs | 39 -
stream/fuzz/fuzz_targets/connection.rs | 38 +-
stream/fuzz/fuzz_targets/e2e.rs | 776 +---
stream/fuzz/fuzz_targets/handshake.rs | 120 -
stream/fuzz/fuzz_targets/lazy_transport.rs | 59 +-
stream/fuzz/fuzz_targets/transport.rs | 36 +-
stream/src/lib.rs | 415 +-
stream/src/public_key/benches/bench.rs | 6 -
stream/src/public_key/benches/receiver_receive.rs | 55 -
stream/src/public_key/benches/sender_send.rs | 40 -
stream/src/public_key/cipher.rs | 507 ---
stream/src/public_key/connection.rs | 1105 -----
stream/src/public_key/handshake.rs | 746 ---
stream/src/public_key/mod.rs | 128 -
stream/src/public_key/nonce.rs | 187 -
stream/src/public_key/x25519.rs | 102 -
stream/src/utils/codec.rs | 34 -
utils/Cargo.toml | 22 +-
utils/fuzz/Cargo.toml | 18 +-
utils/fuzz/fuzz_targets/{bitvec.rs => bitmap.rs} | 257 +-
utils/fuzz/fuzz_targets/historical_bitmap.rs | 216 +
utils/fuzz/fuzz_targets/prunable.rs | 111 +
utils/fuzz/fuzz_targets/time.rs | 4 +-
utils/src/bitmap/historical/batch.rs | 514 +++
utils/src/bitmap/historical/bitmap.rs | 525 +++
utils/src/bitmap/historical/error.rs | 15 +
utils/src/bitmap/historical/mod.rs | 93 +
utils/src/bitmap/historical/tests.rs | 1050 +++++
utils/src/bitmap/mod.rs | 2120 +++++++++
utils/src/bitmap/prunable.rs | 1225 +++++
utils/src/bitvec.rs | 1002 -----
utils/src/concurrency.rs | 162 +
utils/src/hex_literal.rs | 240 +
utils/src/lib.rs | 41 +-
utils/src/net.rs | 379 ++
utils/src/rational.rs | 143 +
utils/src/sequence/fixed_bytes.rs | 12 +-
utils/src/sequence/prefixed_u64.rs | 11 +-
utils/src/sequence/u32.rs | 2 +-
utils/src/sequence/u64.rs | 2 +-
utils/src/set.rs | 523 +++
utils/src/time.rs | 466 +-
541 files changed, 72801 insertions(+), 41086 deletions(-)