github paritytech/polkadot-sdk polkadot-stable2509-5
Polkadot stable2509-5

latest release: polkadot-v1.20.5
10 hours ago

This release contains the changes from polkadot-stable2512-1 to polkadot-stable2509-5.

ℹ️ Please note:

⚠️ This is a patch release for the stable version: stable2509 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-stable2509-5 and matching the old pattern will be
available under polkadot-v1.20.5.
The following crates were updated to the corresponding versions:

Click to see crates list
  • sp-trie@41.1.1
  • frame-benchmarking@43.0.1
  • asset-hub-westend-runtime@0.36.3

Changelog

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

[#11028]: Add DecodeWithMemTracking derive to CompactProof

Description

Add DecodeWithMemTracking derive to CompactProof in substrate/primitives/trie/src/storage_proof.rs.

StorageProof already derived DecodeWithMemTracking but CompactProof in the same file was missed.

Integration

No integration changes required for downstream projects. CompactProof now implements DecodeWithMemTracking, which is a strictly additive trait implementation. Existing code using CompactProof will continue to work as before.

Review Notes

Single-line change adding DecodeWithMemTracking to the derive macro list on CompactProof:

-#[derive(Debug, PartialEq, Eq, Clone, Encode, Decode, TypeInfo)]
+#[derive(Debug, PartialEq, Eq, Clone, Encode, Decode, DecodeWithMemTracking, TypeInfo)]
 pub struct CompactProof {
     pub encoded_nodes: Vec<Vec<u8>>,
 }

CompactProof only contains Vec<Vec<u8>>, which already implements DecodeWithMemTracking, so the derive works without any manual implementation.

[#10802]: benchmarking: fix timing leak from bulk setup operations

Fixes timing leaks in benchmarks with large setup operations (e.g., clearing 27k staking entries). After bulk deletions are committed, the first new allocation can trigger memory allocator overhead that leaks into benchmark timing.

The fix adds a memory allocator warmup step in commit_db() that performs a dummy write/clear cycle to absorb this overhead before timing starts.

Rust compiler versions

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

  • Rust Stable: 1.88.0

Don't miss a new polkadot-sdk release

NewReleases is sending notifications on new releases.