Overview
Runtime upgrade release (spec_version 129 → 131). Node binaries are compatible with the previous runtime; the new runtime is enacted separately via Tech Collective governance. transaction_version is unchanged, so existing wallets and transactions remain valid.
All changes since v0.6.5-penestanan.
Networking (post-quantum stack)
- litep2p is now the only networking backend (#574). The litep2p code is vendored and modified for post-quantum crypto: Dilithium ML-DSA-87 node identity and PeerId, Noise handshake with ML-KEM 768, post-quantum QUIC/TLS. Elliptic curve support removed, libp2p turned off. Wire protocol is unchanged, so nodes interoperate with the existing network.
- Vendored
sc-network-typesv0.20.3 in preparation for the Dilithium identity work (#573). - Clearer errors when loading Dilithium node identity keys (#580).
Consensus & mining
- Reworked difficulty adjustment (#564): replaced EMA-based tracking with Ethereum-style per-block adjustment (asymmetric clamps: 5% down, 0.05% up). Greatly reduces difficulty oscillation when hashrate changes.
- Renamed
distance_thresholdtodifficultythroughout (#576). - Wormhole aggregation batch reduced from 16 to 7 leaf proofs, keeping the circuit at degree_bits=15 (~1.5 GB peak memory) for mobile provers (#569).
- Simplified Poseidon usage and
Headerdefinition; block hashes are unchanged, guarded by a consensus regression test (#571). - Updated zk-circuits, poseidon, and plonky2 dependency versions (#578).
Runtime & pallets (Eiger audit)
- Multisig: addressed Eiger multisig audit findings, including storage format changes (#546). No multisig data exists on-chain, so no migration is needed.
- Reversible transfers: calls are no longer stored directly; the data needed to reconstruct the call is stored instead, avoiding unhandled preimage failures (#556).
- Scheduler: fixed retry failure handling and retry config not carrying the period type forward; more accurate weights (#557).
- Final audit pass (#559):
recover_fundsnow skips failed releases instead of aborting (prevents orphaned holds), documented thatrecover_fundsis callable in perpetuity, addressed remaining treasury findings. - Removed the static governance override flagged by audits; fast governance for testing is now a build feature (#562).
- Regenerated all pallet weights against the release runtime, with a new
scripts/regenerate_weights.sh(#579).
Node
- RPC review: basic peer info is now async, zktree RPC marked as blocking (#577).
- Vendored
sc-informantto remove ANSI escape sequences from logs; fixed a flaky test (#580).
Operations & tooling
- Miner-stack updated to the QUIC-based node↔miner protocol (
--miner-listen-port/serve --node-addr), wormhole-based rewards (REWARDS_INNER_HASH), new env knobs, and refreshed docs and Grafana dashboard (#555). - Fixed multi-arch Docker image building (aarch64 cross-compilation) (#566).
Documentation
- Runtime upgrade via governance guide (#575).
- Wormhole ZK functions doc (#561).
- Windows mining setup: Defender exclusion and recommended sync flags (#549).
Compatibility notes
- Binaries from this release sync and operate against the current on-chain runtime; operators can upgrade on their own schedule.
- The runtime upgrade enacts via Tech Collective referendum (see
docs/RUNTIME_UPGRADE_VIA_GOVERNANCE.md). - Multisig storage format changed without a migration — verified safe because no multisig storage entries exist on-chain.