github paritytech/polkadot-sdk polkadot-stable2503-5
Polkadot stable2503-5

latest releases: polkadot-stable2509-rc1, polkadot-stable2506-2, polkadot-stable2506-2-rc1...
3 months ago

This release contains the changes from polkadot-stable2503-4 to polkadot-stable2503-5.

ℹ️ Please note:

This is a patch release for the latest stable version: stable2503. If your nodes are already running on this version, you can consider upgrading to it to have the latest fixes at a regular cadence.

The tag corresponding to the current patch release polkadot-stable2503-5 and matching the old pattern will be available under polkadot-v1.18.5.

The following crates were updated to the corresponding versions:

- pallet-session@40.0.1
- pallet-beefy@41.1.1
- pallet-revive@0.6.1
- pallet-revive-mock-network@0.5.0
- snowbridge-core@0.13.2
- pallet-revive-eth-rpc@0.5.0
- snowbridge-inbound-queue-primitives@0.2.1
- snowbridge-pallet-system-frontend@0.2.1
- snowbridge-pallet-outbound-queue-v2@0.2.2
- penpal-runtime@0.29.0
- snowbridge-pallet-inbound-queue-v2@0.2.1
- snowbridge-pallet-system-v2@0.2.1
- polkadot-node-core-dispute-coordinator@22.0.1
- polkadot-statement-distribution@22.0.1
- cumulus-relay-chain-minimal-node@0.23.1
- frame-support-procedural@33.0.1
- frame-benchmarking@40.2.0
- frame-benchmarking-pallet-pov@30.0.1
- pallet-scheduler@41.2.0
- pallet-staking@40.1.1
- westend-runtime@22.3.0
- asset-hub-westend-runtime@0.30.2
- frame-benchmarking-cli@47.2.0
- frame-omni-bencher@0.11.1
- frame-election-provider-solution-type@16.1.1
- sp-npos-elections@36.2.0
- staging-xcm@16.2.0
- frame-election-provider-support@40.1.1
- staging-xcm-executor@19.1.2
- pallet-election-provider-multi-phase@39.2.0
- staging-xcm-builder@20.1.1
- xcm-runtime-apis@0.7.1
- pallet-xcm@19.1.2
- pallet-xcm-bridge-hub@0.16.3
- xcm-simulator@20.1.0
- xcm-simulator-example@20.0.1
- xcm-emulator@0.19.3
- emulated-integration-tests-common@20.1.0

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.

[#8510]: statement-distribution: skip leafs where we can't fetch the state

Fix statement-distribution to not exit early when it cannot process one of the hashes in handle_active_leaves.

[#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.

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).)

[#8546]: [stable2503] Backport #8546

Improve try-state for pallet-xcm-bridge-hub, it removes try_as and uses try_into implementation instead.

[#8495]: [pallet-revive] tracing prepare support for future tracing APIS

  • Fix eth_getStorageAt to use BigEndian for key encoding
  • Refactor eth-rpc client storage and runtime API to a separate file
  • Make debug_trace methods Return a composite Trace enum, so we can introduce other trace types.

companion evm-test-suite PR paritytech/evm-test-suite#93

[#8648]: Charge deposit based on key length

We were only charging storage deposit based on value length, but not based on key length. Since we allow for variable length keys, this has to be done. Needs to be back ported since changing this in an already deployed system will be nasty.

[#8585]: fix epmb solution duplicate issue + add remote mining apparatus to epm

Prevents the NPoS election process from accepting duplicate voters and targets.

[#8615]: Bridges: Fix - Improve try-state for pallet-xcm-bridge-hub

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.

[#8265]: [FRAME] Omni bencher fixes

Changes:

  • Add --pallets option to selectively run multiple pallets. In the past, we only had --pallet to run a single one.
  • Add --exclude-extrinsics [pallet::extrinsic] to add (Pallet, Extrinsic) tuples that should be excluded.
  • Fix storage overlay reversion before the benchmark runs.
  • Test root hash for V2 benchmarks to be deterministic
  • Changed DB reps to 1 for speedup since it should not be needed to run multiple times. (TODO test)

Checked that it fixes the Kusama benchmark issue when patching to a fixed stable2412 fork:

(before)

The following 5 benchmarks failed:
- pallet_nomination_pools::apply_slash_fail
- pallet_nomination_pools::migrate_delegation
- pallet_nomination_pools::pool_migrate
- pallet_offences::report_offence_babe
- pallet_offences::report_offence_grandpa
Error: Input("5 benchmarks failed")

(after)

The following 1 benchmarks failed:
- pallet_nomination_pools::apply_slash_fail
Error: Input("1 benchmarks failed")

This one needs fixing but is not breaking the other ones any more.

[#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.

[#8306]: Fix faulty pre-upgrade migration check in pallet-session

Fixes a pre-upgrade migration check for v1 of pallet-session.

[#8240]: Snowbridge V2 Audit Fixes

This PR addresses audit findings from the Snowbridge V2 review. It includes a minor change to when the nonce is set
in the Inbound Queue V2. In the Outbound Queue V2 pallet, it fixes an issue where the reward address was not used to
accumulate rewards and improves the generation of message IDs. It also resolves non-sequential call indexes in the
System V2 pallet and improves documentation across the affected pallets.

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.

[#8503]: populate disabled dispute state on startup

Populating off-chain disabled state on startup from the disputes database makes the disputes spam handling more resilient with validator restarts.

Changelog for Runtime User

ℹ️ These changes are relevant to: Anyone using the runtime. This can be a token holder or a dev writing a front end for a chain.

[#8173]: Expose current advertised xcm version

Exposes AdvertisedXcmVersion via a metadata constant.

[#8351]: XCM: treat BelowMinimum deposit errors as non-fatal and burn non-depositable dust

Treat TokenError::BelowMinimum error as non-fatal in xcm-executor, ignore failures to deposit dust. Any dust that cannot be deposited, shall be dropped (effectively burned).

Rust compiler versions

This release was built and tested against the following versions of rustc.
Other versions may work.

  • Rust Stable: 1.84.1

Docker images

The docker images for the polkadot node binary and the polkadot-parachain binary can be found at Docker hub (will be available a few minutes after the release has been published):

You may also pull it with:

docker pull parity/polkadot:stable2305-5

or

docker pull parity/polkadot-parachain:stable2305-5

Don't miss a new polkadot-sdk release

NewReleases is sending notifications on new releases.