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