Releases: paritytech/polkadot-sdk
Polkadot stable2503-4 Kusama validators fix
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
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
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
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 Location
s 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
andOnSystemEvent
callback. - Triggers
on_initialize
for all pallets, not justParachainSystem
. - Triggers
on_finalize
for all pallets, not justParachainSystem
. - 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
This release contains the changes from polkadot-stable2412-4
to polkadot-stable2412-5
.
ℹ️ Please note:
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 Location
s 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
This release contains the changes from polkadot-stable2409-6
to polkadot-stable2409-7
.
ℹ️ Please note:
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
This release contains changes from polkadot-stable2407-8
to polkadot-stable2407-9
.
ℹ️ Please note:
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
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...
Polkadot stable2412-4
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
his release contains the changes from polkadot-stable2409-5
to polkadot-stable2409-6
.
ℹ️ Please note:
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"