Skip to content

Polkadot stable2409-3

Compare
Choose a tag to compare
@github-actions github-actions released this 23 Dec 12:24
c921152

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:

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:
    1. A local chain opening a bridge.
    2. Sibling parachains opening a bridge.
    3. The relay chain opening a bridge.
  • Previously, we added instance support for pallet-bridge-relayer but overlooked updating the DeliveryConfirmationPaymentsAdapter.

[#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"