3.143.0-asc-devnet (2026-10-21)
121 changes since 3.142.0-asc-devnet (full diff).
Runtime, pallets and precompiles
- Auto-update pallet weights (6894ca23a) gluwa-bot
- test(attestation): expose dispatch weight helper within crate (ed9bc5b8a) Dylan Verstraete
- fix: address writeability promotion review findings (f982c2247) Dylan Verstraete
- fix(write-ability): harden persistent processing and validation (85d1a10b8) Dylan Verstraete
- chore(runtime,attestor): tidy comments (3c9a4c879) Dylan Verstraete
- fix(runtime): register NominationPools as a staking event listener (f69ec5cf6) Beqa Abuladze
- feat(runtime): session-aware block authorship (f2feae9fd) Dylan Verstraete
- test(evm): check that GASPRICE matches what the sender pays (#1573) @BradleyOlson64
- test(evm): balance override tests (#1574) @BradleyOlson64
- fix(test): Add asserts in commit attestation test (#1547) @BradleyOlson64
- test(supported-chains): register chain limits (#1549) @BradleyOlson64
- fix(attestation): attestation improvements (CSUB-2055) (#1445) @beqaabu
- fix(precompile): Check that fetched checkpoint isn't stale in contains_digest (#1546) @BradleyOlson64
- fix(attestation): harden commit validation (CSUB-2083) (#1516) @didac-gluwa
- test(runtime): add EVM block benchmarks (CSUB-2065) (#1440) @beqaabu
- chore(runtime): wire up finality api improvements (CSUB-2062) (#1434) @beqaabu
- fix(attestation): quorum improvements (CSUB-2052) (#1469) @BradleyOlson64
- perf(attestation): cheaper active-attestor check in tx prevalidation (CSUB-2084) (#1515) @didac-gluwa
- fix(attestation): bound chain removal cleanup (CSUB-2081) (#1495) @didac-gluwa
- ci(attestation): run the full attestor-network soak nightly (#1526) @DylanVerstraete
- feat(supported-chains): add set_chain_name extrinsic to rename a registered chain (#1490) @DylanVerstraete
- fix(precompiles): improve substrate-transfer precompile (CSUB-2080) (#1497) @didac-gluwa
- fix(attestation): chain configuration checks (CSUB-2082) (#1477) @DylanVerstraete
Node
- feat(node): keep BABE epochs, sessions and eras running under --sealing (#1537) @DylanVerstraete
Attestor
- fix(attestor): harden write-ability state ownership (b6db3cd1f) Dylan Verstraete
- fix(attestor): count live connections of unreserved peers against the inbound pool (434aa9547) Dylan Verstraete
- fix(attestor): keep boot peers reserved and release replaced peer ids (4c152b952) Dylan Verstraete
- [pre-commit.ci] auto fixes from pre-commit.com hooks (b4c97e354) pre-commit-ci[bot]
- feat(attestor): reserve inbound connection slots for known peers (0ddb815c5) Dylan Verstraete
- chore(attestor): exclude vendored crate from toml formatting (22e4d0ced) Dylan Verstraete
- fix(attestor): only accept the attestation gossip topic (18939345e) Dylan Verstraete
- fix(attestor): backport upstream gossipsub backoff changes (214a9c97a) Dylan Verstraete
- chore(attestor): vendor libp2p-gossipsub 0.47.0 (62037be66) Dylan Verstraete
- fix(attestor): give zombienet attestors each other as boot nodes (#1528) @DylanVerstraete
- feat(attestor): pace source-chain RPC requests (#1463) @DylanVerstraete
Archiver
- style(archiver): sort manifest dependencies (23f4fba8a) Dylan Verstraete
- fix(Archiver): Follow the last included attestation (#1444) @BradleyOlson64
Proof generation and checkpoints
- perf(checkpoint-verifier): fetch and hash blocks concurrently (#1560) @DylanVerstraete
- ci(proof-gen): wait for both chains at once and bound the outage to 60-90 s (#1556) @DylanVerstraete
- ci(proof-gen): reuse the CI node build and wait for readiness (#1522) @DylanVerstraete
- fix(proof-gen,continuity): answer 422 while the archiver stores the newest attested blocks (#1438) @DylanVerstraete
Shared libraries
- fix(stream_eth): fuse the head watchdog so an ETH reconnect can't panic the attestor (#1442) @DylanVerstraete
- feat(eth): raw-RLP block fetch mode (debug_getRawBlock/Receipts) + archiver --fetch-mode (#1328) @DylanVerstraete
Indexer
- ci(cc3-indexer): seal a block every second and run the tests in one job (#1558) @DylanVerstraete
- ci(cc3-indexer): seal blocks for era waits instead of waiting for them (#1538) @DylanVerstraete
- ci(cc3-indexer): split the indexer tests over three runners (#1530) @DylanVerstraete
CLI and scripts
- test: exercise relayer delivery and durable restart in full-stack CI (#1575) @DylanVerstraete
- test(cli): compare factory timestamps with chain time (e9465e51b) Dylan Verstraete
- test(att): cover unregistering an attestor when unlocking queue is full (#1571) @BradleyOlson64
- fix(scripts): stop the storage version comparison passing on missing input (#1562) @DylanVerstraete
- ci(cli): seal blocks every second in the attestor CLI tests and run them in one job (#1555) @DylanVerstraete
- ci(cli): run the validator CLI proxy=no and Staking legs unsplit (#1557) @DylanVerstraete
- test(cli): allow the unbonding countdown to pause on an era boundary (#1553) @DylanVerstraete
- ci(cli): seal blocks every second in the validator CLI tests (#1544) @DylanVerstraete
- ci(cli): split the blockchain tests over two runners (#1525) @DylanVerstraete
- ci(cli): split the Staking proxy leg over two runners (#1521) @DylanVerstraete
- ci(cli): split the full validator-cli suite over two runners (#1513) @DylanVerstraete
- ci(cli): split attestor-cli tests over two runners (#1505) @DylanVerstraete
- test(cli): wait for Bob to see the registration in show-status (#1511) @DylanVerstraete
- test(cli): check argument validation in unit tests (#1504) @DylanVerstraete
- ci(cli): run only signing-path tests in proxy variants (#1503) @DylanVerstraete
- ci(cli): run attestor CLI e2e when the CLI code changes (#1506) @DylanVerstraete
- test(cli): write JUnit reports for e2e suites (#1502) @DylanVerstraete
- test(cli): bound sanity and randomness soak tests (#1500) @DylanVerstraete
- feat(scripts): add a sweep for the stable2512 staking currency migration (#1493) @beqaabu
- fix(cli): derive prover-check gas limits from on-chain BlockGasLimit (#1371) @mason-gluwa
- feat(scripts): add bsc testnet to the testnet USC audit (#1488) @jakerumbles
- feat(scripts): add asc-devnet to the USC audit and run it every 6h (#1487) @didac-gluwa
CI and repository
- ci(blockchain): include writeability tests in shards (3b3eaadc7) Dylan Verstraete
- ci(lint): skip the vendored gossipsub crate in MegaLinter (b43aeb513) Dylan Verstraete
- ci(checks): ignore a feature-only dependency of the vendored gossipsub crate in machete (3c288bd72) Dylan Verstraete
- ci(checks): skip the vendored gossipsub crate in repo checks (0d4ea6c0a) Dylan Verstraete
- chore(release): reconcile usc-testnet (3.139.0) into dev (#1577) @DylanVerstraete
- ci(cache): restore the warmer's cache in try-runtime and benchmarks (#1564) @DylanVerstraete
- ci(cache): save the setup-node caches from dev so pull requests stop saving their own (#1563) @DylanVerstraete
- ci(triggers): run the suites when their configs, setups or shared scripts change (#1561) @DylanVerstraete
- ci(build): cache the runtime's wasm build separately (#1559) @DylanVerstraete
- ci(build): compile the workspace crates at opt-level 1 in testing builds (#1550) @DylanVerstraete
- ci(validator-compatibility): onboard the historical validators in parallel (#1552) @DylanVerstraete
- ci(examples): pin the examples that poll the bridge worker instead of sleeping (#1551) @DylanVerstraete
- ci(runners): drop the metadata rebuild and move compatibility jobs to hosted runners (#1545) @DylanVerstraete
- ci(attestor-network): load a 10k-block anvil fixture with two transactions per block (#1543) @DylanVerstraete
- ci(triggers): run the e2e suites when the node, manifests or lockfile change (#1542) @DylanVerstraete
- ci(extrinsics): warn on development trunks, block promotion to testnet and main (#1540) @DylanVerstraete
- ci(attestor-network): keep the anvil state dumps out of the uploaded logs (#1541) @DylanVerstraete
- ci(rust): let dev cache producers finish and drop no-op cache restores (#1539) @DylanVerstraete
- ci(attestor-compat): report incompatibility as a warning on dev PRs (#1536) @DylanVerstraete
- ci(cache): let cache builds on dev finish instead of cancelling them (#1535) @DylanVerstraete
- ci(cache): key Rust caches on our toolchain, not the runner image's (#1533) @DylanVerstraete
- ci(triggers): run the heavy PR workflows only for the changes they test (#1534) @DylanVerstraete
- ci(cache): stop the PR-only Rust jobs saving caches (#1532) @DylanVerstraete
- ci(extrinsics): check extrinsics only when the runtime can change (#1531) @DylanVerstraete
- ci(git): drop the merge-commit check from PR sanity (#1529) @DylanVerstraete
- ci(build): reuse node binaries when no crate source changed (#1527) @DylanVerstraete
- ci(git): flag only new promotion conflicts and report trunk drift daily (#1524) @DylanVerstraete
- ci(release): build releases warm on hosted runners and drop subkey (#1518) @DylanVerstraete
- ci(release): allow devnet hotfix releases from any branch (#1476) @beqaabu
- ci(runners): move PR build jobs to GitHub-hosted runners (#1489) @mason-gluwa
- ci(rust): keep the default-branch Rust caches alive for PRs (#1519) @DylanVerstraete
- ci(blockchain,examples): informational storage-version diff on dev, pin examples (#1512) @DylanVerstraete
- ci(dependabot): hold @PolkaDot majors and group @PolkaDot packages (#1481) @DylanVerstraete
- ci(e2e): replace fixed sleeps with condition waits (#1501) @DylanVerstraete
- ci(gate): count fork PR approvals by repository permission (#1462) @DylanVerstraete
- ci(release): build release notes from the tagged range, grouped by topic (#1494) @DylanVerstraete
- fix(hooks): compare new branches against origin/dev in pre-push (#1496) @didac-gluwa
- ci(extrinsics): compare against the target network's latest release (#1491) @DylanVerstraete
Other
- feat(usc-messaging): core fee 1 ATC on asc-devnet, fee-aware direct publish (#1474) @DylanVerstraete
Dependencies (14)
- build(deps): pin frontier to a fixed rev (f7bda5747) Dylan Verstraete
- build(deps): bump the all-dependencies group with 8 updates (#1510) @dependabot[bot]
- build(deps): bump frontier_2 and wire up the precompile check (CSUB-2067) (#1567) @didac-gluwa
- build(deps): bump the prod-dependencies group across 2 directories with 2 updates (#1508) @dependabot[bot]
- build(deps): bump @modelcontextprotocol/sdk from 1.26.0 to 1.32.1 in /cc3-indexer (#1475) @dependabot[bot]
- build(deps): bump ubuntu from
da6fc2btof144425in the all-dependencies group across 1 directory (#1507) @dependabot[bot] - build(deps-dev): bump the dev-dependencies group across 6 directories with 5 updates (#1509) @dependabot[bot]
- build(deps): bump brace-expansion from 1.1.13 to 1.1.21 in /scripts (#1499) @dependabot[bot]
- build(deps): bump handlebars from 4.7.9 to 4.7.10 in /cli (#1498) @dependabot[bot]
- build(deps): bump proxy-addr from 2.0.7 to 2.0.8 in /cc3-indexer (#1483) @dependabot[bot]
- build(deps-dev): bump source-map-js from 1.2.1 to 1.2.2 in /docs/smart-contract-development/with-ethers.js (#1470) @dependabot[bot]
- build(deps): bump proxy-addr from 2.0.7 to 2.0.8 in /cli (#1471) @dependabot[bot]
- build(deps): bump handlebars from 4.7.9 to 4.7.10 in /docs/smart-contract-development/with-hardhat (#1492) @dependabot[bot]
- build(deps): adopt attestcoin-abi-encoding and attestcoin-query-builder (#1482) @didac-gluwa
⚠️ Operator Warnings
The following changes in this release may require action from node, attestor, or indexer operators.
Please review carefully before upgrading.
🔴 Runtime definition changed
The runtime source code has changed. A runtime upgrade will likely be required. Ensure the on-chain runtime is updated accordingly.
Changed files (2)
runtime/src/ethereum_finalize_benchmarking.rs
runtime/src/lib.rs
🟡 Node binary source changed
The node binary source code has changed. Node operators should rebuild and redeploy their node binary.
Changed files (2)
node/src/rpc/mod.rs
node/src/service.rs
🟡 Pallet or precompile code changed
Pallet or precompile source code has changed. A runtime upgrade may be required. Review the changes carefully before upgrading.
Changed files (12)
pallets/attestation/src/benchmarking.rs
pallets/attestation/src/clear_or_revert.rs
pallets/attestation/src/continuity.rs
pallets/attestation/src/extensions.rs
pallets/attestation/src/impls.rs
pallets/attestation/src/lib.rs
pallets/attestation/src/weights.rs
pallets/randomness/src/weights.rs
pallets/supported-chains/src/benchmarking.rs
pallets/supported-chains/src/lib.rs
pallets/supported-chains/src/weights.rs
precompiles/substrate-transfer/src/lib.rs
🟡 Attestor source changed
Attestor-related source code has changed. Attestor operators should rebuild and redeploy their attestor binary.
Changed files (40)
attestor/attestor/src/error.rs
attestor/attestor/src/lib.rs
attestor/attestor/src/shared.rs
attestor/attestor/src/tasks/p2p/admission.rs
attestor/attestor/src/tasks/p2p/behavior.rs
attestor/attestor/src/tasks/p2p/mod.rs
attestor/attestor/src/tasks/production.rs
attestor/attestor/src/tasks/validation.rs
attestor/attestor/src/tasks/write_ability/config.rs
attestor/attestor/src/tasks/write_ability/cursor.rs
attestor/attestor/src/tasks/write_ability/ingest.rs
attestor/attestor/src/tasks/write_ability/listener.rs
attestor/attestor/src/tasks/write_ability/mod.rs
attestor/attestor/src/tasks/write_ability/pending.rs
attestor/attestor/src/tasks/write_ability/storage.rs
🟡 Indexer schema entities added or removed
The indexer GraphQL schema has had entities added or removed.
Changed files (1)
cc3-indexer/schema.graphql