Releases: paritytech/polkadot-sdk
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"
Polkadot stable2412-3
This release contains the changes from polkadot-stable2412-2
to polkadot-stable2412-3
.
ℹ️ Please note:
litep2p
network backend by default in Kusama. This marks an important step towards stabilizing the litep2p
backend.
The tag corresponding to the current patch release polkadot-stable2412-3
and matching the old pattern will be available under polkadot-v1.17.3.
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
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.
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-3
or
docker pull parity/polkadot-parachain:stable2412-3
Polkadot stable2407-8
This release contains the changes from polkadot-stable2407-7
to polkadot-stable2407-8
.
ℹ️ 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-8
and matching the old pattern will be available under polkadot-v1.15.8.
The following crates were updated to the corresponding versions:
- staging-xcm-builder@16.0.4
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).)
[#7243]: transfer function Preservation is changed to Expendable in fungible and fungibles adapter
The Preservation of transfer method of fungible and fungibles adapters is changed from Preserve to Expendable. So the behavior of the TransferAsset will be consistent with the WithdrawAsset function, as in fungible and fungibles adapter.
Rust compiler versions
This release was built and tested against the following versions of rustc
.
Other versions may work.
- Rust Stable:
"1.81.0"
Asset Hub Next (Westend)
Asset Hub Next
The migration of staking, governance, balances and other related pallets from the Relay Chain to Asset Hub is currently in development (part of the Plaza project and RFC-32) and dubbed AHM (Asset Hub Migration).
We are introducing a new temporary parachain on Westend which represents the future functionality of Asset Hub ready to test against for ourselves and other stakeholders who will be integrating with it, while we finalise the actual migration for Westend. By having two asset hubs on Westend in the lead up to the transition, we can have the old runtime and future runtime live at the same time, and crucially the future runtime is live much earlier that would otherwise be possible.
This is deployed and running as of today. The parachain is registered with para_id
1100 and is now ready to test. Note that the state is more or less empty, as the migration logic is still being finalised. When the migration happens we will migrate the relay pallets and state to Westend Asset Hub and Asset Hub Next will be retired shortly afterwards.
Public endpoints
RPC: wss://westend-asset-hub-next-rpc.parity-chains-scw.parity.io
Sidecar: https://westend-asset-hub-next-sidecar.parity-chains-scw.parity.io/
Artifacts
The genesis chainspec includes some injected staking data, and so it is quite large, especially in its raw format. Instead the following instructions can be followed to get the necessary information all from the attached plaintext chain-spec.
This assumes that you have the polkadot-omni-node
and chain-spec-builder
in your path, both can be compiled from the sdk repo or downloaded from a previous release. You can download ah-next-chain-spec.json
from this release, and from the same working directory run:
chain-spec-builder convert-to-raw ah-next-chain-spec.json && mv chain_spec.json ah-next-chain-spec-raw.json
polkadot-omni-node export-genesis-head --chain ah-next-chain-spec-raw.json > ah-next-genesis-head
polkadot-omni-node export-genesis-wasm --chain ah-next-chain-spec-raw.json > ah-next-genesis.wasm
Which generates the genesis wasm and head data, as well as the raw chain spec (for running with zombienet or similar)
Polkadot stable2412-2
This release contains the changes from polkadot-stable2412-1
to polkadot-stable2412-2
.
ℹ️ 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 to upgrade to it to have latest fxes.
The tag corresponding to the current patch release polkadot-stable2412-2
and matching the old pattern will be available under polkadot-v1.17.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.
[#7367]: Align omni-node and polkadot-parachain versions
Aligned polkadot-omni-node & polkadot-parachain versions. There is one NODE_VERSION constant, in polkadot-omni-node-lib, used by both binaries.
[#7488]: Increase litep2p keep-alive to 10 seconds to mirror libp2p
Increase litep2p keep-alive to 10 seconds to mirror libp2p behavior.
[#7640]: Bring the latest compatibility fixes via litep2p v0.9.1
This release enhances compatibility between litep2p and libp2p by using the latest Yamux upstream version.
Additionally, it includes various improvements and fixes to boost the stability and performance of the WebSocket stream and the multistream-select protocol.
[#7504]: Enable approval-voting-parallel by default on polkadot
Enable approval-voting-parallel by default on polkadot
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).)
[#7605]: Fix issue with InitiateTransfer and UnpaidExecution
Fix issue where setting the remote_fees
field of InitiateTransfer
to None
could lead to unintended bypassing of fees in certain conditions. UnpaidExecution
is now appended after origin alteration. If planning to use UnpaidExecution
, you need to set preserve_origin = true
.
The AllowExplicitUnpaidExecutionFrom
barrier now allows instructions for receiving funds before origin altering instructions before the actual UnpaidExecution
. It takes a new generic, Aliasers
, needed for executing AliasOrigin
to see if the effective origin is allowed to use UnpaidExecution
. This should be set to the same value as Aliasers
in the XCM configuration.
[#7451]: omni-node: Adjust manual seal parameters
This PR restores compatibility of older runtimes with the dev mode of omni-node. Before, runtimes built without the changes in #6825 were failing.
[#7243]: transfer function Preservation is changed to Expendable in fungible and fungibles adapter
The Preservation of transfer method of fungible and fungibles adapters is changed from Preserve to Expendable. So the behavior of the TransferAsset will be consistent with the WithdrawAsset function, as in fungible and fungibles adapter.
[#7383]: Bridges small nits/improvements
This PR contains small fixes and backwards compatibility issues identified during work on the larger PR: #6906.
[#7367]: Align omni-node and polkadot-parachain versions
Aligned polkadot-omni-node & polkadot-parachain versions. There is one NODE_VERSION constant, in polkadot-omni-node-lib, used by both binaries.
[#7365]: Use checked math in frame-balances named_reserve
This PR modifies named_reserve()
in frame-balances to use checked math instead of defensive saturating math.
The use of saturating math relies on the assumption that the value will always fit in u128::MAX
. However, there is nothing preventing the implementing pallet from passing a larger value which overflows. This can happen if the implementing pallet does not validate user input and instead relies on named_reserve()
to return an error (this saves an additional read)
This is not a security concern, as the method will subsequently return an error thanks to <Self as ReservableCurrency<_>>::reserve(who, value)?;
. However, the defensive_saturating_add
will panic in --all-features
, creating false positive crashes in fuzzing operations.
[#7462]: Update SCALE codec indices
We need this in order to be able to update parity-scale-codec
to the latest version after it's released. That's because parity-scale-codec
added support for checking for duplicate indexes at compile time.
[#7437]: Remove dead code
Remove unused code
[#7307]: Bridges small nits/improvements
This PR introduces a new expected_payload_type
parameter to the Bridges assert_complete_bridge_types
macro.
Changelog for Node Operator
ℹ️ These changes are relevant to: Those who don't write any code and only run code.
[#7367]: Align omni-node and polkadot-parachain versions
Aligned polkadot-omni-node & polkadot-parachain versions. There is one NODE_VERSION constant, in polkadot-omni-node-lib, used by both binaries.
[#7488]: Increase litep2p keep-alive to 10 seconds to mirror libp2p
Increase litep2p keep-alive to 10 seconds to mirror libp2p behavior.
[#7640]: Bring the latest compatibility fixes via litep2p v0.9.1
This release enhances compatibility between litep2p and libp2p by using the latest Yamux upstream version.
Additionally, it includes various improvements and fixes to boost the stability and performance of the WebSocket stream and the multistream-select protocol.
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.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-2
or
docker pull parity/polkadot-parachain:2412-2
Polkadot stable2409-5
This release contains the changes from polkadot-stable2409-4
to polkadot-stable2409-5
.
ℹ️ 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-5
and matching the old pattern will be available under polkadot-v1.16.5.
The following crates were updated to the corresponding versions:
- sc-network@0.45.6
- frame-support-procedural@30.0.6
- pallet-balances@39.0.1
- staging-xcm-builder@17.0.4
- pallet-xcm-bridge-hub@0.13.3
- cumulus-pallet-xcmp-queue@0.17.1
- bridge-runtime-common@0.18.3
- bridge-hub-rococo-runtime@0.16.3
- bridge-hub-test-utils@0.20.1
- bridge-hub-westend-runtime@0.13.3
- emulated-integration-tests-common@16.0.1
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).)
[#7243]: transfer function Preservation is changed to Expendable in fungible and fungibles adapter
The Preservation of transfer method of fungible and fungibles adapters is changed from Preserve to Expendable. So the behavior of the TransferAsset will be consistent with the WithdrawAsset function, as in fungible and fungibles adapter.
[#7365]: Use checked math in frame-balances named_reserve
This PR modifies named_reserve()
in frame-balances to use checked math instead of defensive saturating math.
The use of saturating math relies on the assumption that the value will always fit in u128::MAX
. However, there is nothing preventing the implementing pallet from passing a larger value which overflows. This can happen if the implementing pallet does not validate user input and instead relies on named_reserve()
to return an error (this saves an additional read)
This is not a security concern, as the method will subsequently return an error thanks to <Self as ReservableCurrency<_>>::reserve(who, value)?;
. However, the defensive_saturating_add
will panic in --all-features
, creating false positive crashes in fuzzing operations.
[#7461]: Update SCALE codec indices
We need this in order to be able to update parity-scale-codec
to the latest version after it's released. That's because parity-scale-codec
added support for checking for duplicate indexes at compile time.
[#7322]: Bridges: emulated tests small nits/improvements
This PR removes the use of open_bridge_between_asset_hub_rococo_and_asset_hub_westend
. This function was used in the generic test_dry_run_transfer_across_pk_bridge
macro, which could cause compilation issues when used in other contexts (e.g. fellows repo).
[#7383]: Bridges small nits/improvements
This PR contains small fixes and backwards compatibility issues identified during work on the larger PR: #6906.
[#7437]: Remove dead code
Remove unused code
[#7307]: Bridges small nits/improvements
This PR introduces a new expected_payload_type
parameter to the Bridges assert_complete_bridge_types
macro.
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-7
This release contains the changes from polkadot-stable2407-6
to polkadot-stable2407-7
.
ℹ️ 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-7
and matching the old pattern will be available under polkadot-v1.15.7.
The following crates were updated to the corresponding versions:
- frame-support-procedural@30.0.5
- publishing pallet-balances@38.0.1
- sc-network@0.44.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).)
[#7365]: Use checked math in frame-balances named_reserve
This PR modifies named_reserve()
in frame-balances to use checked math instead of defensive saturating math.
The use of saturating math relies on the assumption that the value will always fit in u128::MAX
. However, there is nothing preventing the implementing pallet from passing a larger value which overflows. This can happen if the implementing pallet does not validate user input and instead relies on named_reserve()
to return an error (this saves an additional read)
This is not a security concern, as the method will subsequently return an error thanks to <Self as ReservableCurrency<_>>::reserve(who, value)?;
. However, the defensive_saturating_add
will panic in --all-features
, creating false positive crashes in fuzzing operations.
[#7460]: Update SCALE codec indices
We need this in order to be able to update parity-scale-codec
to the latest version after it's released. That's because parity-scale-codec
added support for checking for duplicate indexes at compile time.
[#7437]: Remove dead code
Remove unused code
Rust compiler versions
This release was built and tested against the following versions of rustc
.
Other versions may work.
- Rust Stable:
"1.81.0"