This release contains the changes from polkadot-stable2412-5
to polkadot-stable2412-6
.
ℹ️ Please note:
⚠️ This is a patch release for the stable version: stable2412
and contains only patches and fixes to the crates (list below). No binary or docker images will be provided for this release.
The tag corresponding to the current patch release polkadot-stable2412-6
and matching the old pattern will be available under polkadot-v1.17.6.
The following crates were updated to the corresponding versions:
- frame-election-provider-solution-type@14.0.2
- sp-npos-elections@35.1.0
- staging-xcm@15.1.0
- frame-benchmarking@39.1.0
- frame-election-provider-support@39.0.1
- pallet-scheduler@40.2.0
- staging-xcm-executor@18.0.3
- pallet-election-provider-multi-phase@38.2.0
- sc-network@0.48.4
- staging-xcm-builder@18.2.1
- xcm-runtime-apis@0.5.3
- pallet-beefy@40.1.1
- pallet-xcm@18.1.1
- pallet-xcm-bridge-hub@0.14.3
- xcm-simulator@18.1.0
- xcm-simulator-example@18.0.1
- xcm-emulator@0.17.2
- asset-hub-westend-runtime@0.27.4
- westend-runtime@21.2.0
- emulated-integration-tests-common@19.1.0
- frame-benchmarking-cli@46.2.0
- cumulus-relay-chain-minimal-node@0.22.2
Changelog
Changelog for Node Dev
ℹ️ These changes are relevant to: Those who build around the client side code. Alternative client builders, SMOLDOT, those who consume RPCs. These are people who are oblivious to the runtime changes. They only care about the meta-protocol, not the protocol itself.
[#8514]: Allow block-announce to exist in the background of minimal relay chains
This PR fixes an issue with the collators that would not get advertised.
The issue relates to the /block-announces/1 protocol for the litep2p network backends.
Previously, the notification service handle was dropped, causing the litep2p backend to terminate the long-running task that handled the /block-announces/1 protocol.
This represents a subtle difference between libp2p and litep2p, where libp2p would continue to operate the protocol under the hood even without the respective handle.
[#8373]: Update litep2p network backend to v0.9.4
This release brings several improvements and fixes to litep2p, advancing its stability and readiness for production use.
Performance Improvements
This release addresses an issue where notification protocols failed to exit on handle drop, lowering CPU usage in scenarios like minimal-relay-chains from 7% to 0.1%.
Robustness Improvements
- Kademlia:
- Optimized address store by sorting addresses based on dialing score, bounding memory consumption and improving efficiency.
- Limited
FIND_NODE
responses to the replication factor, reducing data stored in the routing table. - Address store improvements enhance robustness against routing table alterations.
- Identify Codec:
- Enhanced message decoding to manage malformed or unexpected messages gracefully.
- Bitswap:
- Introduced a write timeout for sending frames, preventing protocol hangs or delays.
Testing and Reliability
- Fuzzing Harness: Added a fuzzing harness by SRLabs to uncover and resolve potential issues, improving code robustness. Thanks to @R9295 for the contribution!
- Testing Enhancements: Improved notification state machine testing. Thanks to Dominique (@Imod7) for the contribution!
Dependency Management
- Updated all dependencies for stable feature flags (default and "websocket") to their latest versions.
- Reorganized dependencies under specific feature flags, shrinking the default feature set and avoiding exposure of outdated dependencies from experimental features.
Changelog for Runtime Dev
ℹ️ These changes are relevant to: All of those who rely on the runtime. A parachain team that is using a pallet. A DApp that is using a pallet. These are people who care about the protocol (WASM, not the meta-protocol (client).)
[#8585]: fix epmb solution duplicate issue + add remote mining apparatus to epm
Prevents the NPoS election process from accepting duplicate voters and targets.
[#7691]: Ensure Consistent Topic IDs for Traceable Cross-Chain XCM
This PR ensures every XCM processed with the same topic ID across multiple chains to improve traceability.
[#8427]: BEEFY: adjust equivocation slash fraction
Use 50% slash fraction for fork voting and future block voting (in accordance with the https://eprint.iacr.org/2025/057.pdf paper).
In order to account for the possible risk of accidental/non-malicious double voting, keep the current formula for double voting proof.
[#8589]: [stable2412] Backport #8546
Improve try-state for pallet-xcm-bridge-hub, it removes try_as
and uses try_into
implementation instead.
[#7785]: pallet scheduler: fix weight and add safety checks
Changes:
- Add runtime integrity test for scheduler pallet to ensure that lookups use sensible weights
- Check all passed storage names in the omni bencher to be known by FRAME metadata
- Trim storage names in omni bencher to fix V1 bench syntax bug
- Fix V1 bench syntax storage name sanitization for specific Rust versions
I re-ran the benchmarks with the omni-bencher modifications and it did not change the proof size. I reverted the commit afterwards to reduce the noise for reviewers.
Changelog for Node Operator
ℹ️ These changes are relevant to: Those who don't write any code and only run code.
[#8514]: Allow block-announce to exist in the background of minimal relay chains
This PR fixes an issue with the collators that would not get advertised.
The issue relates to the /block-announces/1 protocol for the litep2p network backends.
Previously, the notification service handle was dropped, causing the litep2p backend to terminate the long-running task that handled the /block-announces/1 protocol.
This represents a subtle difference between libp2p and litep2p, where libp2p would continue to operate the protocol under the hood even without the respective handle.
[#8373]: Update litep2p network backend to v0.9.4
This release brings several improvements and fixes to litep2p, advancing its stability and readiness for production use.
Performance Improvements
This release addresses an issue where notification protocols failed to exit on handle drop, lowering CPU usage in scenarios like minimal-relay-chains from 7% to 0.1%.
Robustness Improvements
- Kademlia:
- Optimized address store by sorting addresses based on dialing score, bounding memory consumption and improving efficiency.
- Limited
FIND_NODE
responses to the replication factor, reducing data stored in the routing table. - Address store improvements enhance robustness against routing table alterations.
- Identify Codec:
- Enhanced message decoding to manage malformed or unexpected messages gracefully.
- Bitswap:
- Introduced a write timeout for sending frames, preventing protocol hangs or delays.
Testing and Reliability
- Fuzzing Harness: Added a fuzzing harness by SRLabs to uncover and resolve potential issues, improving code robustness. Thanks to @R9295 for the contribution!
- Testing Enhancements: Improved notification state machine testing. Thanks to Dominique (@Imod7) for the contribution!
Dependency Management
- Updated all dependencies for stable feature flags (default and "websocket") to their latest versions.
- Reorganized dependencies under specific feature flags, shrinking the default feature set and avoiding exposure of outdated dependencies from experimental features.
Rust compiler versions
This release was built and tested against the following versions of rustc
.
Other versions may work.
- Rust Stable:
1.81.0