3.138.4-mainnet (2026-10-14)
69 changes since 3.134.0-mainnet (full diff).
Runtime, pallets and precompiles
- Allow maturity strategies to be updated at runtime (#1388) @BradleyOlson64
- feat(maturity): RpcSafe / RpcFinalized strategies that follow the source node's block tags (#1330) @DylanVerstraete
- runtime(staking): give fast-runtime a 2-era bonding duration, keep 7 everywhere deployed (#1378) @beqaabu
- feat(attestation): force elections per chain, emit AttestorsElected only on change (#1326) @DylanVerstraete
- feat(attestation): derive quorum from min(active attestors, target sample size) (#1320) @DylanVerstraete
Node
Attestor
- feat(attestor): pace source-chain RPC requests (#1463) @DylanVerstraete
- fix(attestor): re-gossip unfinalized votes so genesis bootstrap cannot deadlock (#1308) @DylanVerstraete
Archiver
- fix(Archiver): Follow the last included attestation (#1444) @BradleyOlson64
- fix(archiver): keep the stream watchdog above the eth client's fetch retry budget (#1349) @DylanVerstraete
- feat(archiver): bind the API before the source handshake; wire fallback RPC URLs (#1348) @DylanVerstraete
- feat(archiver): verify the stored tip is canonical on start and reconnect (#1347) @DylanVerstraete
- feat(archiver): freshness-aware /status and a /ready probe (#1346) @DylanVerstraete
- fix(archiver): pin chain identity, handle SIGTERM everywhere, decouple the tip window (#1344) @DylanVerstraete
- feat(archiver): follow the latest attested height instead of resolving maturity (#1366) @DylanVerstraete
- test(archiver): stop the sled reopen tests failing on a lock we already dropped (#1343) @DylanVerstraete
- feat(archiver): write and flush every block once within a flush window of the head (#1335) @DylanVerstraete
- fix(archiver): verify source chain_id against the Creditcoin registration on every start (#1318) @DylanVerstraete
Proof generation and checkpoints
- fix(proof-gen,continuity): answer 422 while the archiver stores the newest attested blocks (#1438) @DylanVerstraete
- feat(proof-gen): request admission limits, per-chain fill budget, single-flight block fills (#1354) @DylanVerstraete
- feat(proof-gen): /livez + /readyz, snapshot-pinned startup with replay, fatal seed failures (#1353) @DylanVerstraete
- fix(proof-gen): share one Arc and supervise the cc3 event task (#1350) @DylanVerstraete
- feat(checkpoint-builder): chain multiple Sled databases as one RootSource (#1419) @didac-gluwa
- feat(proof-gen-api-server): label request metrics with the exact HTTP status (#1414) @didac-gluwa
- feat(proof-gen-api-server): log User-Agent in request tracing span (#1395) @didac-gluwa
- feat(proof-gen): confirm requested heights against the attested set, not the source tip (#1365) @DylanVerstraete
- Rename references to
cc-next-query-buildertoasc-sdk(#1374) @BradleyOlson64 - test(checkpoint-builder): retry the sled reopen the flusher has not released (#1372) @beqaabu
- feat(proof-gen): make cache memory configurable per chain and budget it (#1323) @beqaabu
- fix(proof-gen): make /health reflect serving ability, log probe failures (#1312) @DylanVerstraete
- feat(proof-gen): derive block_confirmation_depth from on-chain MaturityStrategy (#1313) @DylanVerstraete
Shared libraries
- fix(stream_eth): fuse the head watchdog so an ETH reconnect can't panic the attestor (#1442) @DylanVerstraete
- fix(stream_eth): seed the block stream from eth_blockNumber and poll heads alongside newHeads (#1345) @DylanVerstraete
- fix(eth,continuity): lock-free ETH repair with shared generations; tip reads fail over; HTTP deadlines (#1352) @DylanVerstraete
- fix(stream_cc3): progress watchdog on the finalized subscription; ws ping/pong on the cc3 client (#1351) @DylanVerstraete
- feat(eth): resolve block tags by cross-provider agreement, keyed on the block hash (#1367) @DylanVerstraete
- fix(eth): reject receipts that belong to a different block than the one fetched (#1362) @DylanVerstraete
CLI and scripts
- test(cli): stop paying a finality wait per funded account, and per skipped leg (#1376) @beqaabu
- feat(usc-audit): add BSC (chain key 8) liveness sanities on devnet (#1324) @beqaabu
CI and repository
- ci(release): allow devnet hotfix releases from any branch (#1476) @beqaabu
- fix(ci): stop lychee failing on a template URL and an authed RPC endpoint (#1413) @beqaabu
- ci: accept dev alongside usc-dev ahead of the branch rename (#1417) @beqaabu
- fix(hooks): indent merge SHAs without sed in pre-push (#1420) @beqaabu
- fix(hooks): only reject merge commits that are actually being pushed (#1416) @beqaabu
- ci: build Docker images and the srtool runtime on trunk pushes and on request, not on every PR (#1397) @DylanVerstraete
- ci(attestor-compat): fail in seconds on a metadata mismatch, not after a 20m timeout (#1390) @beqaabu
- ci(docker): post the Scout compare on a PR only when it changes the image's vulnerabilities (#1398) @DylanVerstraete
- feat(ci): require two approvals for pull requests opened from forks (#1407) @beqaabu
- fix(github): point CODEOWNERS at a team that exists (#1406) @beqaabu
- ci(timing): report jest suite and hook timings, not just job duration (#1377) @beqaabu
- ci: alert on Slack when a Rust cache producer fails (#1375) @beqaabu
- ci: watch the cli test infrastructure the suite filters sit on top of (#1379) @beqaabu
- ci: hold irrelevant hardware/firmware packages out of VM upgrade (#1361) @mason-gluwa
- ci: cut PR wall-clock by fixing cache thrash and redundant work (#1338) @beqaabu
- ci(try-runtime): only run when the migration surface actually changed (#1294) @beqaabu
- ci(scout): compare PR builds against the published image instead of inventorying them (#1309) @DylanVerstraete
- ci: stop the automated monthly devnet release cron (#1311) @beqaabu
- ci: fail fast and show the node log when Ethereum never comes up (#1303) @DylanVerstraete
- ci: pin the azure-cli apt repo, unbreak the runtime upgrade checks (#1299) @beqaabu
- Add retry on provision vm step (#1282) @mason-gluwa
- ci: retire the promotion crons, fix promote reporting and Slack routing (#1298) @beqaabu
Dependencies (8)
- build(deps-dev): bump the dev-dependencies group across 5 directories with 4 updates (#1306) @dependabot[bot]
- build(deps): bump browserslist from 4.24.4 to 4.28.9 in /cli (#1325) @dependabot[bot]
- build(deps): bump hono from 4.13.1 to 4.13.7 in /cc3-indexer (#1334) @dependabot[bot]
- build(deps): bump browserslist from 4.28.1 to 4.28.8 in /cc3-indexer (#1310) @dependabot[bot]
- build(deps): bump fast-uri from 3.1.5 to 3.1.7 in /cc3-indexer (#1314) @dependabot[bot]
- build(deps-dev): bump fast-uri from 3.1.5 to 3.1.7 in /docs/smart-contract-development/with-hardhat (#1315) @dependabot[bot]
- build(deps): bump js-yaml from 5.3.0 to 5.4.1 in /cc3-indexer in the prod-dependencies group across 1 directory (#1305) @dependabot[bot]
- build(deps): bump ubuntu from
678c655to2260313in the all-dependencies group across 1 directory (#1274) @dependabot[bot]
⚠️ 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 (1)
runtime/src/lib.rs
🔴 Indexer schema entities modified — resync from block 0 required
The indexer GraphQL schema has had entity fields modified. Indexer operators must perform a full resync from block 0 to ensure data consistency.
Changed files (1)
cc3-indexer/schema.graphql
🟡 Node binary source changed
The node binary source code has changed. Node operators should rebuild and redeploy their node binary.
Changed files (1)
node/src/command.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 (9)
pallets/attestation/src/benchmarking.rs
pallets/attestation/src/impls.rs
pallets/attestation/src/lib.rs
pallets/attestation/src/weights.rs
pallets/randomness/src/lib.rs
pallets/randomness/src/weights.rs
pallets/supported-chains/src/benchmarking.rs
pallets/supported-chains/src/lib.rs
pallets/supported-chains/src/weights.rs
🟡 Attestor source changed
Attestor-related source code has changed. Attestor operators should rebuild and redeploy their attestor binary.
Changed files (30)
attestor/attestor/src/error.rs
attestor/attestor/src/lib.rs
attestor/attestor/src/main.rs
attestor/attestor/src/secret.rs
attestor/attestor/src/shared.rs
attestor/attestor/src/startup.rs
attestor/attestor/src/tasks/p2p/mod.rs
attestor/attestor/src/tasks/production.rs
attestor/attestor/src/tasks/validation.rs
common/continuity/src/archiver.rs
common/continuity/src/builder/mod.rs
common/continuity/src/config.rs
common/continuity/src/rpc.rs
common/eth/Cargo.toml
common/eth/src/lib.rs
🟡 Indexer schema entities added or removed
The indexer GraphQL schema has had entities added or removed.
Changed files (1)
cc3-indexer/schema.graphql