github paritytech/polkadot-sdk polkadot-v1.14.0
Polkadot v1.14.0

latest release: v1.7.2-rc5
3 days ago

This release contains the changes from polkadot-v1.13.0 to polkadot-v1.14.0.

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.

[#4724]: Fix core sharing and make use of scheduling_lookahead during backing

Core sharing (two or more parachains scheduled on the same core with interlaced assignments) was not working correctly.
Adds the neccessary fixes to the backing subsystems. Moreover, adds support for backing collations which are built and advertised ahead of time (with up to scheduling_lookahead relay chain blocks in advance).

[#4833]: Reinitialize should allow to override existing config in collationGeneration

The Reinitialize collationGeneration subsystem message currently fails if no other config is already set.
As it is difficult to query the collationGeneration subsystem to check when to call Initialize or Reinitialize, this PR proposes that Reinitialize overrides the configuration regardless if there was one already set.

[#4730]: rpc upgrade jsonrpsee to v0.23.1

Upgrade the rpc library jsonrpsee to v0.23.1 to utilize:

  • Add Extensions which we now is using to get the connection id (used by the rpc spec v2)
  • Update hyper to v1.0, http v1.0, soketto and related crates (hyper::service::make_service_fn is removed)
  • The subscription API for the client is modified to know why a subscription was closed.

[#4618]: Unify logic for fetching the :code of a block

Client::code_at will now use the same substitute to determine the code for a given block as it is done when executing any runtime call.

[#4844]: Make Verifier::verify and BlockImport::check_block use &self instead of &mut self

Verifier::verify and BlockImport::check_block were refactored to use &self instead of &mut self because there is no fundamental requirement for those operations to be exclusive in nature.

[#4733]: Add pov-recovery unit tests and support for elastic scaling

Adds unit tests for cumulus pov-recovery and support for elastic scaling (recovering multiple candidates in a single relay chain block).

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

[#3940]: RFC-5: Add request revenue info

Partially implemented RFC-5 in terms of revenue requests and notifications

[#3679]: [pallet-contracts] bump wasmi to 0.32

[#4831]: treasury pallet: - remove unused config parameters

Remove unused config parameters ApproveOrigin and OnSlash from the treasury pallet.
Add OnSlash config parameter to the bounties and tips pallets.

[#3843]: Introduce a new dispatchable function set_partial_params in pallet-core-fellowship

This PR adds a new dispatchable function set_partial_params to update config with multiple arguments without duplicating the
fields that does not need to update.

[#4769]: Use real rust type for pallet alias in runtime macro

This PR adds the ability to use a real rust type for pallet alias in the new runtime macro:

#[runtime::pallet_index(0)]
pub type System = frame_system::Pallet<Runtime>;

Please note that the current syntax still continues to be supported.

[#4684]: Refactor of the parachain template

Introduce the construct runtime V2 to the parachain template runtime. In addition, url links in the parachain pallet template now direct to the polkadot sdk docs.

[#3951]: Pallet Assets Freezer

This pallet is an extension of pallet-assets, supporting freezes similar to pallet-balances.
To use this pallet, set Freezer of pallet-assets Config to the according instance of pallet-assets-freezer.

[#4757]: pallet assets: optional auto-increment for the asset ID

Introduce an optional auto-increment setup for the IDs of new assets.

[#4807]: pallet ranked collective: max member count per rank

Configuration for the maximum member count per rank, with the option for no limit.

[#4596]: Frame: Consideration trait generic over Footprint and handles zero cost

Consideration trait generic over Footprint and can handle zero cost for a give footprint.

Consideration trait is generic over Footprint (currently defined over the type with the same name). This makes it possible to setup a custom footprint (e.g. current number of proposals in the storage).

Consideration::new and Consideration::update return an Option<Self> instead Self, this make it possible to define no cost for a specific footprint (e.g. current number of proposals in the storage < max_proposal_count / 2).

[#4710]: Dont partially modify HRMP pages

The xcmp-queue pallet now does not partially modify a page anymore when the next message does not fully fit into it but instead cleanly creates a new one.

[#4765]: CheckWeight - account for extrinsic len as proof size

This changes how CheckWeight extension works. It will now account for the extrinsic length as proof size. When on_idle is called, the remaining weight parameter reflects this.

[#4513]: Removed pallet::getter usage from pallet-elections-phragmen

This PR removed the pallet::getters from pallet-elections-phragmen.
The syntax StorageItem::<T, I>::get() should be used instead.

[#4865]: Implement trait ContainsLengthBound for pallet-membership

Implement trait ContainsLengthBound for pallet membership otherwise we can't use it with pallet-tips without wrapper

[#4857]: [xcm] runtime api for LocationToAccount conversions

Introduces a new runtime API to help with conversions of XCM Location to the runtime's AccountId, showing an Ss58 formatted address for easier verification.

Besides that, the xcm-fee-payment-runtime-api module was merged into the new xcm-runtime-apis.
If you are using the xcm-fee-payment-runtime-api dependency, you just need to change it to xcm-runtime-apis and update the imports from use xcm_fee_payment_runtime_api::* to use xcm_runtime_apis::*.

[#4756]: Do not make pallet-nfts benchmarks signature-dependent

  • Adds extra functionality to pallet-nfts's BenchmarkHelper to provide signers and sign message.
  • Abstracts away the explicit link with Sr25519 schema in the benchmarks, allowing parachains with a different one to be able to run them and calculate the weights.
  • Adds a default implementation for the empty tuple that leaves the code equivalent.

[#3828]: [FRAME] Remove storage migration type

Introduce migration type to remove data associated with a specific storage of a pallet.

[#3374]: removed pallet::getter from pallet-timestamp

This PR removes all the pallet::getter usages from pallet-timestamp, and updates depdendant runtimes accordingly.
The syntax StorageItem::<T, I>::get() should be used instead.

Changelog for Node Operator

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

[#4662]: Cleanup PVF artifact by cache limit and stale time

Extend the PVF artifacts cleanup strategy. Previously, we pruned artifacts that were stale more than 24 hours.
After this change we attempt pruning artifacts only when they reach the 10 GB cache limit. If the least used artifact is stale less than 24 hours we don't remove it.

[#4685]: Chain-spec-builder supports codeSubstitutes.

A new subcommand add-code-substitute is available for the chain-spec-builder binary. It allows users to provide a runtime that should be used from a given block onwards. The codeSubstitutes field in the chain spec is used to force usage of a given runtime at a given block until the next runtime upgrade. It can be used to progress chains that are stalled due to runtime bugs that prevent block-building. However, parachain usage is only possible in combination with an updated validation function on the relay chain.

[#4618]: Unify logic for fetching the :code of a block

Fixes an issue on parachains when running with a custom substitute of the on chain wasm code and having replaced the wasm code on the relay chain. The relay chain was rejecting blocks build this way, because the collator was reporting the actual on chain wasm code hash to the relay chain. However, the relay chain was expecting the code hash of the wasm code substitute that was also registered on the relay chain.

[#4802]: Add health/readiness endpoint to the rpc server

Add /health/readiness endpoint to the rpc server which returns HTTP status code 200 if the chain is synced and can connect to the rest of the network otherwise status code 500 is returned.
The endpoint can be reached by performing a HTTP GET request to the endpoint such as $ curl <endpoint>/health/readiness

[#4799]: network: Upgrade litep2p to v0.6.0

This PR brings the latest litep2p v0.6.0 to polkadot-sdk with stability improvements, security fixes, and performance optimizations.

Specifically:

  • Incoming DHT records are now validated also with experimental litep2p network backend.
  • Performance of TCP & WebSocket connections improved by setting TCP_NODELAY flag.
  • Stability of secondary connection establishment improved.
  • Multiple possible panics in litep2p library eliminated.

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.

[#3940]: RFC-5: Add request revenue info

Instantaneous Coretime sold on the relay chain now generates revenue for its provider.
The revenue may be claimed by its provider on the Coretime chain.

[#4877]: Core-Fellowship: new promote_fast call

Adds the ability to quickly promote someone within a collective by bypassing the promotion cooldown. This can help in special situations and comes with a new origin: FastPromoteOrigin.

[#4823]: pallet-referenda: Ensure to schedule referendas earliest at the next block

Ensure that referendas are scheduled earliest at the next block when they are enacted.
Otherwise the scheduling may fails and thus, the enactment of the referenda.

[#3820]: Remove deprecated calls from treasury pallet

This PR remove deprecated calls, relevant tests from pallet-treasury.

  • Remove deprecated calls propose_spend, reject_proposal, approve_proposal.
  • Replace the code flow of propose_spend then approve_proposal with spend_local
  • Remove deprecated calls' related weight functions and test cases.
  • Remove deprecated parameter types: ProposalBond, ProposalBondMaximum, ProposalBondMinimum
  • Remove pallet treasury's relevant deprecated code in pallet-tips, pallet-bounties and pallet-child-bounties

[#4691]: Fix claim queue size

Ensure claim queue size is always the number configured by scheduler_params.lookahead. Previously the claim queue of a core was shortened by 1 if the core was occupied.

[#3951]: Pallet Assets Freezer

The storage of this pallet contains a Vecs of account freezes. Applications UIs and Developer Tools might benefit from observing it.

Rust compiler versions

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

  • Rust Stable: "1.77.0"

Runtimes

The information about the runtimes included in this release can be found below.
The runtimes have been built using srtool v0.15.0 and rustc 1.77.0 (aedd173a2 2024-03-17).

Rococo

🏋️ Runtime size:             1.807 MB (1,894,888 bytes)
🗜 Compressed:               Yes, 78.61%
✨ Reserved meta:            OK - [6D, 65, 74, 61]
🎁 Metadata version:         V14
🔥 Core version:             rococo-1014000 (parity-rococo-v2.0-0.tx26.au0)
🗳️ system.setCode hash:      0x2eaa4e877fdfe3b04f7875b0eab40fb52ec9f26bba702ff51e70d93c969d5e77
🗳️ authorizeUpgrade hash:    0xd3529b50c6aa929557621e6318687a7391e8d8e1ea18ea7328df7732505499ce
🗳️ Blake2-256 hash:          0xf5579b363a9dd921b4753c551d1a212ff6e7b8b7df016fc6fae195bb344e73c9
📦 IPFS:                     QmdzV5vwb5BtHQwo5QYA8t2aKzuxbYjgoj3ZQD6CAwaY1L

Rococo (with enabled logging)

🏋️ Runtime size:             1.854 MB (1,943,938 bytes)
🗜 Compressed:               Yes, 78.79%
✨ Reserved meta:            OK - [6D, 65, 74, 61]
🎁 Metadata version:         V14
🔥 Core version:             rococo-1014000 (parity-rococo-v2.0-0.tx26.au0)
🗳️ system.setCode hash:      0x558949cc46a1790181061f8c1b448287b38ce85e5aaad465242687a47ac168c0
🗳️ authorizeUpgrade hash:    0x01880c03cd456107bc0d383713bd33b7bb56bfc9fb665284f4a54c44e8f07da8
🗳️ Blake2-256 hash:          0x4a51b018aea0c4def92bed828cfc4b24907efdf8b2114a12bc4254e199131e89
📦 IPFS:                     Qmcaqp388ZrT8VnzCkEGPdDgVmtFbJV99uNRyUqW4kTdtP

Rococo Assethub

🏋️ Runtime size:             1.339 MB (1,403,922 bytes)
🗜 Compressed:               Yes, 80.13%
✨ Reserved meta:            OK - [6D, 65, 74, 61]
🎁 Metadata version:         V14
🔥 Core version:             statemine-1014000 (statemine-0.tx16.au1)
🗳️ system.setCode hash:      0xb02ff983d2f4f80a7dc57b0453d6b54053854f02f4e130f2a205c0f8b28c00ac
🗳️ authorizeUpgrade hash:    0x90cb21442aa3cd8e2e8da8a64330c0bf48ca5ed18abea03d2234807299b5dbc5
🗳️ Blake2-256 hash:          0xbb17f82780ca2f42f59e74b4f3eb474a2e371166359d43164305d69ad5b91889
📦 IPFS:                     QmdFkVFeEzY5U8uViHYgBPPxHJ1gSg8PhoJ7rGztUBPAet

Rococo Bridgehub

🏋️ Runtime Size:          1.35 MB (1418010 bytes)
🔥 Core Version:          bridge-hub-rococo-1014000 (bridge-hub-rococo-0.tx5.au1)
🗜 Compressed:            Yes: 78.19%
🎁 Metadata version:      V14
🗳️ system.setCode hash:   0xce4926a643bfe286519f281b7a869c374a538bd6713248e9677a6b1cb18d6132
🗳️ authorizeUpgrade hash: 0xe41b151056dda4b3fecbf4bfda9051f4616d06abd2d8ef804382450f367213a9
🗳️ Blake2-256 hash:       0x8ad8702c98ab906ac0067af837c584ca0b1b61ccf5d4b357cdb67369a28fb945
📦 IPFS:                  QmZBwt2jB1KqwQfSQn9Uh7ZprXdrqucLvbSYkkAw1gtwUE

Rococo Contracts

🏋️ Runtime Size:          1.43 MB (1496348 bytes)
🔥 Core Version:          contracts-rococo-1014000 (contracts-rococo-0.tx7.au1)
🗜 Compressed:            Yes: 80.06%
🎁 Metadata version:      V14
🗳️ system.setCode hash:   0x81530efa5ce24c7caea06aff8acd13d8bbe87fbab975d1c5d38e7dbe7fba2570
🗳️ authorizeUpgrade hash: 0xd4b4a96fc3eb47cd29c1ee3919d28ed4fbb012807710137b8070ff7c712f6aba
🗳️ Blake2-256 hash:       0x3dd4ec9679833b7d19147feab0601a232e3b9f6187cbec0d37e8c7e876c95c94
📦 IPFS:                  QmPAxhuPZQGatC6DMxwWv3dbR6c91LcN71M5k4VheZcqXk

Rococo Coretime

🏋️ Runtime Size:          1.00 MB (1051263 bytes)
🔥 Core Version:          coretime-rococo-1014000 (coretime-rococo-0.tx1.au1)
🗜 Compressed:            Yes: 78.66%
🎁 Metadata version:      V14
🗳️ system.setCode hash:   0xd3b94629fd47802bc4afe2bc75e5cada97ea24769f2f3776bdc88417ce9883dd
🗳️ authorizeUpgrade hash: 0x1159d572853fe02a0856d9b0f8ece23cd661d73ab3fbabdfd33a4fbf61de6dc1
🗳️ Blake2-256 hash:       0x21a626ac2e2dd3ee6e571b78a4cd19b877f2a80a9b0a49b2a24a533f03b64185
📦 IPFS:                  QmVypFUqaj2bC88WJPHKWXGcLpAy92vMx4ZRp8arYhA78p

Rococo People

🏋️ Runtime Size:          1011.22 kB (1035488 bytes)
🔥 Core Version:          people-rococo-1014000 (people-rococo-0.tx1.au1)
🗜 Compressed:            Yes: 78.63%
🎁 Metadata version:      V14
🗳️ system.setCode hash:   0x80b85c81a9d3e49668d9e365f81f16921043cc20b520c40e34231bcb0bba8e4e
🗳️ authorizeUpgrade hash: 0x11348b3a8760641663ae1976559abcf20de2b6d50c2f983c3f353a24323eefd7
🗳️ Blake2-256 hash:       0x47d51c6eea055bb9eb40d2b8f469857dd4396000fcaa7babe632b181f6966716
📦 IPFS:                  QmPvvfscWSu4ZfbVb8W6KyDBGuSNiJXzRtWmPzJYkQK9yK

Westend

🏋️ Runtime size:             1.825 MB (1,913,806 bytes)
🗜 Compressed:               Yes, 78.88%
✨ Reserved meta:            OK - [6D, 65, 74, 61]
🎁 Metadata version:         V14
🔥 Core version:             westend-1014000 (parity-westend-0.tx26.au2)
🗳️ system.setCode hash:      0x9441c13e2a8e50a4a3f265abf76505c05fd0ad195c0eab567bc7ee04c80b40a1
🗳️ authorizeUpgrade hash:    0xd571a3e19ba6d2ff87d1e65246fa38cd9e362406e28d57c264dddfc988b5bcbb
🗳️ Blake2-256 hash:          0x67aa8a2a81bcba228578ffe35533e4bd4ec0c09603e321714a24db0bb55224bc
📦 IPFS:                     QmTVonNTcaEqpAc6CuJ5RsH5Y9YVuGfehNzkbF4SoGKrhP

Westend Assethub

🏋️ Runtime size:             1.368 MB (1,433,988 bytes)
🗜 Compressed:               Yes, 80.00%
✨ Reserved meta:            OK - [6D, 65, 74, 61]
🎁 Metadata version:         V14
🔥 Core version:             westmint-1014000 (westmint-0.tx16.au1)
🗳️ system.setCode hash:      0xe199cf1d5032c6f3b2a18392d0293f5e602bfcc4253241a488fa686ad43d5a99
🗳️ authorizeUpgrade hash:    0x45abf9c82f1c01c5c7a60ebada19666e6d4da5494c48bf88aa5abc292f26024f
🗳️ Blake2-256 hash:          0x43cd381d8923662e0595c2b194bf9f59f3335ecda3d9b9334d7281c460fad6b3
📦 IPFS:                     QmVNsbir7DgTeBYdexzpQWCPXsRfjXnwf78dFMEpUi8RBa

Westend Bridgehub

🏋️ Runtime Size:          1.08 MB (1129041 bytes)
🔥 Core Version:          bridge-hub-westend-1014000 (bridge-hub-westend-0.tx5.au1)
🗜 Compressed:            Yes: 78.39%
🎁 Metadata version:      V14
🗳️ system.setCode hash:   0x7b52472bd7498586e591384d8313f9cfed47aa57d6a1ed19873b55a3bc0abbee
🗳️ authorizeUpgrade hash: 0x27f6c9686c16eccb273e7f2636d226b99321d48ab9f07de802423ed04c03a524
🗳️ Blake2-256 hash:       0x53a22a0381035cfc4dc5bde2bda82c56b1fbef0f66b0d387d00a12fec2c37bf1
📦 IPFS:                  QmVish2NMDSgirVAGd31qmXfpeEBc1gDcQNSfnp9BAHSTU

Westend Collectives

🏋️ Runtime Size:          1.19 MB (1246242 bytes)
🔥 Core Version:          collectives-westend-1014000 (collectives-westend-0.tx6.au1)
🗜 Compressed:            Yes: 79.87%
🎁 Metadata version:      V14
🗳️ system.setCode hash:   0x5dc3a0a73a58bc1a3c67a1ec1511390a00f2b39ac6f5987a773afaca96b5d11f
🗳️ authorizeUpgrade hash: 0xc5afb632cf86fd6de5e8f5d5514973ca2482856856378941a2e73daa3750a6f2
🗳️ Blake2-256 hash:       0xbb2a409454dab4abbf3d5d5a99022b53ecf588656b6c94f43e34e93be102b24d
📦 IPFS:                  QmdnDL2buEVji2FHMU6pcpVx15Mv8kepjGhWNskLLnYefT

Westend Coretime

🏋️ Runtime Size:          1013.43 kB (1037752 bytes)
🔥 Core Version:          coretime-westend-1014000 (coretime-westend-0.tx1.au1)
🗜 Compressed:            Yes: 78.68%
🎁 Metadata version:      V14
🗳️ system.setCode hash:   0xa0e5c60c94cf930a0ea68d1e0377d5261455a347c78b0793d07bec54e2f96101
🗳️ authorizeUpgrade hash: 0xbe087e72258af459af1265d10ad386f57d3268151c0c3bc4ae8aa4883507e5cf
🗳️ Blake2-256 hash:       0x8a97a3af19dae9ff0805498d6597c76ac29d239b176ee9a65063d7ec7104c13e
📦 IPFS:                  QmettfQp3ov4WAaj1VWZ3eTdruHHDjrF5UQM2J2FvzRee2

Westend Glutton

🏋️ Runtime Size:          600.06 kB (614461 bytes)
🔥 Core Version:          glutton-westend-1014000 (glutton-westend-0.tx1.au1)
🗜 Compressed:            Yes: 76.43%
🎁 Metadata version:      V14
🗳️ system.setCode hash:   0x5ed1f45994017706381ec423c5e950b53e1cb7d8b748c804aefdd475cc5e6281
🗳️ authorizeUpgrade hash: 0x3c48cbb2e4dde5a90c61c27d5793931c39dd39398e2bed2f24caf67abfdffe4b
🗳️ Blake2-256 hash:       0xbf62b4ec96e1d588ef025b711e716af5217afd5cb890fcbbfcca75852a6ffed2
📦 IPFS:                  QmZZdhQQTsTzuMRfRai174aDAzicJ6eGx8AxsN9UyyfS7P

Westend People

🏋️ Runtime Size:          1008.41 kB (1032610 bytes)
🔥 Core Version:          people-westend-1014000 (people-westend-0.tx1.au1)
🗜 Compressed:            Yes: 78.69%
🎁 Metadata version:      V14
🗳️ system.setCode hash:   0x98a85e5c61db5f3edbe5f940a6e8150477d5cf5889f9e94ed393a07355ca1697
🗳️ authorizeUpgrade hash: 0x220b07c366a40bdba4de795c17c01347a85a8fab3679bcd99271005a79b8dbe5
🗳️ Blake2-256 hash:       0xeb578a3314d6d860abbdfb24a4a030da8e5e9f2cd022189ac483ce7b71eaa9ec
📦 IPFS:                  QmU4SnagLmZ4sYzbKEmm3h9iJCFkKdnr9DSEHjSzHf7oHt

Docker images

The docker images for the polkadot node binary and the polkadot-parachain binary can be found at Docker hub (will be available a few minutes after the release has been published):

You may also pull it with:

docker pull parity/polkadot:latest

or

docker pull parity/polkadot-parachain:latest

Don't miss a new polkadot-sdk release

NewReleases is sending notifications on new releases.