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

latest releases: polkadot-stable2409-1, v1.16.1-rc2, polkadot-v1.16.1...
8 months ago

This release contains the changes from polkadot-v1.7.2 to polkadot-v1.8.0.

Changelog

Changelog for Node Dev

[#3395]: benchmarking-cli pallet subcommand: refactor --list and add --all option

pallet subcommand's --list now accepts two values: "all" and "pallets". The former will list all available benchmarks, the latter will list only pallets.
Also adds --all to run all the available benchmarks and --no-csv-header to omit the csv-style header in the output.
NOTE: changes are backward compatible.

[#3079]: Implement transaction_unstable_broadcast and transaction_unstable_stop

A new RPC class is added to handle transactions. The transaction_unstable_broadcast broadcasts the provided transaction to the peers of the node, until the transaction_unstable_stop is called. The APIs are marked as unstable and subject to change in the future. To know if the transaction was added to the chain, users can decode the bodies of announced finalized blocks. This is a low-level approach for transactionWatch_unstable_submitAndWatch.

[#3160]: prospective-parachains: allow requesting a chain of backable candidates

Enable requesting a chain of multiple backable candidates. Will be used by the provisioner to build paras inherent data for elastic scaling.

[#3244]: Make the benchmark pallet command only require a Hasher

Currently the benchmark pallet command requires a Block type, while only using its hasher. Now this is changed to only require the Easher. This means to use HashingFor<Block> in the place where Block was required.
Example patch for your node with cmd being BenchmarkCmd::Pallet(cmd):

- cmd.run::<Block, ()>(config)
+ cmd.run::<HashingFor<Block>, ()>(config)

[#3308]: Parachains-Aura: Only produce once per slot

With the introduction of asynchronous backing the relay chain allows parachain to include blocks every 6 seconds. The Cumulus Aura implementations, besides the lookahead collator, are building blocks when there is a free slot for the parachain in the relay chain. Most parachains are still running with a 12s slot duration and not allowing to build multiple blocks per slot. But, the block production logic will be triggered every 6s, resulting in error logs like: "no space left for the block in the unincluded segment". This is solved by ensuring that we don't build multiple blocks per slot.

[#3166]: Expose internal functions used by spawn_tasks

This allows to build a custom version of spawn_tasks with less copy-paste required

Changelog for Node Operator

[#3358]: Do not stall finality on spam disputes

This PR fixes the issue that periodically caused finality stalls on Kusama due to disputes happening there in combination with disputes spam protection mechanism.
See: #3345

[#3301]: rpc server add rate limiting.

Add rate limiting for RPC server which can be utilized by the CLI --rpc-rate-limit <calls per minute>
The rate-limiting is disabled by default.

[#3230]: rpc server remove prometheus metrics substrate_rpc_requests_started/finished and refactor WS ping/pongs.

This PR updates the rpc server library to jsonrpsee v0.22 to utilize new APIs.

Breaking changes:

  • Remove prometheus RPC metrics substrate_rpc_requests_started and substrate_rpc_requests_finished.
  • The RPC server now disconnects inactive peers that didn't acknowledge WebSocket pings more than three times in time.

Added:

  • Add prometheus RPC substrate_rpc_sessions_time to collect the duration for each WebSocket session.

[#3364]: rpc server expose batch request configuration

Add functionality to limit RPC batch requests by two new CLI options:
--rpc-disable-batch-request - disable batch requests on the server
--rpc-max-batch-request-len - limit batches to LEN on the server

[#3435]: Fix BEEFY-related gossip messages error logs

Added logic to pump the gossip engine while waiting for other things to make sure gossiped messages get consumed (practically discarded until worker is fully initialized). This fixes an issue where node operators saw error logs, and fixes potential RAM bloat when BEEFY initialization takes a long time (i.e. during clean sync).

[#3477]: Allow parachain which acquires multiple coretime cores to make progress

Adds the needed changes so that parachains which acquire multiple coretime cores can still make progress.
Only one of the cores will be able to be occupied at a time.
Only works if the ElasticScalingMVP node feature is enabled in the runtime and the block author validator is updated to include this change.

Changelog for Runtime Dev

[#1660]: Implements a percentage cap on staking rewards from era inflation

The pallet-staking exposes a new perbill configuration, MaxStakersRewards, which caps the amount of era inflation that is distributed to the stakers. The remainder of the era inflation is minted directly into T::RewardRemainder account. This allows the runtime to be configured to assign a minimum inflation value per era to a specific account (e.g. treasury).

[#3052]: Fixes a scenario where a nomination pool's TotalValueLocked is out of sync due to staking's implicit withdraw

The nomination pools pallet TotalValueLocked may get out of sync if the staking pallet does implicit withdrawal of unlocking chunks belonging to a bonded pool stash. This fix is based on a new method on the OnStakingUpdate traits, on_withdraw, which allows the
nomination pools pallet to adjust the TotalValueLocked every time there is an implicit or explicit withdrawal from a bonded pool's stash.

[#3384]: [pallet_contracts] stabilize call_v2, instantiate_v2, lock_dependency and unlock_dependency

These APIs are currently unstable and are being stabilized in this PR.
Note: add_delegate_dependency and remove_delegate_dependency have been renamed to lock_dependency and unlock_dependency respectively.

[#3225]: Introduce submit_finality_proof_ex call to bridges GRANDPA pallet

New call has been added to pallet-bridge-grandpa: submit_finality_proof_ex. It should be used instead of deprecated submit_finality_proof. submit_finality_proof will be removed later.

[#3325]: Ensure TracksInfo tracks are sorted by ID.

Add a integrity_check function to trait TracksInfo and explicitly state that tracks must always be sorted by ID. The referenda pallet now also uses this check in its integrity_test.

[#2903]: Implement ConversionToAssetBalance in asset-rate

Implements the ConversionToAssetBalance trait to the asset-rate pallet.

Previously only the ConversionFromAssetBalance trait was implemented, which would allow to convert an asset balance into the corresponding native balance.

The ConversionToAssetBalance allows to use pallet-asset-rate, e.g., as a mechanism to charge XCM fees in an asset that is not the native.

[#3361]: Fix double charge of host function weight

Fixed a double charge which can lead to quadratic gas consumption of the call and instantiate host functions.

[#3060]: Add retry mechanics to pallet-scheduler

This PR adds retry mechanics to pallet-scheduler, as described in the issue above.
Users can now set a retry configuration for a task so that, in case its scheduled run fails, it will be retried after a number of blocks, for a specified number of times or until it succeeds. If a retried task runs successfully before running out of retries, its remaining retry counter will be reset to the initial value. If a retried task runs out of retries, it will be removed from the schedule. Tasks which need to be scheduled for a retry are still subject to weight metering and agenda space, same as a regular task. Periodic tasks will have their periodic schedule put on hold while the task is retrying.

[#3243]: Don't fail fast if the weight limit of a cross contract call is too big

Cross contracts calls will now be executed even if the supplied weight limit is bigger than the reamining weight. If the actual weight is too low they will fail in the cross contract call and roll back. This is different from the old behaviour where the limit for the cross contract call must be smaller than the remaining weight.

[#2061]: Add Parameters Pallet

Adds pallet-parameters that allows to have parameters for pallet configs that dynamically change at runtime. Allows to be permissioned on a per-key basis and is compatible with ORML macros.

[#3154]: Contracts: Stabilize caller_is_root API

Removed the #[unstable] attrribute on caller_is_root host function.

[#3212]: Ranked collective introduce Add and Remove origins

Add two new origins to the ranked-collective pallet. One to add new members and one to remove members, named AddOrigin and RemoveOrigin respectively.

[#3370]: Remove key getter from pallet-sudo

Removed the key getter function from the sudo pallet. There is no replacement for getting the key currently.

[#2290]: im-online pallet offcain storage cleanup

Adds a function clear_offchain_storage to pallet-im-online. This function can be used after the pallet was removed to clear its offchain storage.

[#3184]: Contracts: Remove no longer enforced limits from the Schedule

The limits are no longer in use and do nothing. Every builder overwritting them can just adapt their code to remove them without any consequence.

[#3415]: [pallet-contracts] Add APIVersion to the config.

Add APIVersion to the config to communicate the state of the Host functions exposed by the pallet.

Changelog for Runtime User

[#3319]: Add Coretime to Westend

Add the on demand and coretime assigners and migrate from legacy parachain auctions to coretime.

[#3232]: Validate code when scheduling uprades

Adds checks to ensure that the validation code is valid before scheduling a code upgrade.

[#3272]: Westend Coretime Runtime

Add the Broker pallet to the Westend Coretime Chain runtime for the main functionality and sales to start.

[#2949]: Enable async backing on all testnet system chains

Async backing has been enabled on all testnet system chains: asset-hub-westend, bridge-hub-westend, bridge-hub-rococo, collectives-westend, contracts-rococo, coretime-westend, coretime-rococo, people-westend, and people-rococo. These now target 6s block times. For the running coretime chains, that requires updating the configuration after the runtime upgrade but before the end of the current region.

[#3007]: Try State Hook for Ranked Collective.

Invariants for storage items in the ranked collective pallet. Enforces the following Invariants:

  1. Total number of Members in storage should be >= [MemberIndex] of a [Rank] in MemberCount.
  2. Rank in Members should be in MemberCount.
  3. Sum of MemberCount index should be the same as the sum of all the index attained for rank possessed by Members
  4. Member in storage of IdToIndex should be the same as Member in IndexToId.
  5. Rank in IdToIndex should be the same as the the Rank in IndexToId.
  6. Rank of the member who in IdToIndex should be the same as the Rank of the member who in Members

Rust compiler versions

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

Rust Stable:  rustc 1.75.0 (82e1608df 2023-12-21)
Rust Nightly: rustc 1.77.0-nightly (ef71f1047 2024-01-21)

Runtimes

Westend

🏋️ Runtime size:             1.707 MB (1,789,949 bytes)
🗜 Compressed:               Yes, 79.40%
✨ Reserved meta:            OK - [6D, 65, 74, 61]
🎁 Metadata version:         V14
🔥 Core version:             westend-1008000 (parity-westend-0.tx24.au2)
🗳️ system.setCode hash:      0xd6a8f76de7247431ac56c92a7fc770f142d45bd87e1bd6d646a944ff6b617a6a
🗳️ authorizeUpgrade hash:    0x5b71c45456c100717bc716460003ba4318ce958f1aa525bc29d4d42991a009d7
🗳️ Blake2-256 hash:          0xc63cf56cc82e5f1affa2dc2750ddbc6e281c2b2dae23ab1bc27157c68e7e9d49
📦 IPFS:                     https://www.ipfs.io/ipfs/QmbTgLan2jWvMqDWnExEx6N5t2Efged9CnH5e4mp6nm9hm

Westend AssetHub

🏋️ Runtime size:             1.219 MB (1,278,734 bytes)
🗜 Compressed:               Yes, 80.75%
✨ Reserved meta:            OK - [6D, 65, 74, 61]
🎁 Metadata version:         V14
🔥 Core version:             westmint-1008000 (westmint-0.tx14.au1)
🗳️ system.setCode hash:      0xf0f6dc3e6d6fe2245b8ab4fed666c150a7ad11233c585a64a651ce53f8cb2f17
🗳️ authorizeUpgrade hash:    0x2b870ab946cc35b0a98f8f06ae55d8d70240133ef11fed5f68e68b7241abbe17
🗳️ Blake2-256 hash:          0xc35774c1df1b5f1588062862b227aad83d402accc12381cab429d79a351d2f8a
📦 IPFS:                     https://www.ipfs.io/ipfs/QmdoCEvkCWQg5k6cKuWe38MSqojvxEfuomBzBkffnTnzbE

Westend BridgeHub

🏋️ Runtime size:             1.016 MB (1,065,433 bytes)
🗜 Compressed:               Yes, 78.99%
✨ Reserved meta:            OK - [6D, 65, 74, 61]
🎁 Metadata version:         V14
🔥 Core version:             bridge-hub-westend-1008000 (bridge-hub-westend-0.tx4.au1)
🗳️ system.setCode hash:      0x295d72152fdafe26196736dada4a41358ce65f041e36a7aa1efd797433e3f0b0
🗳️ authorizeUpgrade hash:    0x543e1f899899926e9af431f1f77996de9639b8f9daceaec990ec9e0ffee01c00
🗳️ Blake2-256 hash:          0x2d30dfa526c0b6ef0d112a8e40243ab91b4aa9a3e151ed9e4efab77246fbe8c8
📦 IPFS:                     https://www.ipfs.io/ipfs/QmcGoUzsVWMLPq76TtRMrJU2HCTxTcPSDZ3A4ZhDzgPnju

Westend Collectives

🏋️ Runtime size:             1.087 MB (1,139,889 bytes)
🗜 Compressed:               Yes, 80.25%
✨ Reserved meta:            OK - [6D, 65, 74, 61]
🎁 Metadata version:         V14
🔥 Core version:             collectives-westend-1008000 (collectives-westend-0.tx5.au1)
🗳️ system.setCode hash:      0x8fd9a51b1b247c9c34d8962cb6035575d1e6c13880c76e15d371e002b00eeab2
🗳️ authorizeUpgrade hash:    0x3103079e5ee27a999d622d8fab9fd32b7b577055cc965eeb4ed7e790f8ac9e76
🗳️ Blake2-256 hash:          0xc6a3d7833438120571452e9bbab7543ee364471249544b18806fc050abd5b2f3
📦 IPFS:                     https://www.ipfs.io/ipfs/Qmb5jmhaqR8JsbgSiAFWJWP1xrX1rtzgmyjdM8rHJtzquo

Westend Coretime

🏋️ Runtime size:             0.908 MB (952,079 bytes)
🗜 Compressed:               Yes, 79.32%
✨ Reserved meta:            OK - [6D, 65, 74, 61]
🎁 Metadata version:         V14
🔥 Core version:             coretime-westend-1008000 (coretime-westend-0.tx0.au1)
🗳️ system.setCode hash:      0xa5e3f8d3d2f952a87b17c37be07c5c40c3c8482014f4281f21da05b357df3d7b
🗳️ authorizeUpgrade hash:    0xdfc8d05a30f407215d297d6b271073c26b57acfc15277ae32acf61d854ae40df
🗳️ Blake2-256 hash:          0x0b0e78591409f0c78f3316b05b7a8a81950b2d6a90d2ad826bc7f00c96e85d7f
📦 IPFS:                     https://www.ipfs.io/ipfs/QmVS4t9Ydf3TBzZzeHwYH81fY9UhQku1gNAG5H2W47p8mT

Westend Glutton

🏋️ Runtime size:             0.565 MB (592,781 bytes)
🗜 Compressed:               Yes, 76.27%
✨ Reserved meta:            OK - [6D, 65, 74, 61]
🎁 Metadata version:         V14
🔥 Core version:             glutton-westend-1008000 (glutton-westend-0.tx1.au1)
🗳️ system.setCode hash:      0x522810bad32905be838fcc4928adb54d9fb65d7b273257db2bcf16b71570df3d
🗳️ authorizeUpgrade hash:    0xa437993288e8980e1ed2c6ef607c9bc86296e4ba1149107eff094d303f4daa27
🗳️ Blake2-256 hash:          0xd7ccabe850a00dfa4e5ffac4d731ceee3bb458b4cdecd1af4b718eb2cc365500
📦 IPFS:                     https://www.ipfs.io/ipfs/QmUKEQL4PtQP7QAW4gkR5VyH7P93XZ6skuTmu66hMVcQDR

Westend People

🏋️ Runtime size:             0.915 MB (959,245 bytes)
🗜 Compressed:               Yes, 79.30%
✨ Reserved meta:            OK - [6D, 65, 74, 61]
🎁 Metadata version:         V14
🔥 Core version:             people-westend-1008000 (people-westend-0.tx0.au1)
🗳️ system.setCode hash:      0x2ca2834319d8d707b665c28b67a3ef04e606c94f8b0443cd097f634cdd7dcc1b
🗳️ authorizeUpgrade hash:    0x2fd0ce86279bfbcb873c97bcd82771a8053603b213bf43525f748ac47b089153
🗳️ Blake2-256 hash:          0x93f2b879f4d9bf92d3b0382c0460ed023276116bc55f01b12a999606e869538b
📦 IPFS:                     https://www.ipfs.io/ipfs/QmWAh6nk6kN7dRpXtwB2dq2uJFB25apbFmQ2rvBFVe2T2M

Rococo

🏋️ Runtime size:             1.560 MB (1,636,111 bytes)
🗜 Compressed:               Yes, 80.01%
✨ Reserved meta:            OK - [6D, 65, 74, 61]
🎁 Metadata version:         V14
🔥 Core version:             rococo-1008000 (parity-rococo-v2.0-0.tx24.au0)
🗳️ system.setCode hash:      0x86c65ce4d436b41afc99ff80d11526e330e36703f3631369182efb2735045881
🗳️ authorizeUpgrade hash:    0x95caa0222cf30baea75c7c4f7e9c2233568d501485499bf023ed28ad8b943182
🗳️ Blake2-256 hash:          0x85a6f6aed58a1205deb2ed7845cae90e73f6f6ad3751e79278e6bd52b12ac0d2
📦 IPFS:                     https://www.ipfs.io/ipfs/QmeGmCcE7qWJ5uGK2M7wbGohvetd28CRxxNs3kq5buY4mA

Rococo AssetHub

🏋️ Runtime size:             1.236 MB (1,296,080 bytes)
🗜 Compressed:               Yes, 80.47%
✨ Reserved meta:            OK - [6D, 65, 74, 61]
🎁 Metadata version:         V14
🔥 Core version:             statemine-1008000 (statemine-0.tx14.au1)
🗳️ system.setCode hash:      0xd3d1fe83debfe85308b92613b8e213ce35b5aca0605d449c81d5e7f19f5b9169
🗳️ authorizeUpgrade hash:    0x132e2d81b94411691d65e264dd4d63429a9645d2527366abc82521a6ddd4f479
🗳️ Blake2-256 hash:          0xca690647cc7d9df546f48087d8d7562c921e886e90368c3f45d348f45beb2936
📦 IPFS:                     https://www.ipfs.io/ipfs/QmRBePdGGCjk7JbPNwZJnvPtymD4ebDvJ28P2M2BvJ3n5Y

Rococo BridgeHub

🏋️ Runtime size:             1.288 MB (1,350,224 bytes)
🗜 Compressed:               Yes, 78.70%
✨ Reserved meta:            OK - [6D, 65, 74, 61]
🎁 Metadata version:         V14
🔥 Core version:             bridge-hub-rococo-1008000 (bridge-hub-rococo-0.tx4.au1)
🗳️ system.setCode hash:      0x1aafd303a9513de08dc2c8d80e2c12b67ad8f371db181475377ba3ab9429396b
🗳️ authorizeUpgrade hash:    0xf98f16d34eafc4496e3673b430d1eb4b36f83522671cf6f0c4086d6faea96d7b
🗳️ Blake2-256 hash:          0xdc21daa9ef9cc16061d7108570e06061a976bb2d11cb2e04e448d12d199c56c7
📦 IPFS:                     https://www.ipfs.io/ipfs/QmR9ABTX4RnPygDTip6VjGwgt5JVtMDrKjMoU5sP7q9xvZ

Rococo Contracts

🏋️ Runtime size:             1.228 MB (1,288,050 bytes)
🗜 Compressed:               Yes, 79.91%
✨ Reserved meta:            OK - [6D, 65, 74, 61]
🎁 Metadata version:         V14
🔥 Core version:             contracts-rococo-1008000 (contracts-rococo-0.tx6.au1)
🗳️ system.setCode hash:      0xc37636c7ebd9ebfcf02b408f5b2652523e917fd72faa79f141636afe21c98421
🗳️ authorizeUpgrade hash:    0x62becd89da6e87cd74af77312e237f7da1dd81c085933c66507ccbe32ca1c3c1
🗳️ Blake2-256 hash:          0xf2a22f0be668e9ac6c2817d9a14983a61a23d3c056e2bcdd5e2cac26dffcabde
📦 IPFS:                     https://www.ipfs.io/ipfs/QmTo3XMTAnezMbEhDBBKxVhFD6CynKxaEjhsn2Spu9ngtp

Rococo Coretime

🏋️ Runtime size:             0.911 MB (955,398 bytes)
🗜 Compressed:               Yes, 79.39%
✨ Reserved meta:            OK - [6D, 65, 74, 61]
🎁 Metadata version:         V14
🔥 Core version:             coretime-rococo-1008000 (coretime-rococo-0.tx0.au1)
🗳️ system.setCode hash:      0x0b3dc05436da5428abc2bda5827995f0c377e05c47b2d9618699c4ae6c7a79f5
🗳️ authorizeUpgrade hash:    0xcfee757cac6f03af138bdd5c24dd2438ff10826d5857bf636a887e78c1306c12
🗳️ Blake2-256 hash:          0x816792d23917ce0917fd455114e03923afb741056f86f5362d81644aa30a2140
📦 IPFS:                     https://www.ipfs.io/ipfs/QmeMfebDpRYYh5anpC1vaReMwbR6DFxeo25t6H6Qwrd6gh

Rococo People

🏋️ Runtime size:             0.911 MB (954,801 bytes)
🗜 Compressed:               Yes, 79.39%
✨ Reserved meta:            OK - [6D, 65, 74, 61]
🎁 Metadata version:         V14
🔥 Core version:             people-rococo-1008000 (people-rococo-0.tx0.au1)
🗳️ system.setCode hash:      0xc3e78da0603c0455b616ae0f5dcb93919278a2531077f1f8065b583b0ef16ea5
🗳️ authorizeUpgrade hash:    0x3ea018be45366d961c9a00cef216cd9a9b8167b5ac839139b6008439a27e7bca
🗳️ Blake2-256 hash:          0x15e955a53e24a1e49cfebd520be8e08e5cd018bfb1c8b99e821a79e8dbb3287d
📦 IPFS:                     https://www.ipfs.io/ipfs/QmfDdnqCEcG4V1xruhJ3MksifSSTFMmYXPgTajmsxVvkBq

Don't miss a new polkadot-sdk release

NewReleases is sending notifications on new releases.