Skip to content

Releases: paritytech/polkadot-sdk

Polkadot stable2503-4 Kusama validators fix

14 May 17:12
0548e83
Compare
Choose a tag to compare

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

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

🚨Urgent stability fix for Kusama - please deploy as quickly as possible.

ℹ️ Polkadot validators can upgrade to this release too, but at normal cadence.

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:stable2503-4

or

docker pull parity/polkadot-parachain:stable2503-4

Polkadot stable2503-3-kusama-only

10 May 08:20
f3226bb
Compare
Choose a tag to compare

This release contains the changes from polkadot-stable2503-2 to polkadot-stable2503-3.

🚨 This is an emergency release to restore finality on Kusama

ℹ️ The binary will need to be reverted to the latest stable afterwards, it will be communicated additionally, when it will need to be done.

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

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:stable2503-3

or

docker pull parity/polkadot-parachain:stable2503-3

Polkadot stable2503-2

07 May 10:54
050919b
Compare
Choose a tag to compare

This release contains the changes from polkadot-stable2503-1 to polkadot-stable2503-2.

ℹ️ 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.

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

The following crates were updated to the corresponding versions:

- polkadot-dispute-distribution@22.1.0
- xcm-emulator@0.19.2

Changelog

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

[#8400]: assert_expected_events macro fix to properly check event was received

Fixes an issue where assert_expected_events macro doesn't properly verify if the expected event was received

Changelog for Node Operator

ℹ️ These changes are relevant to: Those who don't write any code and only run code.

[#8447]: Fix a potential cause of slow parachain blocks

This fix removes a needless reputation change, which might be causing the longer parachain block times on Polkadot.

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:stable2503-2

or

docker pull parity/polkadot-parachain:stable2503-2

Polkadot stable2503-1

05 May 11:16
0bc730c
Compare
Choose a tag to compare

This release contains the changes from polkadot-stable2503 to polkadot-stable2503-1.

ℹ️ 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.

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

The following crates were updated to the corresponding versions:

- sp-io@40.0.1
- substrate-wasm-builder@26.0.1
- sc-network@0.49.1
- staging-xcm-builder@20.1.0
- sc-rpc-spec-v2@0.49.1
- snowbridge-outbound-queue-primitives@0.2.1
- snowbridge-pallet-ethereum-client-fixtures@0.21.1
- snowbridge-pallet-outbound-queue-v2@0.2.1
- snowbridge-pallet-system@0.13.2
- xcm-emulator@0.19.1
- asset-hub-rococo-runtime@0.25.2
- asset-hub-westend-runtime@0.29.2
- penpal-runtime@0.28.1
- bridge-hub-rococo-runtime@0.19.1
- bridge-hub-westend-runtime@0.16.1
- emulated-integration-tests-common@20.0.1
- sc-tracing-proc-macro@11.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.

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

[#8162]: Use client info for fetching the best block for tx_broadcast

This PR modifies the tx broadcast logic. Previously, we relied on the import notification stream to fetch the latest available block.
In this revision, we use the available information of the client.info() to prefix the import notification stream.
The change is needed because chains could be started with InstantSeal, which would not produce blocks until they encounter transactions.

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

[#8218]: [xcm-builder][origin_conversion] LocationAsSuperuser converter introduced

Introduces a LocationAsSuperuser struct that implements ConvertOrigin to allow specific Locations defined through XCM configuration to act as Root on the local chain. Implementation is generic over Location but was created for purposes of allowing AssetHub system chain (by other system chains and relay chains) to execute Root level extrinsics like authorize_upgrade on them.

[#8259]: [stable2503] Backport - Snowbridge - Update TransferToken command gas limit.

Transfering certain ERC20 tokens require more gas than 100_000 gas. An example is LDO token which requires 140_000 gas.
This change updates the gas limit to 200_000 and also updates the default fees for testnet runtimes.
NOTE: make sure to update the relevant runtime fees to account for this change.

[#8198]: Remove #[no_mangle] from the panic handler

Fixes #8190

Remove useless #[no_mangle] from the panic handler which screws up the panic handling machinery on recent versions of Rust.

[#7913]: Fix assert_expected_events macro

This PR fixes the assert_expected_events macro used in integration tests. Before this PR, the macro did not correctly assert field values. This change might result in tests failing that previously passed, due to false negatives.

[#8170]: xcm-emulator improved callback triggering (on_initialize, on_finalize, on_idle, OnSystemEvent).

This PR fixes several issues related to xcm-emulator:

  • Corrects parent head propagation to the PersistedValidationData and OnSystemEvent callback.
  • Triggers on_initialize for all pallets, not just ParachainSystem.
  • Triggers on_finalize for all pallets, not just ParachainSystem.
  • Triggers on_idle for all parachain pallets.

Changelog for Node Operator

ℹ️ These changes are relevant to: Those who don't write any code and only run code.

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

[#8162]: Use client info for fetching the best block for tx_broadcast

This PR modifies the tx broadcast logic. Previously, we relied on the import notification stream to fetch the latest available block.
In this revision, we use the available information of the client.info() to prefix the import notification stream.
The change is needed because chains could be started with InstantSeal, which would not produce blocks until they encounter transactions.

Rust compiler versions

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

  • Rust Stable: 1.84.1

Runtimes

The information about the runtimes included in this release can be found below.
The runtimes have been built using srtool v0.18.2 and rustc 1.84.1 (e71f9a9a9 2025-01-27).

Westend Bridgehub

🏋️ Runtime Size:          1.61 MB (1687949 bytes)
🔥 Core Version:          bridge-hub-westend-1018002 (bridge-hub-westend-0.tx6.au1)
🗜 Compressed:            Yes: 72.46%
🎁 Metadata version:      V14
🗳️ system.setCode hash:   0x537bbbe2770fb8eea40d15070fd9ba16d1a4488671c67d82ddb291d8bb033011
🗳️ authorizeUpgrade hash: 0xadb6d1a19f5639eeb05246c35ebd5b00b55229beb8369c71ea08faaa802f1b0d
🗳️ Blake2-256 hash:       0x19c18ee597711ccb8cc338e489399cf2ead54dc729e5df20b9a031d9e89414d6
📦 IPFS:                  QmYD2AJ6wTaC3PpQLNdfbJEzwUcdZt9MK8U8sP6qx5syaN

Docker images

The docker images for the polkadot node binary, the polkadot-parachain binary and the polkadot-omni-node 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:stable2503-1

or

docker pull parity/polkadot-parachain:stable2503-1

or

docker pull parity/polkadot-omni-node:stable2503-1

Polkadot stable2412-5

30 Apr 13:31
d77b878
Compare
Choose a tag to compare

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

ℹ️ 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-5 and matching the old pattern will be available under polkadot-v1.17.5.

The following crates were updated to the corresponding versions:

- sp-io@39.0.
- substrate-wasm-builder@25.0.1
- pallet-nomination-pools@37.0.2
- staging-xcm-builder@18.2.0
- pallet-multisig@39.1.1
- pallet-nomination-pools-runtime-api@35.0.1
- pallet-xcm-benchmarks@18.1.1
- snowbridge-core@0.12.2
- snowbridge-pallet-system@0.12.2
- people-westend-runtime@0.13.2
- asset-hub-rococo-runtime@0.24.3
- asset-hub-westend-runtime@0.27.3
- bridge-hub-rococo-runtime@0.18.4
- bridge-hub-westend-runtime@0.15.4

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.

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

[#8210]: [xcm-builder][origin_conversion] LocationAsSuperuser converter introduced

Introduces a LocationAsSuperuser struct that implements ConvertOrigin to allow specific Locations defined through XCM configuration to act as Root on the local chain. Implementation is generic over Location but was created for purposes of allowing AssetHub system chain (by other system chains and relay chains) to execute Root level extrinsics like authorize_upgrade on them.

[#8198]: Remove #[no_mangle] from the panic handler

Fixes #8190

Remove useless #[no_mangle] from the panic handler which screws up the panic handling machinery on recent versions of Rust.

[#8335]: Backport fix for pallet-multisig benchmarks

Fixes the benchmarks for pallet-multisig that generates incompatible weights for stable2412.

[#8174]: Fix version conversion in XcmPaymentApi::query_weight_to_asset_fee.

The query_weight_to_asset_fee function of the XcmPaymentApi was trying
to convert versions in the wrong way.
This resulted in all calls made with lower versions failing.
The version conversion is now done correctly and these same calls will now succeed.

[#8156]: bp-runtime: make macro expansion not rely on sp-std in scope.

Make macro in bp-runtime no longer require sp-std in scope.

[#8258]: [stable2412] Backport Snowbridge - Update TransferToken command gas limit.

Transfering certain ERC20 tokens require more gas than 100_000 gas. An example is LDO token which requires 140_000 gas.
This change updates the gas limit to 200_000 and also updates the default fees for testnet runtimes.
NOTE: make sure to update the relevant runtime fees to account for this change.

[#8081]: Add expensive scenario for asset exchange

This PR introduces an implementation for worst_case_asset_exchange() in the AssetHubWestend benchmarking setup.

[#8194]: xcm: minor fix for compatibility with V4

Following the removal of Rococo, Westend and Wococo from NetworkId, fixed xcm::v5::NetworkId encoding/decoding to be compatible with xcm::v4::NetworkId

Changelog for Node Operator

ℹ️ These changes are relevant to: Those who don't write any code and only run code.

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.

[#6540]: Only allow apply slash to be executed if the slash amount is atleast ED

This change prevents pools::apply_slash from being executed when the pending slash amount of the member is lower
than the ED. With this change, such small slashes will still be applied but only when member funds are withdrawn.

[#8194]: xcm: minor fix for compatibility with V4

Following the removal of Rococo, Westend and Wococo from NetworkId, fixed xcm::v5::NetworkId encoding/decoding to be compatible with xcm::v4::NetworkId

Rust compiler versions

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

  • Rust Stable: 1.81.0

Polkadot stable2409-7

29 Apr 09:30
0c96447
Compare
Choose a tag to compare

This release contains the changes from polkadot-stable2409-6 to polkadot-stable2409-7.

ℹ️ Please note:

⚠️ This is a patch release for the previous stable version: stable2409 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-stable2409-7 and matching the old pattern will be available under polkadot-v1.16.7.

The following crates were updated to the corresponding versions:


- sp-io@38.0.2
- staging-xcm@14.2.2
- substrate-wasm-builder@24.0.2
- staging-xcm-executor@17.0.2
- staging-xcm-builder@17.0.5
- pallet-xcm-benchmarks@17.0.1
- polkadot-runtime-common@17.0.1
- cumulus-pallet-parachain-system@0.17.2
- cumulus-pallet-xcmp-queue@0.17.3
- cumulus-primitives-utility@0.17.1
- parachains-runtimes-test-utils@19.0.1
- asset-hub-westend-runtime@0.26.5

Changelog

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

[#8198]: Remove #[no_mangle] from the panic handler

Fixes #8190

Remove useless #[no_mangle] from the panic handler which screws up the panic handling machinery on recent versions of Rust.

[#7856]: Fix XCM decoding inconsistencies

This PR adjusts the XCM decoding logic in order to deduplicate the logic used for decoding v3::Xcm, v4::Xcm
and v5::Xcm and also to use decode_with_depth_limit() in some more places.

[#8080]: Add expensive scenario for asset exchange

This PR introduces an implementation for worst_case_asset_exchange() in the AssetHubWestend benchmarking setup.

[#7967]: Fix XCM Barrier Rejection Handling to Return Incomplete with Weight

This PR addresses an issue with the handling of message execution when blocked by the barrier. Instead of returning an Outcome::Error, we modify the behaviour to return Outcome::Incomplete, which includes the weight consumed up to the point of rejection and the error that caused the blockage.

This change ensures more accurate weight tracking during message execution, even when interrupted. It improves resource management and aligns the XCM executor’s behaviour with better error handling practices.

Rust compiler versions

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

  • Rust Stable: "1.81.0"

Polkadot stable2407-9

10 Apr 14:23
ee3531f
Compare
Choose a tag to compare

This release contains changes from polkadot-stable2407-8 to polkadot-stable2407-9.

ℹ️ Please note:

⚠️ This is a patch release for the stable version: stable2407 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-stable2407-9 and matching the old pattern will be available under polkadot-v1.15.9.

The following crates were updated to the corresponding versions:

- sp-io@38.0.1
- substrate-wasm-builder@23.0.1
- staging-xcm-executor@16.0.1
- staging-xcm-builder@16.0.5

Changelog

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

[#7966]: Fix XCM Barrier Rejection Handling to Return Incomplete with Weight

This PR addresses an issue with the handling of message execution when blocked by the barrier. Instead of returning an Outcome::Error, we modify the behaviour to return Outcome::Incomplete, which includes the weight consumed up to the point of rejection and the error that caused the blockage.

This change ensures more accurate weight tracking during message execution, even when interrupted. It improves resource management and aligns the XCM executor’s behaviour with better error handling practices.

[#8198]: Remove #[no_mangle] from the panic handler

Fixes #8190

Remove useless #[no_mangle] from the panic handler which screws up the panic handling machinery on recent versions of Rust.

Rust compiler versions

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

  • Rust Stable: "1.81.0"

Polkadot stable2503

08 Apr 10:45
0c0d4ce
Compare
Choose a tag to compare

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

ℹ️ Please note:

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

Changelog

ℹ️ The full changelog with descriptions of the changes can be found here: CHANGELOG-stable2503

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.

[#6979]: Update prometheus binding failure logging format

[#6405]: fatxpool: handling limits and priorities improvements

[#6284]: backing: improve session buffering for runtime information

[#6768]: basic-authorship: debug level is now less spammy

[#7011]: sync: Send already connected peers to new subscribers

[#7612]: HashAndNumber: Ord, Eq, PartialOrd, PartialEq implemented

[#6534]: Forward logging directives to Polkadot workers

[#6867]: Deprecate ParaBackingState API

[#7756]: Fix unspecified Hash in NodeBlock

[#7104]: collation-generation: resolve mismatch between descriptor and commitments core index

[#6661]: txpool api: remove_invalid call improved

[#6400]: Remove network starter that is no longer needed

[#7042]: networking::TransactionPool should accept Arc

[#6924]: malus-collator: implement malicious collator submitting same collation to all backing groups

[#6897]: Tracing Log for fork-aware transaction pool

[#7005]: Log peerset set ID -> protocol name mapping

[#5842]: Get rid of libp2p dependency in sc-authority-discovery

[#6440]: Remove debug message about pruning active leaves

[#7464]: Enable importing sc-tracing macros through polkadot-sdk

[#6163]: Expose more syncing types to enable custom syncing strategy

[#6832]: Remove collation-generation subsystem from validator nodes

[#8109]: rpc v2 archive: more verbose error types in API

[#7127]: Forbid v1 descriptors with UMP signals

[#7195]: Unify Import verifier usage across parachain template and omninode

[#7610]: runtime-api: remove redundant version checks

[#6983]: cumulus: bump PARENT_SEARCH_DEPTH to allow for 12-core elastic scaling

[#7781]: Punish libp2p notification protocol misbehavior on outbound substreams

[#6521]: Pure state sync refactoring (part-2)

[#6711]: Expose DHT content providers API from sc-network

[#8040]: Make the default 85% usage of the PoV

[#7649]: frame-benchmarking-cli should not build RocksDB by default

[#7479]: omni-node: add offchain worker

[#6963]: grandpa: Ensure WarpProof stays in its limits

[#6553]: Ensure sync event is processed on unknown peer roles

[#6452]: elastic scaling RFC 103 end-to-end tests

[#7724]: Terminate libp2p the outbound notification substream on io errors

[#6481]: slot-based-collator: Implement dedicated block import

[#6647]: fatxpool: proper handling of priorities when mempool is full

[#7505]: fatxpool: transaction statuses metrics added

[#6215]: Remove ProspectiveParachainsMode from backing subsystem

[#7708]: Support adding extra request-response protocols to the node

[#7554]: sc-informant: Print full hash when debug logging is enabled

[#7885]: Rename archive call method result to value

[#6913]: Enable approval-voting-parallel by default on polkadot

[#6628]: Remove ReportCollator message

[#7014]: Remove yamux_window_size from network config

[#6455]: Add litep2p network protocol benches

[#7368]: Add chain properties to chain-spec-builder

[#7254]: deprecate AsyncBackingParams

[#4880]: Collation fetching fairness in collator protocol

[#6262]: Size limits implemented for fork aware transaction pool

[#7338]: [net/libp2p] Use raw Identify observed addresses to discover external addresses

[#7585]: Add export PoV on slot base collator

[#7021]: Improve remote externalities logging

[#6636]: Optimize initialization of networking protocol benchmarks

[#6561]: slot-based-collator: Move spawning of the futures

[#7449]: remove handling of validation protocol versions 1 and 2

[#8062]: frame-system: Don't underflow the sufficients

[#7286]: Remove node-side feature flag checks for Elastic Scaling MVP

[#6865]: Rename PanicInfo to PanicHookInfo

[#5855]: Remove feature test-helpers from sc-service

[#8024]: Change the hash of PendingOrders storage item

[#7777]: fatxpool: report_invalid: do not ban Future/Stale txs from re-entering the view

[#7639]: fatxpool: improved handling of finality stalls

[#6889]: Remove polkadot-omni-node-lib unused dependency

[#6450]: Add omni-node checks for runtime parachain compatibility

[#6248]: Upgrade libp2p to 0.54.1

[#7102]: fatxpool: rotator cache size now depends on pool's limits

[#7073]: Implement NetworkRequest for litep2p

[#6528]: TransactionPool API uses async_trait

[#8104]: Stabilize RPC archive methods to V1

[#6703]: network/libp2p-backend: Suppress warning adding already reserved node as reserved

[#7981]: Bump ParachainHost runtime API to 13

[#6417]: fix prospective-parachains best backable chain reversion bug

[#6249]: Pure state sync refactoring (part-1)

[#7494]: Enhance libp2p logging targets for granular control

[#7545]: fatxpool: event streams moved to view domain

[#7866]: Make litep2p the default backend in Kusama

[#5703]: Properly handle block gap created by fast sync

[#7075]: Snowbridge - Ethereum Electra Upgrade Support

[#7402]: Snowbridge V2

Changelog for Node Operator

ℹ️ These changes are relevant to: Those who don't write any code and only run code.

[#6923]: omni-node: Tolerate failing metadata check

[#7353]: Shorter availability data retention period for testnets

[#6605]: Notify telemetry only every second about the tx pool status

[#7781]: Punish libp2p notification protocol misbehavior on outbound substreams

[#7479]: omni-node: add offchain worker

[#7724]: Terminate libp2p the outbound notification substream on io errors

[#7885]: Rename archive call method result to value

[#7585]: Add export PoV on slot base collator

[#5724]: Validator Re-Enabling (master PR)

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

[#7164]: [pallet-revive] Remove revive events

[#7676]: [pallet-revive] tracing should wrap around call stack execution

[#7634]: derive DecodeWithMemTracking for RuntimeCall

[#7412]: Pallet view functions: improve metadata, API docs and testing

[#7928]: Fix pallet-revive-fixtures build.rs

[#7069]: Fix defensive! macro to be used in umbrella crates

[#7492]: Make pallet-bridge-rewards generic over RewardKind

[#7263]: Fix frame-benchmarking-cli not buildable without rocksdb

[#6741]: pallet-revive: Adjust error handling of sub calls

[#6880]: [pallet-revive] implement the call data copy API

[#6446]: Make pallet-recovery supports BlockNumberProvider

[#7423]: Fix issue with InitiateTransfer and UnpaidExecution

[#6836]: [pallet-revive-eth-rpc] persist eth transaction hash

[#7889]: Remove execute_with_origin implementation in the XCM executor

[#6867]: Deprecate ParaBackingState API

[#7562]: pallet-revive: Add env var to allow skipping of validation for testing

[#6367]: Refactor pallet society

[#7790]: pallet-scheduler: Put back postponed tasks into the agenda

[#7580]: implement web3_clientVersion

[#7959]: Update expire date on treasury payout

[#7282]: AHM Multi-block staking election pallet

[#6926]: [pallet-revive] implement the gas limit API

[#7614]: [pallet-revive] tracing improvements

[#7260]: [eth-indexer] subscribe to finalize blocks instead of best blocks

[#7607]: Add Runtime Api version to metadata

[#7703]: Add voting hooks to Conviction_Voting

[#6856]: Enable report_fork_voting()

[#7805]: New staking::manual_slash extrinsic

[#6928]: [Backport] Version bumps and prdocs reordering form 2412

[#2072]: Return iterator in pallet_referenda::TracksInfo::tracks

[#7579]: [AHM] Make pallet types public

[#7126]: xcm: Fixes for UnpaidLocalExporter

[#6435]: frame-benchmarking: Use correct components for pallet instances

[#7319]: [pallet-revive] pack exceeding syscall arguments into registers

[#6920]: [pallet-revive] change some getter APIs to return value in register

[#6917]: Remove unused dependencies from pallet_revive

[#7506]: [pallet-revive] Add eth_get_logs

[#6336]: pallet-xcm: add support to authorize aliases

[#6820]: Add XCM benchmarks to collectives-westend

[#7594]: Improve XCM Debugging by Capturing Logs in Unit Tests

[#7324]: Replace derivative dependency with derive-where

[#7620]: Derive DecodeWithMemTracking for...

Read more

Polkadot stable2412-4

31 Mar 09:36
010fd7b
Compare
Choose a tag to compare

This release contains the changes from polkadot-stable2412-3 to polkadot-stable2412-4.

ℹ️ Please note:
This is a patch release for the latest stable version: stable2412. If your nodes are already running on this version, you can consider upgrading to it to have the latest fixes.

The tag corresponding to the current patch release polkadot-stable2412-4 and matching the old pattern will be available under polkadot-v1.17.4.

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.

[#7866]: Make litep2p the default backend in Kusama

A new trait IdentifyNetworkBackend is introduced for the polkadot-service. The purpose of the trait is to specify the default network backend for individual chains. For Kusama based chains, the default is now litep2p. For other chains, the default remains unchanged to libp2p.
The network backend field of the network configuration is made optional to accommodate for this change.

[#7075]: Snowbridge - Ethereum Electra Upgrade Support

Adds support for the Ethereum Electra hard-fork in the Ethereum light client. Maintains backwards compatibility with the current Deneb hard-fork.
Relayers should update to the latest binary to support sending Electra consensus updates.

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

[#7856]: Fix XCM decoding inconsistencies

This PR adjusts the XCM decoding logic in order to deduplicate the logic used for decoding v3::Xcm, v4::Xcm and v5::Xcm and also to use decode_with_depth_limit() in some more places.

[#7968]: Fix XCM Barrier Rejection Handling to Return Incomplete with Weight

This PR addresses an issue with the handling of message execution when blocked by the barrier. Instead of returning an Outcome::Error, we modify the behaviour to return Outcome::Incomplete, which includes the weight consumed up to the point of rejection and the error that caused the blockage.

This change ensures more accurate weight tracking during message execution, even when interrupted. It improves resource management and aligns the XCM executor’s behaviour with better error handling practices.

[#7899]: Remove execute_with_origin implementation in the XCM executor

The XCM executor will not support the ExecuteWithOrigin instruction from the start.
It might be added later when more time can be spent on it.

[#7921]: Use non-native token to benchmark on asset hub

Asset Hub was using the native token for benchmarking xcm instructions. This is not the best since it's cheaper than using something in pallet-assets for example.
Had to remove some restrictive checks from pallet-xcm-benchmarks.

[#7738]: Introduce filter to restrict accounts from staking

Introduce an associated fn filter in pallet-staking to restrict some accounts from staking.
This is useful for restricting certain accounts from staking, for example, accounts staking via pools.

[#7760]: Dynamic uncompressed code size limit

Deprecates node constant VALIDATION_CODE_BOMB_LIMIT and introduces validation_code_bomb_limit runtime API that computes the maximum uncompressed code size as the maximum code size multiplied by a compression ratio of 10.

[#7694]: XCM: Process PayFees only once

The PayFees instruction should only ever be used once. If it's used more than once, it's just a noop.

[#8051]: XCM: Some weight fixes for InitiateTransfer

  • Added some base weight for InitiateTransfer no matter what.
  • Short circuit on AllCounted(0) to not have to go through all fungibles.

[#7689]: Fix DryRunApi client-facing XCM versions

Fixes #7413

This PR updates the DryRunApi. The signature of the dry_run_call is changed, and the XCM version of the return values of dry_run_xcm now follows the version of the input XCM program.

It also fixes xcmp-queue's Router's clear_messages: the channel details first_index and last_index are reset when clearing.

[#7894]: [stable2412] pallet-revive: remove related crates from umbrella

Fixes polkadot-sdk building for stable2412. It removes its dependency on pallet-revive* crates, which aren't publishable as part of stable2412 release & patch releases. Minor updates were brought to a bunch of other crates to allow their compilation in test profile, to enable granular testing and rapid feedback of crates for next stable2412 patch releases.

Changelog for Node Operator

ℹ️ These changes are relevant to: Those who don't write any code and only run code.

[#7866]: Make litep2p the default backend in Kusama

This PR makes the litep2p backend the default network backend in Kusama, but also for system chains.
We performed a gradual rollout in Kusama by asking validators to manually switch to litep2p.
The rollout went smoothly, with 250 validators running litep2p without issues. This PR represents the next step in testing the backend at scale.

Rust compiler versions

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

  • Rust Stable: "1.81.0"

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:stable2412-4

or

docker pull parity/polkadot-parachain:stable2412-4

Polkadot stable2409-6

13 Mar 16:56
fa856e0
Compare
Choose a tag to compare

his release contains the changes from polkadot-stable2409-5 to polkadot-stable2409-6.

ℹ️ Please note:

⚠️ This is a patch release for the previous stable version: stable2409 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-stable2409-6 and matching the old pattern will be available under polkadot-v1.16.6.

The following crates were updated to the corresponding versions:


- staging-xcm@14.2.1
- snowbridge-beacon-primitives@0.10.1
- pallet-delegated-staking@5.0.1
- pallet-nomination-pools@35.0.3
- xcm-runtime-apis@0.4.3
- pallet-staking@38.0.1
- pallet-xcm@17.0.2
- snowbridge-pallet-ethereum-client@0.10.1
- snowbridge-pallet-inbound-queue@0.10.1
- cumulus-pallet-xcmp-queue@0.17.2
- bridge-hub-rococo-runtime@0.16.4
- bridge-hub-westend-runtime@0.13.4
- polkadot-service@19.0.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.

[#7075]: Snowbridge - Ethereum Electra Upgrade Support

Adds support for the Ethereum Electra hard-fork in the Ethereum light client. Maintains backwards compatibility with the current Deneb hard-fork.
Relayers should update to the latest binary to support sending Electra consensus updates.

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

[#7737]: Introduce filter to restrict accounts from staking

Introduce an associated fn filter in pallet-staking to restrict some accounts from staking.
This is useful for restricting certain accounts from staking, for example, accounts staking via pools.

[#7688]: Fix DryRunApi client-facing XCM versions

Fixes #7413

This PR updates the DryRunApi. The signature of the dry_run_call is changed, and the XCM version of the return values of dry_run_xcm now follows the version of the input XCM program.

It also fixes xcmp-queue's Router's clear_messages: the channel details first_index and last_index are reset when clearing.

Rust compiler versions

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

  • Rust Stable: "1.81.0"