github paritytech/polkadot-sdk polkadot-stable2412-7
Polkadot stable2412-7

latest releases: polkadot-stable2506-2-rc1, polkadot-stable2503-9, polkadot-stable2503-9-rc1...
2 months ago

This release contains the changes from polkadot-stable2412-6 to polkadot-stable2412-7.

ℹ️ Please note:

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

The following crates were updated to the corresponding versions:

- sc-network-types@0.15.5
- pallet-broker@0.18.1
- pallet-scheduler@40.2.1
- sc-network@0.48.5
- pallet-xcm@18.1.2
- sc-offchain@43.0.1
- pallet-xcm-bridge-hub@0.14.4
- coretime-rococo-runtime@0.13.3
- coretime-westend-runtime@0.13.3
- sc-cli@0.50.2
- cumulus-client-consensus-aura@0.21.1
- polkadot-service@22.2.0
- cumulus-relay-chain-minimal-node@0.22.3
- cumulus-relay-chain-inprocess-interface@0.22.1
- polkadot-omni-node-lib@0.4.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.

[#8669]: cumulus-aura: Improve equivocation checks

Instead of just checking for the slot, we also take the block number and the relay parent into account (as we actually allow to build multiple blocks per slot). Then this pr also ensures that we are still able to import blocks from availability recovery. This ensures that a network doesn't get stuck on a storm of equivocations. The next step after this pull request would be to implement on chain slashing for equivocations and probably disabling of the offending author.

[#8461]: Use litep2p as the default network backend

This PR makes the litep2p backend the default backend.
Litep2p is a lightweight alternative to libp2p, that is designed to be more efficient and easier to use. At the same time, litep2p brings performance improvements and reduces the CPU usage significantly.
Libp2p is the old network backend, that may still be used for compatibility reasons until the whole ecosystem is migrated to litep2p.

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).)

[#8615]: Bridges: Fix - Improve try-state for pallet-xcm-bridge-hub

Improve try-state for pallet-xcm-bridge-hub, it removes try_as and uses try_into implementation instead.

[#8630]: Broker: Introduce min price and adjust renewals to lower market

pallet-broker now provides an additional AdaptPrice implementation:
MinimumPrice. This price adapter works exactly the same as the CenterTargetPrice adapter, except that it can be configured with a
minimum price. If set, it will never drop the returned end_price (nor the target_price) below that minimum.

Apart from having an adapter to ensure a minimum price, the behaviour of renewals was also adjusted: Renewals are now either bumped by renewal bump or set to the end_price of the current sale - whatever number is higher.
This ensures some market coupling of renewal prices, while still maintaining some predictability.

[#8627]: [stable2412] Weight update for pallet scheduler

Update pallet scheduler weights and add sanity check test.

Changelog for Node Operator

ℹ️ These changes are relevant to: Those who don't write any code and only run code.

[#8650]: litep2p/peerset: Reject non-reserved peers in the reserved-only mode

This PR rejects non-reserved peers in the reserved-only mode of the litep2p notification peerset.

Previously, litep2p ignored completely the reserved-only state while accepting inbound connections. However, it handled it properly during the slot allocation phase.

  • the main changes are in the report_inbound_substream function, which now propagated a Rejected response to litep2p on the reserved-only state
    • in response, litep2p should never open an inbound substream after receiving the rejected response
    • the state of peers is not advanced while in Disconnected or Backoff states
    • the opening state is moved to Cancelled
  • for consistency purposes (and fuzzing purposes), the report_substream_opened is more robustly handling the Disconnected state
    • while at it have replaced a panic with debug_assert and an instant reject

Testing Done

  • started 2 nodes in Kusama and Polkadot with litep2p
  • added the reserved_only_rejects_non_reserved_peers test to ensure litep2p handles peers properly from different states

[#8461]: Use litep2p as the default network backend

This PR makes the litep2p backend the default backend.
Litep2p is a lightweight alternative to libp2p, that is designed to be more efficient and easier to use. At the same time, litep2p brings performance improvements and reduces the CPU usage significantly.
Libp2p is the old network backend, that may still be used for compatibility reasons until the whole ecosystem is migrated to litep2p.

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.

[#8173]: Expose current advertised xcm version

Exposes AdvertisedXcmVersion via a metadata constant.

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.