Polkadot stable2409-3
This release contains the changes from polkadot-stable2409-2
to polkadot-stable2409-3
.
ℹ️ Please note:
This is a patch release for the previous stable version: stable2409
and contains only patches and fixes to the crates (list below). No binary or docker images will be provided for this release.
The tag corresponding to the current patch release polkadot-stable2409-3
and matching the old pattern will be available under polkadot-v1.16.3.
The following crates were updated to the corresponding versions:
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
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.
[#6652]: rpc server: re-use server builder per rpc interface
This changes that the RPC server builder is re-used for each RPC interface which is more efficient than to build it for every connection.
[#6690]: Fix Possible bug, Vote import failed after aggression is enabled
Fix the appearance of Possible bug: Vote import failed after aggression is enabled, the log itself is harmless because approval gets imported anyway and aggression is able to distribute it, nevertheless is something that can be easily be fixed by picking the highest required routing possible.
[#6696]: Make approval-distribution aggression a bit more robust and less spammy
The problem with the current implementation of approval-distribution aggression is that is too spammy, and can overload the nodes, so make it less spammy by moving back the moment we trigger L2 aggression and make resend enable only for the latest unfinalized block.
[#6729]: Fix order of resending messages after restart
At restart when dealing with a coalesced approval we might end up in a situation where we sent to approval-distribution the approval before all assignments covering it, in that case, the approval is ignored and never distribute, which will lead to no-shows.
[#6603]: Always provide main protocol name in litep2p responses
This PR aligns litep2p behavior with libp2p. Previously, litep2p network backend would provide the actual negotiated request-response protocol that produced a response message. After this PR, only the main protocol name is reported to other subsystems.
[#6864]: Fix approval-voting canonicalize off by one
The approval-voting canonicalize was off by one, which lead to blocks being cleaned up every other 2 blocks. Normally, this is not an issue, but on restart we might end up sending NewBlocks to approval-distribution with finalized blocks.
This would be problematic in the case were finalization was already lagging before restart, so after restart approval-distribution will trigger aggression on the wrong already finalized block.
[#6588]: rpc server: fix subscription id_provider being reset to default one
The modification ensures that the id_provider variable is cloned instead of taken, which can help prevent issues related id provider being reset to the default.
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).)
[#5311]: No-op Impl Polling Trait
Provide a NoOp implementation of the Polling trait for unit where the trait is defined and skiping benchmarks that necessitate it's definition.
[#6645]: xcm: fix local/remote exports when inner routers return NotApplicable
Resolved a bug in the local/remote exporters
used for bridging. Previously, they consumed dest
and msg
without returning them when inner routers/exporters failed with NotApplicable
. This PR ensures compliance with the SendXcm
and ExportXcm
traits.
[#6536]: Bridges testing improvements
This PR includes:
- Refactored integrity tests to support standalone deployment of
pallet-bridge-messages
. - Refactored the
open_and_close_bridge_works
test case to support multiple scenarios, such as:- A local chain opening a bridge.
- Sibling parachains opening a bridge.
- The relay chain opening a bridge.
- Previously, we added instance support for
pallet-bridge-relayer
but overlooked updating theDeliveryConfirmationPaymentsAdapter
.
[#6781]: Bridges - revert-back congestion mechanism
With permissionless lanes PR#4949, the congestion mechanism based on sending Transact(report_bridge_status(is_congested))
from pallet-xcm-bridge-hub
to pallet-xcm-bridge-hub-router
was replaced with a congestion mechanism that relied on monitoring XCMP queues. However, this approach could cause issues, such as suspending the entire XCMP queue instead of isolating the affected bridge. This PR reverts back to using report_bridge_status
as before.
[#6505]: [pallet-broker] Fix auto renew benchmarks
Fix the broker pallet auto-renew benchmarks which have been broken since #4424, yielding Weightless
due to some prices being set too low, as reported in #6474.
Upon further investigation it turned out that the auto-renew contribution to rotate_sale
was always failing but the error was mapped. This is also fixed at the cost of a bit of setup overhead.
[#6664]: 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.
[#6526]: sp-runtime: Be a little bit more functional :D
Some internal refactorings in the Digest
code.
Changelog for Node Operator
ℹ️ These changes are relevant to: Those who don't write any code and only run code.
[#6603]: Always provide main protocol name in litep2p responses
This PR aligns litep2p behavior with libp2p. Previously, litep2p network backend would provide the actual negotiated request-response protocol that produced a response message. After this PR, only the main protocol name is reported to other subsystems.
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.
[#6592]: 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.
[#6506]: Zero refund check for FungibleAdapter
FungibleAdapter
will now check if the refund amount is zero before calling deposit & emitting an event.
Fixes #6469.
Rust compiler versions
This release was built and tested against the following versions of rustc
.
Other versions may work.
- Rust Stable:
"1.81.0"