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
andsubstrate_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:
- Total number of
Members
in storage should be >= [MemberIndex
] of a [Rank
] inMemberCount
. Rank
in Members should be inMemberCount
.Sum
ofMemberCount
index should be the same as the sum of all the index attained for rank possessed byMembers
Member
in storage ofIdToIndex
should be the same asMember
inIndexToId
.Rank
inIdToIndex
should be the same as the theRank
inIndexToId
.Rank
of the memberwho
inIdToIndex
should be the same as theRank
of the memberwho
inMembers
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