v0.0.57
Changes
- [adb] [sync] Re-use existing persisted data during state sync by @danlaine in #1275
- [storage/index] Implement Custom
Dropby @patrick-ogrady in #1278 - [CI] Add
codingto benchmarks by @patrick-ogrady in #1279 - [adb] [sync] Change sync lower bound to be inactivity floor, not pruning boundary by @danlaine in #1277
- Fixes #1269: a memory leak in the deterministic runtime by @evonide in #1282
- Add more fuzz tests: coding, blake3, threshold by @dnkolegov-ar in #1276
- [examples/estimator] Introduce
commonware-estimatorby @patrick-ogrady in #1283 - [ci] Add Test for Unstable
Cargo.lockby @patrick-ogrady in #1288 - Fix journal fuzz operation by @dnkolegov-ar in #1290
- [stream] replace unused named variables with underscore in connection.rs by @reallesee in #1286
- [adb] [sync] Make sync target dynamic by @danlaine in #1281
- [adb] lowercase log starts and error messages by @danlaine in #1295
- [adb] [sync] rename hash to digest by @danlaine in #1299
- [storage/adb/any] minor adb::any cleanup by @roberto-bayardo in #1301
- [crytography/bls12381] Timelock Encryption by @patrick-ogrady in #1302
- [adb] [sync] Fix peristence bug causing checksum mismatch on synced database open by @danlaine in #1303
- [cryptography] Introduce
LtHashby @patrick-ogrady in #1307 - [storage/adb/any] remove double-hashing of elements by @roberto-bayardo in #1308
- [adb] [sync] update sync example to use dynamic target by @danlaine in #1289
- [adb] [sync] Update sync example client to continuously re-sync to newest server state by @danlaine in #1305
- [storage/log/variable] reduce # of blob
read_atcalls from 3 to 2 inreadandread_bufferedby @roberto-bayardo in #1313 - lthash fuzz test by @dnkolegov-ar in #1314
- [storage/bmt] Add Range Proofs by @patrick-ogrady in #1315
- [storage/bmt] Follow-Ups by @patrick-ogrady in #1318
- [storage/adb] Introduce
adb::immutableby @roberto-bayardo in #1317 - Add quint spec of the minimmit by @dnkolegov-ar in #1319
- [ci] Pipeline Nits by @patrick-ogrady in #1322
- [storage/adb/immutable] pruning support by @roberto-bayardo in #1325
- Initial adb_sync fuzz test by @evonide in #1324
- Init timelock encryption fuzzing by @dnkolegov-ar in #1326
- [adb::any::sync] Make operation fetching concurrent by @danlaine in #1323
- [storage/archive/immutable] Fix Unclean (Initial) Restart by @patrick-ogrady in #1336
- [consensus] Add
consensus::marshalby @BrendanChou in #1306 - [utils] Introduce
Span(and renamearraytosequence) by @patrick-ogrady in #1337 - Add metamorphic fuzzer for lthash by @dnkolegov-ar in #1334
- [marshal] Use a Single Resolver by @patrick-ogrady in #1340
- [release] v0.0.57 by @patrick-ogrady in #1343
Full Changelog: v0.0.56...v0.0.57
New Contributors
- @evonide made their first contribution in #1282
- @reallesee made their first contribution in #1286
Stats
.github/workflows/benchmark.yml | 4 +
.github/workflows/coverage.yml | 1 +
.github/workflows/fast.yml | 20 +
.github/workflows/publish.yml | 5 +
.github/workflows/quint.yml | 28 +
.github/workflows/slow.yml | 2 +-
.gitignore | 3 +-
Cargo.lock | 303 ++-
Cargo.toml | 30 +-
README.md | 1 +
broadcast/Cargo.toml | 2 +-
codec/Cargo.toml | 2 +-
codec/fuzz/Cargo.toml | 2 +-
codec/src/codec.rs | 2 +-
coding/Cargo.toml | 2 +-
coding/fuzz/Cargo.toml | 24 +
coding/fuzz/fuzz_targets/reed_solomon.rs | 90 +
coding/src/reed_solomon/mod.rs | 251 ++-
collector/Cargo.toml | 2 +-
consensus/Cargo.toml | 5 +-
consensus/src/lib.rs | 28 +
consensus/src/marshal/actor.rs | 944 ++++++++
consensus/src/marshal/config.rs | 68 +
consensus/src/marshal/finalizer.rs | 113 +
consensus/src/marshal/ingress/handler.rs | 489 +++++
consensus/src/marshal/ingress/mailbox.rs | 162 ++
consensus/src/marshal/ingress/mod.rs | 3 +
consensus/src/marshal/ingress/orchestrator.rs | 87 +
consensus/src/marshal/mocks/application.rs | 37 +
consensus/src/marshal/mocks/block.rs | 101 +
consensus/src/marshal/mocks/mod.rs | 3 +
consensus/src/marshal/mocks/resolver.rs | 27 +
consensus/src/marshal/mod.rs | 405 ++++
consensus/src/reporter.rs | 88 +
consensus/src/simplex/actors/resolver/actor.rs | 4 +-
consensus/src/simplex/actors/voter/actor.rs | 4 +-
consensus/src/simplex/actors/voter/ingress.rs | 7 +-
consensus/src/simplex/actors/voter/mod.rs | 11 +-
consensus/src/simplex/mocks/conflicter.rs | 4 +-
consensus/src/simplex/mocks/nuller.rs | 4 +-
consensus/src/simplex/mocks/outdated.rs | 4 +-
consensus/src/simplex/mocks/supervisor.rs | 4 +-
consensus/src/simplex/types.rs | 32 +-
.../src/threshold_simplex/actors/batcher/actor.rs | 4 +-
.../src/threshold_simplex/actors/resolver/actor.rs | 6 +-
.../src/threshold_simplex/actors/voter/actor.rs | 4 +-
.../src/threshold_simplex/actors/voter/mod.rs | 11 +-
.../src/threshold_simplex/mocks/conflicter.rs | 4 +-
.../src/threshold_simplex/mocks/impersonator.rs | 4 +-
consensus/src/threshold_simplex/mocks/invalid.rs | 4 +-
consensus/src/threshold_simplex/mocks/nuller.rs | 4 +-
consensus/src/threshold_simplex/mocks/outdated.rs | 4 +-
.../src/threshold_simplex/mocks/supervisor.rs | 3 +-
consensus/src/threshold_simplex/mod.rs | 173 +-
consensus/src/threshold_simplex/types.rs | 34 +-
cryptography/Cargo.toml | 7 +-
cryptography/fuzz/Cargo.toml | 45 +-
cryptography/fuzz/fuzz_targets/blake3_hasher.rs | 120 ++
.../fuzz_targets/bls12381_aggregate_operations.rs | 213 ++
.../fuzz_targets/bls12381_primitive_operations.rs | 4 +-
.../fuzz_targets/bls12381_threshold_operations.rs | 558 +++++
cryptography/fuzz/fuzz_targets/bls12381_tle.rs | 380 ++++
cryptography/fuzz/fuzz_targets/common/mod.rs | 320 +++
.../fuzz/fuzz_targets/lthash_operations.rs | 151 ++
cryptography/fuzz/fuzz_targets/metamorph_lthash.rs | 166 ++
cryptography/src/blake3/mod.rs | 6 +-
cryptography/src/bls12381/benches/bench.rs | 4 +
cryptography/src/bls12381/benches/tle_decrypt.rs | 34 +
cryptography/src/bls12381/benches/tle_encrypt.rs | 31 +
cryptography/src/bls12381/mod.rs | 1 +
cryptography/src/bls12381/primitives/group.rs | 172 +-
cryptography/src/bls12381/primitives/ops.rs | 12 +-
cryptography/src/bls12381/primitives/poly.rs | 4 +-
cryptography/src/bls12381/primitives/variant.rs | 41 +-
cryptography/src/bls12381/scheme.rs | 8 +-
cryptography/src/bls12381/tle.rs | 598 ++++++
cryptography/src/ed25519/scheme.rs | 8 +-
cryptography/src/lib.rs | 6 +-
cryptography/src/lthash/benches/add.rs | 19 +
cryptography/src/lthash/benches/bench.rs | 15 +
cryptography/src/lthash/benches/checksum.rs | 14 +
cryptography/src/lthash/benches/combine.rs | 22 +
cryptography/src/lthash/benches/subtract.rs | 23 +
cryptography/src/lthash/benches/update.rs | 39 +
cryptography/src/lthash/mod.rs | 354 +++
cryptography/src/secp256r1/scheme.rs | 8 +-
cryptography/src/sha256/mod.rs | 6 +-
deployer/Cargo.toml | 2 +-
docs/blogs/minimmit.html | 4 +-
docs/index.html | 2 +
examples/bridge/Cargo.toml | 2 +-
examples/bridge/src/application/actor.rs | 2 +-
examples/bridge/src/bin/indexer.rs | 2 +-
examples/bridge/src/types/block.rs | 2 +-
examples/bridge/src/types/inbound.rs | 4 +-
examples/bridge/src/types/outbound.rs | 2 +-
examples/chat/Cargo.toml | 2 +-
examples/chat/README.md | 1 -
examples/estimator/Cargo.toml | 37 +
examples/estimator/README.md | 178 ++
examples/estimator/echo.lazy | 11 +
examples/estimator/hotstuff.lazy | 23 +
examples/estimator/minimmit.lazy | 14 +
examples/estimator/simplex.lazy | 15 +
examples/estimator/simplex_with_certificates.lazy | 17 +
examples/estimator/src/lib.rs | 1268 +++++++++++
examples/estimator/src/main.rs | 824 +++++++
examples/estimator/src/p50.json | 1159 ++++++++++
examples/estimator/src/p90.json | 1159 ++++++++++
examples/estimator/stall.lazy | 7 +
examples/flood/Cargo.toml | 2 +-
examples/flood/README.md | 1 -
examples/log/Cargo.toml | 2 +-
examples/log/src/application/supervisor.rs | 4 +-
examples/sync/Cargo.toml | 3 +-
examples/sync/README.md | 79 +-
examples/sync/src/bin/client.rs | 313 ++-
examples/sync/src/bin/server.rs | 457 ++--
examples/sync/src/error.rs | 96 +
examples/sync/src/lib.rs | 5 +-
examples/sync/src/protocol.rs | 286 ++-
examples/sync/src/resolver.rs | 334 +--
examples/vrf/Cargo.toml | 2 +-
examples/vrf/README.md | 1 -
examples/vrf/src/handlers/contributor.rs | 2 +-
examples/vrf/src/handlers/wire.rs | 6 +-
macros/Cargo.toml | 2 +-
p2p/Cargo.toml | 2 +-
p2p/src/utils/codec.rs | 1 +
pipeline/{ => minimmit}/minimmit.md | 14 +-
pipeline/minimmit/quint/README.md | 74 +
pipeline/minimmit/quint/defs.qnt | 13 +
pipeline/minimmit/quint/main_n6f0.qnt | 14 +
pipeline/minimmit/quint/main_n6f1.qnt | 14 +
pipeline/minimmit/quint/main_n6f2.qnt | 14 +
pipeline/minimmit/quint/main_n7f1.qnt | 14 +
pipeline/minimmit/quint/makefile | 34 +
pipeline/minimmit/quint/option.qnt | 47 +
pipeline/minimmit/quint/replica.qnt | 885 ++++++++
pipeline/minimmit/quint/scripts/verify.sh | 190 ++
pipeline/minimmit/quint/tests/tests_n6f0.qnt | 851 ++++++++
pipeline/minimmit/quint/tests/tests_n6f1.qnt | 167 ++
pipeline/minimmit/quint/types.qnt | 111 +
resolver/Cargo.toml | 5 +-
resolver/src/lib.rs | 15 +-
resolver/src/p2p/config.rs | 4 +-
resolver/src/p2p/engine.rs | 28 +-
resolver/src/p2p/fetcher.rs | 584 ++++-
resolver/src/p2p/ingress.rs | 34 +-
resolver/src/p2p/mocks/consumer.rs | 8 +-
resolver/src/p2p/mocks/key.rs | 19 +-
resolver/src/p2p/mocks/producer.rs | 8 +-
resolver/src/p2p/mod.rs | 6 +-
resolver/src/p2p/wire.rs | 20 +-
runtime/Cargo.toml | 2 +-
runtime/src/deterministic.rs | 14 +-
runtime/src/telemetry/metrics/status.rs | 6 +
storage/Cargo.toml | 2 +-
storage/fuzz/Cargo.toml | 9 +-
.../fuzz/fuzz_targets/adb_current_operations.rs | 3 +-
storage/fuzz/fuzz_targets/adb_operations.rs | 3 +-
storage/fuzz/fuzz_targets/adb_sync.rs | 163 ++
storage/fuzz/fuzz_targets/archive_operations.rs | 2 +-
storage/fuzz/fuzz_targets/bmt_operations.rs | 172 +-
storage/fuzz/fuzz_targets/freezer_operations.rs | 2 +-
storage/fuzz/fuzz_targets/journal_operations.rs | 3 +-
storage/fuzz/fuzz_targets/metadata_operations.rs | 2 +-
storage/src/adb/any/mod.rs | 776 +++++--
storage/src/adb/any/sync/client.rs | 2266 ++++++++++++++++----
storage/src/adb/any/sync/metrics.rs | 68 +
storage/src/adb/any/sync/mod.rs | 94 +-
storage/src/adb/any/sync/resolver.rs | 103 +-
storage/src/adb/benches/any_init.rs | 7 +-
storage/src/adb/current.rs | 293 ++-
storage/src/adb/immutable.rs | 1013 +++++++++
storage/src/adb/mod.rs | 4 +
storage/src/adb/operation.rs | 203 +-
storage/src/archive/benches/utils.rs | 2 +-
storage/src/archive/immutable/mod.rs | 69 +
storage/src/archive/immutable/storage.rs | 14 +-
storage/src/archive/mod.rs | 2 +-
storage/src/archive/prunable/mod.rs | 2 +-
storage/src/bmt/benches/bench.rs | 5 +-
storage/src/bmt/benches/prove_range.rs | 54 +
.../{prove_single_element.rs => prove_single.rs} | 8 +-
storage/src/bmt/mod.rs | 909 +++++++-
storage/src/freezer/benches/utils.rs | 2 +-
storage/src/freezer/mod.rs | 4 +-
storage/src/freezer/storage.rs | 34 +-
storage/src/index/mod.rs | 13 +
storage/src/index/storage.rs | 13 +
storage/src/journal/benches/bench.rs | 2 +-
storage/src/journal/benches/fixed_read_random.rs | 2 +-
.../src/journal/benches/fixed_read_sequential.rs | 2 +-
storage/src/journal/benches/fixed_replay.rs | 2 +-
storage/src/journal/fixed.rs | 795 ++++---
storage/src/journal/mod.rs | 2 +
storage/src/journal/variable.rs | 72 +-
storage/src/metadata/benches/utils.rs | 2 +-
storage/src/metadata/mod.rs | 4 +-
storage/src/metadata/storage.rs | 2 +-
storage/src/mmr/benches/prove_many_elements.rs | 4 +-
storage/src/mmr/benches/prove_single_element.rs | 4 +-
storage/src/mmr/bitmap.rs | 12 +-
storage/src/mmr/hasher.rs | 35 +-
storage/src/mmr/journaled.rs | 374 ++--
storage/src/mmr/mem.rs | 14 +-
storage/src/mmr/mod.rs | 5 +-
storage/src/mmr/storage.rs | 2 +-
storage/src/mmr/verification.rs | 85 +-
storage/src/ordinal/benches/utils.rs | 2 +-
storage/src/ordinal/mod.rs | 4 +-
stream/Cargo.toml | 2 +-
stream/fuzz/Cargo.toml | 2 +-
stream/src/public_key/connection.rs | 4 +-
utils/Cargo.toml | 2 +-
utils/fuzz/Cargo.toml | 2 +-
utils/fuzz/fuzz_targets/array.rs | 2 +-
utils/src/lib.rs | 6 +-
utils/src/priority_set.rs | 57 +
utils/src/{array => sequence}/fixed_bytes.rs | 6 +-
utils/src/{array => sequence}/mod.rs | 28 +-
utils/src/{array => sequence}/prefixed_u64.rs | 4 +-
utils/src/sequence/u32.rs | 120 ++
utils/src/{array => sequence}/u64.rs | 4 +-
utils/src/time.rs | 250 +++
226 files changed, 22608 insertions(+), 2208 deletions(-)