Repository navigation
Releases: paritytech/polkadot-sdk
Release list
Polkadot stable2609
This release contains the changes from polkadot-stable2606 to polkadot-stable2609.
ℹ️ Once published, polkadot-stable2609 will also be tagged as polkadot-v1.25.0; the node version for this release is v1.25.0.
ℹ️ Due to the decommissioning of the Debian bullseye build, starting from the stable release stable2612, all published binaries will be built on the Debian bookworm distribution. Please see the instructions on the Polkadot Forum
📦 The complete changelog with full descriptions is attached to this release as CHANGELOG.md, and in machine-readable form as changelog.json.
💥 Breaking Changes
88 changes are breaking according to Rust SemVer (each bumps the major version of at least one crate). Details in the 💥-marked entries below.
- Bridges: #11147 Track nested memory used by
xcm::DoubleEncoded: approach #2 (staging-xcm,staging-xcm-executor) - Bridges: #12159 Snowbridge: blocks an origin-spoofing attack vector in the V2 outbound queue converter (
snowbridge-outbound-queue-primitives) - Bridges: #12585 Remove Polkadot Bulletin bridge code (
bridge-hub-rococo-runtime,bp-bridge-hub-rococo) - Bridges: #12935 Update trie-db to 0.32.0 (
sp-trie) - XCM: #12369 pallet-asset-conversion: support per-pair swap fee (fallback to global LPFee) (
pallet-asset-conversion) - XCM: #12472 Remove deprecated ConvertedConcreteAssetId type alias (
staging-xcm-builder) - XCM: #12482 Remove deprecated FilterAssetLocation trait (
staging-xcm-executor) - XCM: #12502 Remove deprecated ForeignChainAliasAccount type alias (
staging-xcm-builder) - XCM: #12503 Remove deprecated CurrencyAdapter from staging-xcm-builder (
staging-xcm-builder) - XCM: #12504 Remove deprecated UnpaidLocalExporter from staging-xcm-builder (
staging-xcm-builder) - XCM: #12505 Remove deprecated JustTry and Identity re-exports from xcm-executor (
staging-xcm-executor) - Smart Contracts (Revive): #12037 [pallet-revive]: move eth-rpc-only types out of pallet-revive (
pallet-revive-eth-rpc,pallet-revive) - Smart Contracts (Revive): #12096 Bump subxt to 0.50 (
pallet-revive-eth-rpc,frame-benchmarking-cli) - Smart Contracts (Revive): #12104 pallet-revive: per-transaction cold/hot storage access pricing (
pallet-revive) - Smart Contracts (Revive): #12220 pallet-revive eth-rpc: make SubmittedTransaction::gas() return Option (
pallet-revive-eth-rpc) - Smart Contracts (Revive): #12244 [pallet-revive]: Version the
trace_blockruntime API function (pallet-revive,pallet-revive-eth-rpc) - Smart Contracts (Revive): #12374 Fix resource exhaustion when replaying finalized-block transactions (
sc-rpc-api,sc-rpc) - Smart Contracts (Revive): #12474 pallet-revive: support finalized/safe/pending block tags in eth_getLogs (
pallet-revive-eth-rpc) - Smart Contracts (Revive): #12522 [pallet-revive] Test Versioning Invariants and Conventions (
pallet-revive,pallet-revive-types,pallet-revive-eth-rpc,revive-dev-runtime) - Smart Contracts (Revive): #12536 [pallet-revive] Version the Remaining Runtime API Functions (
pallet-revive-eth-rpc,pallet-revive,pallet-revive-types,revive-dev-runtime) - Smart Contracts (Revive): #12599 pallet-revive: bench the overlay overhead of hot storage accesses (
asset-hub-westend-runtime,pallet-revive) - Smart Contracts (Revive): #12636 pallet-revive: implement eth_getBlockReceipts (
pallet-revive-eth-rpc) - Smart Contracts (Revive): #12796 [pallet-revive] Report untraced transactions instead of omitting them (
pallet-revive-types) - Smart Contracts (Revive): #12802 pallet-revive: make the first hot write after a cold read pay the deferred cost (
pallet-revive) - Smart Contracts (Revive): #13400 pallet-revive: benchmark some EVM arithmetic op-codes (
pallet-revive) - Staking & Elections: #11336 Add deferred dispatch support (
pallet-whitelist) - Staking & Elections: #11940 Post AHM Cleanup: Remove Staking (and friends) from Westend Runtime. (
westend-runtime,pallet-staking-async-ah-client) - Staking & Elections: #12323 Decouple unbonding pool bound from bonding duration (
pallet-nomination-pools) - Staking & Elections: #12381 Introduce
chill_inactiveextrinsic to thepallet-staking-async(pallet-staking-async,asset-hub-westend-runtime) - Staking & Elections: #12542 Beefy: Make the equivocation time slot more generic (
pallet-beefy,pallet-offences,sp-staking) - Staking & Elections: #12630
staking-async: include the unlock era in the Unbonded event (pallet-staking-async) - Staking & Elections: #12654 Remove deprecated pallet_staking::ExposureOf. (
pallet-staking) - Staking & Elections: #12664 Remove deprecated TREASURER_INDEX constants (
westend-runtime-constants,pallet-staking-async-rc-runtime-constants) - Staking & Elections: #12843 [EPMB] Add configurable reward source and slash destination to signed phase (
pallet-election-provider-multi-block) - Staking & Elections: #12877 [EPMB] bound the tx-fee refund of a signed submission (
pallet-election-provider-multi-block) - Coretime: #10188 Add
sale_indexfield to CoretimeSaleInfoRecord(pallet-broker) - Coretime: #11810 Introduce
fp-coretimeprimitives crate (pallet-broker) - Coretime: #12750 [pallet-broker] Prevent auto-renewal from renewing another task's workload (
pallet-broker) - Governance: #11045 [pallet-bounties]: add
reclaim_bounty_fundsto reclaim stranded funds from closed bounty accounts (pallet-bounties,rococo-runtime) - Assets: #12366 pallet-assets: enforce full deposit transfer in transfer_ownership (
pallet-assets) - Parachains (protocol): #11909 [dmp] Use page queue instead of single vec (
polkadot-runtime-parachains,polkadot-runtime-common,rococo-runtime,westend-runtime) - Parachains (protocol): #12156 Remove deprecated migration::remove_storage_prefix (
frame-support) - Parachains (protocol): #12172 Collation protocol v4 with bounded segment advertisements (
polkadot-node-network-protocol,polkadot-collator-protocol,polkadot-node-primitives,polkadot-node-subsystem-typesand 4 more) - Parachains (protocol): #12251 Remove deprecated RelaychainBlockNumberProvider type alias (
cumulus-pallet-parachain-system) - Parachains (protocol): #12391 Fix
AllowedRelayParentInfooff by one error (polkadot-runtime-parachains) - Parachains (protocol): #13009 Move on-demand coretime orders to the Coretime chain (
pallet-on-demand-para,polkadot-runtime-parachains) - Node: #11954 Cumulus: introduce authority discovery for parachains (
polkadot-omni-node-lib,sc-network-sync) - Node: #12296 Cumulu...
Polkadot stable2606-3
This release contains the changes from polkadot-stable2606-2 to polkadot-stable2606-3.
ℹ️ Please note: this is a patch release for the latest stable version stable2606. If your nodes are already running on this stable release, you should upgrade to this patch version to get the latest fixes.
Once published, polkadot-stable2606-3 will also be tagged as polkadot-v1.24.3; the node version for this release is v1.24.3.
The following crates were updated to the corresponding versions:
Changed crates:
- sc-network-types@0.23.3
- hrmp-primitives@0.2.1
- node-primitives@0.2.1
- registrar-primitives@0.2.1
- sc-network-common@48.0.0
- sc-transaction-pool-api@48.0.0
- pallet-hrmp-para@0.2.0
- pallet-hrmp-relay@0.2.0
- pallet-offences@0.2.0
- pallet-registrar-para@0.2.0
- pallet-registrar-relay@0.2.0
- pallet-root-testing@0.58.0
- sc-basic-authorship@0.58.0
- sc-client-api@49.0.0
- sc-hop@0.4.0
- cumulus-client-proof-size-recording@0.5.0
- sc-client-db@0.56.0
- sc-consensus@0.60.0
- sc-network@0.61.0
- sc-tracing@49.0.0
- sc-transaction-pool@49.0.0
- pallet-session@49.0.1
- sc-chain-spec@54.0.0
- sc-consensus-epochs@0.60.0
- sc-consensus-pow@0.60.0
- sc-consensus-slots@0.60.0
- sc-mixnet@0.31.0
- sc-network-light@0.60.0
- sc-network-sync@0.60.0
- sc-offchain@56.0.0
- mmr-gadget@56.0.0
- sc-consensus-aura@0.61.0
- sc-consensus-babe@0.61.0
- sc-informant@0.60.0
- sc-network-gossip@0.61.0
- sc-network-statement@0.44.0
- sc-network-transactions@0.60.0
- sc-rpc-api@0.61.0
- staging-chain-spec-builder@22.0.0
- pallet-collator-selection@30.0.1
- sc-consensus-babe-rpc@0.62.0
- sc-consensus-beefy@40.0.0
- sc-consensus-grandpa@0.46.0
- sc-consensus-manual-seal@0.62.0
- sc-rpc-server@34.0.0
- sc-statement-store@33.0.0
- substrate-frame-rpc-support@57.0.0
- substrate-frame-rpc-system@56.0.0
- substrate-rpc-client@0.61.0
- substrate-state-trie-migration-rpc@55.0.0
- frame-remote-externalities@0.63.0
- sc-rpc@57.0.0
- sc-sync-state-rpc@0.61.0
- pallet-election-provider-multi-phase@52.0.0
- pallet-state-trie-migration@58.0.0
- sc-consensus-beefy-rpc@41.0.0
- sc-consensus-grandpa-rpc@0.47.0
- sc-rpc-spec-v2@0.62.0
- polkadot-rpc@37.0.0
- polkadot-runtime-common@33.0.0
- sc-service@0.63.0
- cumulus-pallet-xcmp-queue@0.34.0
- cumulus-primitives-utility@0.34.0
- pallet-staking-async-rc-runtime-constants@0.15.0
- rococo-runtime-constants@34.0.0
- sc-authority-discovery@0.62.0
- sc-cli@0.64.0
- westend-runtime-constants@34.0.0
- cumulus-client-cli@0.35.0
- parachains-common@38.0.0
- polkadot-node-metrics@35.0.0
- polkadot-node-network-protocol@35.0.0
- rococo-runtime@38.0.0
- staging-node-inspect@0.40.0
- subkey@37.0.0
- testnet-parachains-constants@27.0.0
- westend-runtime@39.0.0
- assets-common@0.39.0
- bp-bridge-hub-cumulus@0.38.0
- collectives-westend-runtime@36.0.0
- coretime-westend-runtime@0.32.0
- glutton-westend-runtime@34.0.0
- parachains-runtimes-test-utils@39.0.0
- people-westend-runtime@0.32.0
- polkadot-node-subsystem-types@35.0.0
- polkadot-voter-bags@39.0.0
- xcm-emulator@0.37.0
- asset-test-utils@41.0.0
- bp-asset-hub-rococo@0.34.0
- bp-asset-hub-westend@0.33.0
- bp-bridge-hub-rococo@0.38.0
- bp-bridge-hub-westend@0.34.0
- penpal-runtime@0.47.0
- polkadot-overseer@35.0.0
- snowbridge-inbound-queue-primitives@0.20.0
- snowbridge-runtime-test-common@0.33.0
- asset-hub-rococo-runtime@0.43.0
- asset-hub-westend-runtime@0.56.0
- bridge-hub-test-utils@0.40.0
- cumulus-relay-chain-interface@0.35.0
- emulated-integration-tests-common@40.0.0
- polkadot-node-subsystem@35.0.0
- snowbridge-pallet-inbound-queue-fixtures@0.39.0
- snowbridge-pallet-inbound-queue-v2-fixtures@0.20.0
- cumulus-client-bootnodes@0.14.0
- cumulus-client-network@0.35.0
- cumulus-client-parachain-inherent@0.29.0
- cumulus-relay-chain-rpc-interface@0.35.0
- cumulus-relay-chain-streams@0.13.0
- polkadot-network-bridge@35.0.0
- polkadot-node-core-chain-api@35.0.0
- polkadot-node-core-parachains-inherent@35.0.0
- polkadot-node-core-pvf@35.0.0
- polkadot-node-core-runtime-api@35.0.0
- polkadot-node-subsystem-util@35.0.0
- snowbridge-pallet-inbound-queue@0.31.0
- snowbridge-pallet-inbound-queue-v2@0.20.0
- bridge-hub-rococo-runtime@0.38.0
- bridge-hub-westend-runtime@0.35.0
- cumulus-client-pov-recovery@0.35.0
- frame-benchmarking-cli@62.0.0
- polkadot-approval-distribution@35.0.0
- polkadot-availability-bitfield-distribution@35.0.0
- polkadot-availability-distribution@35.0.0
- polkadot-availability-recovery@35.0.0
- polkadot-collator-protocol@35.0.0
- polkadot-dispute-distribution@35.0.0
- polkadot-gossip-support@35.0.0
- polkadot-node-collation-generation@35.0.0
- polkadot-node-core-approval-voting@35.0.0
- polkadot-node-core-av-store@35.0.0
- polkadot-node-core-backing@35.0.0
- polkadot-node-core-bitfield-signing@35.0.0
- polkadot-node-core-candidate-validation@35.0.0
- polkadot-node-core-chain-selection@35.0.0
- polkadot-node-core-dispute-coordinator@35.0.0
- polkadot-node-core-prospective-parachains@34.0.0
- polkadot-node-core-provisioner@35.0.0
- polkadot-node-core-pvf-checker@35.0.0
- polkadot-statement-distribution@35.0.0
- cumulus-client-consensus-common@0.35.0
- polkadot-node-core-approval-voting-parallel@0.18.0
- cumulus-client-collator@0.35.0
- cumulus-client-consensus-relay-chain@0.35.0
- polkadot-service@40.0.0
- cumulus-client-consensus-aura@0.35.0
- cumulus-relay-chain-minimal-node@0.40.0
- polkadot-cli@40.0.0
- cumulus-relay-chain-inprocess-interface@0.40.0
- polkadot-jemalloc-shim@0.10.0
- cumulus-client-service@0.40.0
- frame-omni-bencher@0.26.0
- polkadot@39.0.0
- polkadot-omni-node-lib@0.22.0
- polkadot-omni-node@0.22.0
- polkadot-sdk@2606.5.0
- pallet-revive-eth-rpc@0.23.0
ℹ️ Due to the decommissioning of the Debian bullseye build, starting from the stable release stable2612, all published binaries will be built on the Debian bookworm distribution. Please see the instructions on the Polkadot Forum
📦 The complete changelog with full descriptions is attached to this release as CHANGELOG.md, and in machine-readable form as changelog.json.
💥 Breaking Changes
1 change is breaking according to Rust SemVer (each bumps the major version of at least one crate). Details in the 💥-marked entries below.
- Node: #12433 txpool: maintain the transaction pool on every imported block (all forks) (
sc-transaction-pool-api,sc-transaction-pool,sc-cli)
Changelog
Staking & Elections
🛠️ Runtime Dev
#13337: session: fix benchmarks with non-zero KeyDeposit
pallet_session::Pallet::ensure_can_pay_key_deposit now mints the key deposit on top of the account's existing balance. Previously it counted existing free balance towards the deposit, so the key hold consumed funds the benchmark set up for other purposes. This made the pallet-collator-selection register_as_candidate and take_candidate_slot benchmarks fail on runtimes with a non-zero session KeyDeposit.
Crates: pallet-session (patch), pallet-collator-selection (patch)
Node
🔧 Node Dev
💥 #12433: txpool: maintain the transaction pool on every imported block (all forks)
Also for Node Operator
The fork-aware transaction pool is now maintained on every imported block, not only on blocks imported as the new best, so it builds a view for all forks. The new --pool-best-blocks-only flag restores the previous best-blocks-only behavior. The flag only affects the fork-aware pool; the single-state pool is always maintained on best blocks only.
Breaking: sc-transaction-pool-api, sc-transaction-pool, sc-cli
Other crates: sc-client-api (minor), sc-service (patch)
#11731: fatp: unban viewless transactions after mempool revalidation
In rare cases a transaction valid at the finalized block can get stuck in the fork-aware pool. If it receives InvalidTransaction on one fork, the view's rotator bans it and the ban propagates to all new views (rotator is cloned). The tx stays in the mempool but is silently rejected from every view for the ban duration (default 30 min).
Fix: track ban reason (Validation vs LimitsEnforced). When a ready tx loses all views, emit a Viewless event and flag it for unbanning. On the next mempool revalidation, if the tx is valid at the finalized block, clear Validation bans across all views. If still invalid, remove from mempool.
Crates: sc-transaction-pool (patch)
#11733: fatxpool: invalid inblock event fixed
Fixes a false InBlock (and cascading Finalized) event in the fork-aware transaction pool when a replaced transaction (same sender+nonce, higher priority) had its original version included in a block by another node. The faulty "pruned-by-tag + invalid-on-resubmit => in block" inference in resubmit_pruned is removed, so InBlock now fires only for hashes actually present in the imported block body.
Crates: sc-transaction-pool (minor)
#12362: fatxpool: preserve order of same-priority transactions on re-o...
Polkadot stable2603-7
This release contains the changes from polkadot-stable2603-6 to polkadot-stable2603-7.
ℹ️ Please note: stable2603 and contains only patches and fixes to the crates (list below). No binary or docker images will be provided for this release.
Once published, polkadot-stable2603-7 will also be tagged as polkadot-v1.22.7.
The following crates were updated to the corresponding versions:
Changed crates:
- sc-rpc-server@28.1.0
📦 The complete changelog with full descriptions is attached to this release as CHANGELOG.md, and in machine-readable form as changelog.json.
💥 Breaking Changes
None in this release.
Changelog
Node
🖥️ Node Operator
#13045: sc-rpc-server: bound the cardinality of the RPC metrics method label
The substrate_rpc_calls_* metrics used the requested method name as the method label without restricting it to registered methods, so the label could take an unbounded number of values. The label is now bounded to the registered method set; any other name is recorded as unknown, keeping the series count finite.
RpcMetrics::with_known_methods sets the allowlist and the RPC server wires it at start; a metrics instance without it keeps the previous behaviour.
Crates: sc-rpc-server (minor)
Rust compiler versions
The crates and node binaries in this release were built and tested with the following rustc toolchain; other versions may work.
- Rust Stable:
1.93.0
Polkadot polkadot-stable2609-rc2
This release contains the changes from polkadot-stable2606 to polkadot-stable2609.
The currently published version is a pre-release and is not yet a final stable version. This release is provided for testing purposes only, and there is no guarantee that everything will work as expected. Errors and unusual behaviours of some features are to be expected.
Please use this version at your own risk and report any issues you encounter. We recommend waiting for the official release if you need a stable version.
📦 The complete changelog with full descriptions is attached to this release as CHANGELOG.md, and in machine-readable form as changelog.json.
💥 Breaking Changes
85 changes are breaking according to Rust SemVer (each bumps the major version of at least one crate). Details in the 💥-marked entries below.
- Bridges: #11147 Track nested memory used by
xcm::DoubleEncoded: approach #2 (staging-xcm,staging-xcm-executor) - Bridges: #12159 Snowbridge: blocks an origin-spoofing attack vector in the V2 outbound queue converter (
snowbridge-outbound-queue-primitives) - Bridges: #12585 Remove Polkadot Bulletin bridge code (
bridge-hub-rococo-runtime,bp-bridge-hub-rococo) - Bridges: #12935 Update trie-db to 0.32.0 (
sp-trie) - XCM: #12369 pallet-asset-conversion: support per-pair swap fee (fallback to global LPFee) (
pallet-asset-conversion) - XCM: #12472 Remove deprecated ConvertedConcreteAssetId type alias (
staging-xcm-builder) - XCM: #12482 Remove deprecated FilterAssetLocation trait (
staging-xcm-executor) - XCM: #12502 Remove deprecated ForeignChainAliasAccount type alias (
staging-xcm-builder) - XCM: #12503 Remove deprecated CurrencyAdapter from staging-xcm-builder (
staging-xcm-builder) - XCM: #12504 Remove deprecated UnpaidLocalExporter from staging-xcm-builder (
staging-xcm-builder) - XCM: #12505 Remove deprecated JustTry and Identity re-exports from xcm-executor (
staging-xcm-executor) - Smart Contracts (Revive): #12037 [pallet-revive]: move eth-rpc-only types out of pallet-revive (
pallet-revive-eth-rpc,pallet-revive) - Smart Contracts (Revive): #12096 Bump subxt to 0.50 (
pallet-revive-eth-rpc,frame-benchmarking-cli) - Smart Contracts (Revive): #12104 pallet-revive: per-transaction cold/hot storage access pricing (
pallet-revive) - Smart Contracts (Revive): #12220 pallet-revive eth-rpc: make SubmittedTransaction::gas() return Option (
pallet-revive-eth-rpc) - Smart Contracts (Revive): #12244 [pallet-revive]: Version the
trace_blockruntime API function (pallet-revive,pallet-revive-eth-rpc) - Smart Contracts (Revive): #12374 Fix resource exhaustion when replaying finalized-block transactions (
sc-rpc-api,sc-rpc) - Smart Contracts (Revive): #12474 pallet-revive: support finalized/safe/pending block tags in eth_getLogs (
pallet-revive-eth-rpc) - Smart Contracts (Revive): #12522 [pallet-revive] Test Versioning Invariants and Conventions (
pallet-revive,pallet-revive-types,pallet-revive-eth-rpc,revive-dev-runtime) - Smart Contracts (Revive): #12536 [pallet-revive] Version the Remaining Runtime API Functions (
pallet-revive-eth-rpc,pallet-revive,pallet-revive-types,revive-dev-runtime) - Smart Contracts (Revive): #12599 pallet-revive: bench the overlay overhead of hot storage accesses (
asset-hub-westend-runtime,pallet-revive) - Smart Contracts (Revive): #12636 pallet-revive: implement eth_getBlockReceipts (
pallet-revive-eth-rpc) - Smart Contracts (Revive): #12796 [pallet-revive] Report untraced transactions instead of omitting them (
pallet-revive-types) - Smart Contracts (Revive): #12802 pallet-revive: make the first hot write after a cold read pay the deferred cost (
pallet-revive) - Staking & Elections: #11336 Add deferred dispatch support (
pallet-whitelist) - Staking & Elections: #11940 Post AHM Cleanup: Remove Staking (and friends) from Westend Runtime. (
westend-runtime,pallet-staking-async-ah-client) - Staking & Elections: #12323 Decouple unbonding pool bound from bonding duration (
pallet-nomination-pools) - Staking & Elections: #12381 Introduce
chill_inactiveextrinsic to thepallet-staking-async(pallet-staking-async,asset-hub-westend-runtime) - Staking & Elections: #12542 Beefy: Make the equivocation time slot more generic (
pallet-beefy,pallet-offences,sp-staking) - Staking & Elections: #12630
staking-async: include the unlock era in the Unbonded event (pallet-staking-async) - Staking & Elections: #12654 Remove deprecated pallet_staking::ExposureOf. (
pallet-staking) - Staking & Elections: #12664 Remove deprecated TREASURER_INDEX constants (
westend-runtime-constants,pallet-staking-async-rc-runtime-constants) - Staking & Elections: #12843 [EPMB] Add configurable reward source and slash destination to signed phase (
pallet-election-provider-multi-block) - Staking & Elections: #12877 [EPMB] bound the tx-fee refund of a signed submission (
pallet-election-provider-multi-block) - Coretime: #10188 Add
sale_indexfield to CoretimeSaleInfoRecord(pallet-broker) - Coretime: #11810 Introduce
fp-coretimeprimitives crate (pallet-broker) - Coretime: #12750 [pallet-broker] Prevent auto-renewal from renewing another task's workload (
pallet-broker) - Governance: #11045 [pallet-bounties]: add
reclaim_bounty_fundsto reclaim stranded funds from closed bounty accounts (pallet-bounties,rococo-runtime) - Assets: #12366 pallet-assets: enforce full deposit transfer in transfer_ownership (
pallet-assets) - Parachains (protocol): #11909 [dmp] Use page queue instead of single vec (
polkadot-runtime-parachains,polkadot-runtime-common,rococo-runtime,westend-runtime) - Parachains (protocol): #12156 Remove deprecated migration::remove_storage_prefix (
frame-support) - Parachains (protocol): #12172 Collation protocol v4 with bounded segment advertisements (
polkadot-node-network-protocol,polkadot-collator-protocol,polkadot-node-primitives,polkadot-node-subsystem-typesand 4 more) - Parachains (protocol): #12251 Remove deprecated RelaychainBlockNumberProvider type alias (
cumulus-pallet-parachain-system) - Parachains (protocol): #12391 Fix
AllowedRelayParentInfooff by one error (polkadot-runtime-parachains) - Node: #11954 Cumulus: introduce authority discovery for parachains (
polkadot-omni-node-lib,sc-network-sync) - Node: #12296 Cumulus v3:
find_parent()adjustments (cumulus-client-consensus-common) - Node: #12395 Cumulus v3 add more test cases + cosmetics (
cumulus-client-consensus-common) - Node: #12433 txpool: maintain the transaction pool on every imported block (all forks) (
sc-transaction-pool-api, `sc-transacti...
Polkadot stable2606-2
This release contains the changes from polkadot-stable2606-1 to polkadot-stable2606-2.
ℹ️ Please note: this is a patch release for the latest stable version stable2606. If your nodes are already running on this stable release, you should upgrade to this patch version to get the latest fixes.
Once published, polkadot-stable2606-2 will also be tagged as polkadot-v1.24.2; the node version for this release is v1.24.2.
The following crates were updated to the corresponding versions:
Crates list
- frame-support@48.1.0
- pallet-assets@53.0.0
- pallet-assets-holder@0.13.0
- pallet-assets-freezer@0.18.0
- pallet-assets-precompiles@0.11.1
- pallet-nft-fractionalization@34.0.0
- cumulus-pallet-parachain-system@0.30.0
- pallet-xcm-bridge-hub-router@0.28.0
- xcm-simulator@30.0.0
- cumulus-pallet-aura-ext@0.30.0
- cumulus-pallet-solo-to-para@0.30.0
- frame-storage-access-test-runtime@0.11.0
- pallet-contracts-mock-network@29.0.0
- sp-runtime-interface-proc-macro@21.0.1
- staging-xcm@24.1.0
- pallet-accumulate-and-forward@0.4.1
- pallet-broker@0.29.0
- pallet-psm@0.5.1
- staging-xcm-executor@28.0.1
- staging-xcm-builder@29.0.1
- pallet-xcm@29.1.0
- pallet-xcm-precompiles@0.9.1
- polkadot-runtime-parachains@29.0.0
- sp-blockchain@46.0.1
- sc-client-api@47.0.1
- sc-network-types@0.23.1
- sc-consensus@0.58.0
- sc-network@0.59.1
- sc-chain-spec@52.0.0
- sc-consensus-epochs@0.58.0
- sc-consensus-pow@0.58.0
- sc-consensus-slots@0.58.0
- sc-mixnet@0.29.0
- sc-network-light@0.58.0
- sc-network-sync@0.58.0
- sc-offchain@54.0.0
- mmr-gadget@54.0.0
- sc-consensus-aura@0.59.0
- sc-consensus-babe@0.59.0
- sc-informant@0.58.0
- sc-network-gossip@0.59.0
- sc-network-statement@0.42.0
- sc-network-transactions@0.58.0
- sc-rpc-api@0.59.0
- staging-chain-spec-builder@20.0.0
- pallet-staking-async@0.15.0
- sc-consensus-babe-rpc@0.60.0
- sc-consensus-beefy@38.0.0
- sc-consensus-grandpa@0.44.0
- sc-consensus-manual-seal@0.60.0
- pallet-vesting-precompiles@0.5.1
- sc-rpc-server@32.1.0
- sc-statement-store@31.0.0
- substrate-frame-rpc-support@55.0.0
- substrate-frame-rpc-system@54.0.0
- substrate-rpc-client@0.59.0
- substrate-state-trie-migration-rpc@53.0.0
- frame-remote-externalities@0.61.0
- pallet-nomination-pools-benchmarking@48.0.0
- sc-rpc@55.0.0
- sc-sync-state-rpc@0.59.0
- pallet-election-provider-multi-phase@50.0.0
- pallet-state-trie-migration@56.0.0
- sc-consensus-beefy-rpc@39.0.0
- sc-consensus-grandpa-rpc@0.45.0
- sc-rpc-spec-v2@0.60.0
- polkadot-rpc@35.0.0
- polkadot-runtime-common@31.0.0
- sc-service@0.61.0
- xcm-simulator-example@31.0.0
- cumulus-pallet-xcmp-queue@0.32.0
- cumulus-primitives-utility@0.32.0
- pallet-staking-async-rc-runtime-constants@0.13.0
- rococo-runtime-constants@32.0.0
- sc-authority-discovery@0.60.0
- sc-cli@0.62.0
- westend-runtime-constants@32.0.0
- cumulus-client-cli@0.33.0
- parachains-common@36.0.0
- polkadot-node-metrics@33.0.0
- polkadot-node-network-protocol@33.0.0
- rococo-runtime@36.0.0
- staging-node-inspect@0.38.0
- subkey@35.0.0
- testnet-parachains-constants@25.0.0
- westend-runtime@37.0.0
- assets-common@0.37.0
- bp-bridge-hub-cumulus@0.36.0
- collectives-westend-runtime@34.0.0
- coretime-westend-runtime@0.30.0
- glutton-westend-runtime@32.0.0
- parachains-runtimes-test-utils@37.0.0
- people-westend-runtime@0.30.0
- polkadot-node-subsystem-types@33.0.0
- polkadot-voter-bags@37.0.0
- xcm-emulator@0.35.0
- asset-test-utils@39.0.0
- bp-asset-hub-rococo@0.32.0
- bp-asset-hub-westend@0.31.0
- bp-bridge-hub-rococo@0.36.0
- bp-bridge-hub-westend@0.32.0
- penpal-runtime@0.45.0
- polkadot-overseer@33.0.0
- snowbridge-inbound-queue-primitives@0.18.0
- snowbridge-runtime-test-common@0.31.0
- asset-hub-rococo-runtime@0.41.0
- asset-hub-westend-runtime@0.54.0
- bridge-hub-test-utils@0.38.0
- cumulus-relay-chain-interface@0.33.0
- emulated-integration-tests-common@38.0.0
- polkadot-node-subsystem@33.0.0
- snowbridge-pallet-inbound-queue-fixtures@0.37.0
- snowbridge-pallet-inbound-queue-v2-fixtures@0.18.0
- cumulus-client-bootnodes@0.12.0
- cumulus-client-network@0.33.0
- cumulus-client-parachain-inherent@0.27.0
- cumulus-relay-chain-rpc-interface@0.33.0
- cumulus-relay-chain-streams@0.11.0
- polkadot-network-bridge@33.0.0
- polkadot-node-core-chain-api@33.0.0
- polkadot-node-core-parachains-inherent@33.0.0
- polkadot-node-core-pvf@33.0.0
- polkadot-node-core-runtime-api@33.0.0
- polkadot-node-subsystem-util@33.0.0
- snowbridge-pallet-inbound-queue@0.29.0
- snowbridge-pallet-inbound-queue-v2@0.18.0
- bridge-hub-rococo-runtime@0.36.0
- bridge-hub-westend-runtime@0.33.0
- cumulus-client-pov-recovery@0.33.0
- frame-benchmarking-cli@60.0.0
- polkadot-approval-distribution@33.0.0
- polkadot-availability-bitfield-distribution@33.0.0
- polkadot-availability-distribution@33.0.0
- polkadot-availability-recovery@33.0.0
- polkadot-collator-protocol@33.0.0
- polkadot-dispute-distribution@33.0.0
- polkadot-gossip-support@33.0.0
- polkadot-node-collation-generation@33.0.0
- polkadot-node-core-approval-voting@33.0.0
- polkadot-node-core-av-store@33.0.0
- polkadot-node-core-backing@33.0.0
- polkadot-node-core-bitfield-signing@33.0.0
- polkadot-node-core-candidate-validation@33.0.0
- polkadot-node-core-chain-selection@33.0.0
- polkadot-node-core-dispute-coordinator@33.0.0
- polkadot-node-core-prospective-parachains@32.0.0
- polkadot-node-core-provisioner@33.0.0
- polkadot-node-core-pvf-checker@33.0.0
- polkadot-statement-distribution@33.0.0
- cumulus-client-consensus-common@0.33.0
- polkadot-node-core-approval-voting-parallel@0.16.0
- cumulus-client-collator@0.33.0
- cumulus-client-consensus-relay-chain@0.33.0
- polkadot-service@38.0.0
- cumulus-client-consensus-aura@0.33.0
- cumulus-relay-chain-minimal-node@0.38.0
- polkadot-cli@38.0.0
- cumulus-relay-chain-inprocess-interface@0.38.0
- polkadot-jemalloc-shim@0.8.0
- cumulus-client-service@0.38.0
- frame-omni-bencher@0.24.0
- polkadot@37.0.0
- polkadot-omni-node-lib@0.20.0
- polkadot-omni-node@0.20.0
- polkadot-sdk@2606.4.0
- pallet-revive-eth-rpc@0.21.0
- pallet-revive-uapi@0.15.1
- pallet-revive-fixtures@0.15.1
- substrate-wasm-builder@34.0.1
- sc-hop@0.2.1
- pallet-revive@0.19.1
ℹ️ Due to the decommissioning of the Debian bullseye build, starting from the stable release stable2612, all published binaries will be built on the Debian bookworm distribution. More instructions to follow on the forum — please keep an eye out.
📦 The complete changelog with full descriptions is attached to this release as CHANGELOG.md, and in machine-readable form as changelog.json.
💥 Breaking Changes
7 changes are breaking according to Rust SemVer (each bumps the major version of at least one crate). Details in the 💥-marked entries below.
- XCM: #12378 pallet-assets: allow force_create to set an arbitrary asset id when auto-increment is enabled (
pallet-assets) - Staking & Elections: #11979 Scale validator self-stake incentive by era-points performance (
pallet-staking-async) - Coretime: #12750 [pallet-broker] Prevent auto-renewal from renewing another task's workload (
pallet-broker) - Assets: #12245 pallet-psm: multi-instance, permissionless Peg Stability Modules (
pallet-psm,asset-hub-westend-runtime) - Node: #12315 feat(webrtc): add experimental WebRTC transport to litep2p backend (
sc-cli,sc-network,sc-network-types) - Node: #12870 network: Enable WebRTC by default on full nodes (
sc-cli,sc-network,sc-network-types) - FRAME & Runtime: #13153
pallet-accumulate-and-forward: measure the transfer period from the last forward (emulated-integration-tests-common)
Changelog
XCM
🛠️ Runtime Dev
💥 #12378: pallet-assets: allow force_create to set an arbitrary asset id when auto-increment is enabled
force_create no longer requires the asset id to equal NextAssetId: a ForceOrigin may create an asset with any id not currently in use, and the id is then marked as allocated so it can never later collide. Asset id allocation is now configured explicitly via the new Config::AssetIdAllocator (AutoIncAssetId for auto-incrementing ids, () for none), replacing the implicit NextAssetId-is-Some plus AutoIncAssetId callback mechanism. Only the force_create call is relaxed; fungibles::Create::create is not gated on ForceOrigin and still requires the id the allocator dictates. …
Breaking: pallet-assets
Other crates: asset-hub-rococo-runtime (minor), asset-hub-westend-runtime (minor), penpal-runtime (patch), pallet-contracts-mock-network (minor), pallet-asset-conversion (none), `pallet-asset-conversion-tx-paym...
Polkadot polkadot-stable2609-rc1
This release contains the changes from polkadot-stable2606 to polkadot-stable2609.
The currently published version is a pre-release and is not yet a final stable version. This release is provided for testing purposes only, and there is no guarantee that everything will work as expected. Errors and unusual behaviours of some features are to be expected.
Please use this version at your own risk and report any issues you encounter. We recommend waiting for the official release if you need a stable version.
📦 The complete changelog with full descriptions is attached to this release as CHANGELOG.md, and in machine-readable form as changelog.json.
💥 Breaking Changes
87 changes are breaking according to Rust SemVer (each bumps the major version of at least one crate). Details in the 💥-marked entries below.
- Bridges: #11147 Track nested memory used by
xcm::DoubleEncoded: approach #2 (staging-xcm,staging-xcm-executor) - Bridges: #12159 Snowbridge: blocks an origin-spoofing attack vector in the V2 outbound queue converter (
snowbridge-outbound-queue-primitives) - Bridges: #12585 Remove Polkadot Bulletin bridge code (
bridge-hub-rococo-runtime,bp-bridge-hub-rococo) - Bridges: #12935 Update trie-db to 0.32.0 (
sp-trie) - XCM: #12369 pallet-asset-conversion: support per-pair swap fee (fallback to global LPFee) (
pallet-asset-conversion) - XCM: #12378 pallet-assets: allow force_create to set an arbitrary asset id when auto-increment is enabled (
pallet-assets) - XCM: #12472 Remove deprecated ConvertedConcreteAssetId type alias (
staging-xcm-builder) - XCM: #12482 Remove deprecated FilterAssetLocation trait (
staging-xcm-executor) - XCM: #12502 Remove deprecated ForeignChainAliasAccount type alias (
staging-xcm-builder) - XCM: #12503 Remove deprecated CurrencyAdapter from staging-xcm-builder (
staging-xcm-builder) - XCM: #12504 Remove deprecated UnpaidLocalExporter from staging-xcm-builder (
staging-xcm-builder) - XCM: #12505 Remove deprecated JustTry and Identity re-exports from xcm-executor (
staging-xcm-executor) - XCM: #12832 pallet-xcm: weight asset claiming and precompile XCM input by their real size (
pallet-xcm) - Smart Contracts (Revive): #12037 [pallet-revive]: move eth-rpc-only types out of pallet-revive (
pallet-revive-eth-rpc,pallet-revive) - Smart Contracts (Revive): #12096 Bump subxt to 0.50 (
pallet-revive-eth-rpc,frame-benchmarking-cli) - Smart Contracts (Revive): #12104 pallet-revive: per-transaction cold/hot storage access pricing (
pallet-revive) - Smart Contracts (Revive): #12220 pallet-revive eth-rpc: make SubmittedTransaction::gas() return Option (
pallet-revive-eth-rpc) - Smart Contracts (Revive): #12244 [pallet-revive]: Version the
trace_blockruntime API function (pallet-revive,pallet-revive-eth-rpc) - Smart Contracts (Revive): #12374 Fix resource exhaustion when replaying finalized-block transactions (
sc-rpc-api,sc-rpc) - Smart Contracts (Revive): #12474 pallet-revive: support finalized/safe/pending block tags in eth_getLogs (
pallet-revive-eth-rpc) - Smart Contracts (Revive): #12522 [pallet-revive] Test Versioning Invariants and Conventions (
pallet-revive,pallet-revive-types,pallet-revive-eth-rpc,revive-dev-runtime) - Smart Contracts (Revive): #12536 [pallet-revive] Version the Remaining Runtime API Functions (
pallet-revive-eth-rpc,pallet-revive,pallet-revive-types,revive-dev-runtime) - Smart Contracts (Revive): #12599 pallet-revive: bench the overlay overhead of hot storage accesses (
asset-hub-westend-runtime,pallet-revive) - Smart Contracts (Revive): #12636 pallet-revive: implement eth_getBlockReceipts (
pallet-revive-eth-rpc) - Smart Contracts (Revive): #12796 [pallet-revive] Report untraced transactions instead of omitting them (
pallet-revive-types) - Smart Contracts (Revive): #12802 pallet-revive: make the first hot write after a cold read pay the deferred cost (
pallet-revive) - Staking & Elections: #11336 Add deferred dispatch support (
pallet-whitelist) - Staking & Elections: #11940 Post AHM Cleanup: Remove Staking (and friends) from Westend Runtime. (
westend-runtime,pallet-staking-async-ah-client) - Staking & Elections: #11979 Scale validator self-stake incentive by era-points performance (
pallet-staking-async) - Staking & Elections: #12323 Decouple unbonding pool bound from bonding duration (
pallet-nomination-pools) - Staking & Elections: #12381 Introduce
chill_inactiveextrinsic to thepallet-staking-async(pallet-staking-async,asset-hub-westend-runtime) - Staking & Elections: #12542 Beefy: Make the equivocation time slot more generic (
pallet-beefy,pallet-offences,sp-staking) - Staking & Elections: #12630
staking-async: include the unlock era in the Unbonded event (pallet-staking-async) - Staking & Elections: #12654 Remove deprecated pallet_staking::ExposureOf. (
pallet-staking) - Staking & Elections: #12664 Remove deprecated TREASURER_INDEX constants (
westend-runtime-constants,pallet-staking-async-rc-runtime-constants) - Coretime: #10188 Add
sale_indexfield to CoretimeSaleInfoRecord(pallet-broker) - Coretime: #11810 Introduce
fp-coretimeprimitives crate (pallet-broker) - Governance: #11045 [pallet-bounties]: add
reclaim_bounty_fundsto reclaim stranded funds from closed bounty accounts (pallet-bounties,rococo-runtime) - Assets: #12245 pallet-psm: multi-instance, permissionless Peg Stability Modules (
pallet-psm,frame-support,asset-hub-westend-runtime) - Assets: #12366 pallet-assets: enforce full deposit transfer in transfer_ownership (
pallet-assets) - Parachains (protocol): #11909 [dmp] Use page queue instead of single vec (
polkadot-runtime-parachains,polkadot-runtime-common,rococo-runtime,westend-runtime) - Parachains (protocol): #12156 Remove deprecated migration::remove_storage_prefix (
frame-support) - Parachains (protocol): #12172 Collation protocol v4 with bounded segment advertisements (
polkadot-node-network-protocol,polkadot-collator-protocol,polkadot-node-primitives,polkadot-node-subsystem-typesand 4 more) - Parachains (protocol): #12251 Remove deprecated RelaychainBlockNumberProvider type alias (
cumulus-pallet-parachain-system) - Parachains (protocol): #12391 Fix
AllowedRelayParentInfooff by one error (polkadot-runtime-parachains) - Node: #11954 Cumulus: introduce authority discovery for parachains (
polkadot-omni-node-lib,sc-network-sync) - Node: #12296 Cumulus v3:
find_parent()adjustments (cumulus-client-consensus-common) - Node: #12315 feat(webrtc): add experimental WebRTC transport to litep2p backend (
sc-cli,sc-network, `...
Polkadot stable2603-6
This release contains the changes from polkadot-stable2606-5 to polkadot-stable2603-6.
ℹ️ Please note:
stable2603 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-stable2603-6 and matching the old pattern will be
available under polkadot-v1.22.6.
The following crates were updated to the corresponding versions:
- sc-consensus-beefy@35.0.1
- sc-consensus-grandpa@0.41.1
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.
[#12767]: grandpa: Revert memory changes synced with db
This PR keeps the in memory changes synced with the DB ones in grandpa
While at it, have added a few tests and changed the API a bit
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).)
Changelog for Node Operator
ℹ️ These changes are relevant to: Those who don't write any code and only run code.
[#12812]: beefy: lower peer reputation for bad responses
Bad BEEFY justifications are refused and also the sending peer penalized.
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.
Rust compiler versions
This release was built and tested against the following versions of rustc.
Other versions may work.
- Rust Stable:
1.93.0
Polkadot stable2512-8
This release contains the changes from polkadot-stable2512-6 to polkadot-stable2512-8.
ℹ️ Please note:
stable2512 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-stable2512-8 and matching the old pattern will be
available under polkadot-v1.21.7.
The following crates were updated to the corresponding versions:
Crates list
- sc-consensus-beefy@34.0.1
- sc-consensus-grandpa@0.40.1
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.
[#12767]: grandpa: Revert memory changes synced with db
This PR keeps the in memory changes synced with the DB ones in grandpa.
While at it, have added a few tests and changed the API a bit
Changelog for Node Operator
ℹ️ These changes are relevant to: Those who don't write any code and only run code.
[#12812]: beefy: lower peer reputation for bad responses
Bad BEEFY justifications are refused and also the sending peer penalized.
Rust compiler versions
This release was built and tested against the following versions of rustc.
Other versions may work.
- Rust Stable:
1.88.0
Polkadot stable2509-11
This release contains the changes from polkadot-stable2509-10 to polkadot-stable2509-11.
ℹ️ Please note:
stable2509 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-stable2509-11 and matching the old pattern will be
available under polkadot-v1.20.10.
The following crates were updated to the corresponding versions:
- sc-consensus-grandpa@0.38.1
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.
[#12767]: grandpa: Revert memory changes synced with db
This PR keeps the in memory changes synced with the DB ones in grandpa
While at it, have added a few tests and changed the API a bit
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).)
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.
Rust compiler versions
This release was built and tested against the following versions of rustc.
Other versions may work.
- Rust Stable:
1.88.0
Polkadot stable2606-1
This release contains the changes from polkadot-stable2606 to polkadot-stable2606-1.
ℹ️ Please note:
This is a patch release for the latest stable version: stable2606. If your nodes are already running on this stable release,
you should upgrade to this patch version to get the latest fixes.
The tag corresponding to the current patch release polkadot-stable2606-1 and matching the old pattern will be
available under polkadot-v1.24.1.
The node version for this release is: v1.24.1
The following crates were updated to the corresponding versions:
Crates list
- sp-database@10.0.2
- pallet-multi-asset-bounties@0.6.1
- pallet-utility@49.0.1
- sc-client-db@0.54.1
- sc-consensus-grandpa@0.43.1
- polkadot-collator-protocol@32.0.1
- polkadot-omni-node-lib@0.18.1
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.
[#12106]: sp-database: aggregate same-key refcount ops within a transaction
Fix a kvdb refcount-leak in sp_database: when one Transaction contains multiple Store/Reference/Release ops on the same key, each op reads a stale on-disk counter and writes back to the same counter key — the underlying DBTransaction keeps only the last put, collapsing N ops to a single ±1. commit_impl now replays per-(col, key) refcount ops in transaction order against one on-disk counter read, then emits one final write per unique key.
[#12388]: collator-protocol revamp: Send RC PeerId with ApprovedPeer UMP signal
Currently the collator sends its parachain PeerId within the ApprovedPeer UMP signal, which is wrong because this peer id is not known on the relay chain.
As a result on CandidateIncluded event the score is bumped for the wrong PeerId and the collator remains with zero reputation no matter its honest work.
[#12260]: collator-protocol revamp: Increase channel size used by the background writer of PersistentDb
Increases the channel capacity used by PersistentDb and PeerManager to avoid delaying PersistenceRequests in spam scenarios.
Introduce a separate log target for the persistent_db module.
[#12767]: grandpa: Revert memory changes synced with db
This PR keeps the in memory changes synced with the DB ones in grandpa.
While at it, have added a few tests and changed the API a bit
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).)
[#12409]: Add increase_value call to pallet-multi-asset-bounties
Adds a curator-gated increase_value(parent_bounty_id, amount) extrinsic that raises an active bounty's recorded value by amount.
Bounty payouts are bounded by the recorded value, not the account balance, so funds transferred into a bounty account out-of-band (e.g. recurring external top-ups) are otherwise unspendable. This call lets the curator register those funds without a
governance round.
Behaviour:
- Only the curator of an
Activebounty may call it; the value is increase-only. - The curator deposit is re-evaluated and any additional hold is collected for the new value.
- Emits
BountyValueIncreased { index, old_value, new_value }. - Parent bounties only.
This is an additive change (new call and event variant); there is no storage migration.
[#12534]: pallet-utility: fix dispatch class of empty batch/batch_all/force_batch
Utility::batch, Utility::batch_all and Utility::force_batch derive their DispatchClass by folding over the dispatch classes of the wrapped calls, starting from an Operational accumulator so that the batch is only Operational if every wrapped call is Operational. When called with an empty list of calls, the fold had nothing to iterate over and returned the initial Operational value unchanged, making empty batches incorrectly Operational instead of Normal. Empty batches now explicitly resolve to DispatchClass::Normal.
Rust compiler versions
This release was built and tested against the following versions of rustc.
Other versions may work.
- Rust Stable:
1.93
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:stable2606-1
or
docker pull parity/polkadot-parachain:stable2606-1