github paritytech/polkadot-sdk polkadot-stable2407-6
Polkadot stable2407-6

latest releases: polkadot-stable2412-1, polkadot-v1.17.1, polkadot-stable2412-1-rc4...
6 days ago

This release contains the changes from polkadot-stable2407-5 to polkadot-stable2407-6.

ℹ️ Please note:

⚠️ This is a patch release for the stable version: 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-6 and matching the old pattern will be available under polkadot-v1.15.6.

The following crates were updated to the corresponding versions:

- pallet-ranked-collective@37.1.0
- frame-support@37.0.2
- pallet-core-fellowship@21.1.0
- pallet-salary@22.1.0
- pallet-bounties@36.0.1
- polkadot-node-network-protocol@17.1.0
- polkadot-approval-distribution@17.1.0
- polkadot-node-core-approval-voting@17.1.0
- cumulus-client-consensus-aura@0.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.

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

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

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

[#7116]: Increase the number of pvf execution workers from 2 to 4

Increase the number of pvf execution workers from 2 to 4.

[#6973]: approval-voting fix sending of assignments after restart

There is a problem on restart where nodes will not trigger their needed assignment if
they were offline and the time of the assignment passed, so after restart always
schedule a wakeup so that nodes a have the opportunity of triggering their assignments
if they are still needed.

[#6971]: Make importing of duplicate assignment idempotent

Normally, approval-voting wouldn't receive duplicate assignments because approval-distribution makes
sure of it, however in the situation where we restart we might receive the same assignment again and
since approval-voting already persisted it we will end up inserting it twice in ApprovalEntry.tranches.assignments
because that's an array. Fix this by inserting only assignments that are not duplicate.

[#7050]: Avoid incomplete block import pipeline with full verifying import queue

When warp syncing a node using the equivocation checking verifier, we now properly set the fork_choice rule.
Affected are mostly nodes that are derived from the parachain template. Omni-node is not affected.

The prevents the error ClientImport("Incomplete block import pipeline.") after state sync.

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

[#6807]: Retry approval on availability failure if the check is still needed

Recovering the POV can fail in situation where the node just restart and the DHT topology
wasn't fully discovered yet, so the current node can't connect to most of its Peers.
This is bad because for gossiping the assignment you need to be connected to just a few
peers, so because we can't approve the candidate other nodes will see this as a no show.
Fix it by retrying to approve a candidate for a fixed number of atttempts if the block is
still needed.

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.

[#7013]: pallet-bounties: Fix benchmarks for 0 ED

Closes: #7009

Rust compiler versions

This release was built and tested against the following versions of rustc.
Other versions may work.

  • Rust Stable: "1.81.0"

Don't miss a new polkadot-sdk release

NewReleases is sending notifications on new releases.