The Parity Polkadot Blockchain SDK
This release contains the changes from polkadot-v1.10.0
to polkadot-parachain-v1.10.1
.
Node Operator
para_backing_state
if runtime doesn't support async backingFixes https://github.com/paritytech/polkadot-sdk/issues/4067 which prevents collators to upgrade to latest release (v1.10.0)
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)
This release contains the changes from polkadot-v1.9.0
to polkadot-v1.10.0
.
Node Dev
Parachain teams wishing to utilize the benefits of elastic scaling will need to upgrade their collator code to include these changes.
This PR introduces changes to the collator protocol to support elastic scaling. Namely, a new variant added to the collation response to include parent head-data along with the collation. Currently, the new variant is not being used.
ClaimQueue
wrapperIntoduces a new wrapper type: ClaimQueueSnapshot
. It contains a snapshot of the ClaimQueue
at an arbitrary relay chain block. Two methods are exposed to allow access to the claims at specific depths.
Introduces a CoreIndex
parameter in SubmitCollationParams
. This enables the collators to make use of potentially multiple cores assigned at some relay chain block. This extra parameter is used by the collator protocol and collation generation subsystems to forward the collation to the approapriate backing group.
ClaimQueue
via a runtime api and consume it in collation-generation
Creates a new runtime api exposing the ClaimQueue
from scheduler
pallet. Consume the api in collation generation (if available) by getting what's scheduled on a core from the ClaimQueue
instead of from next_up_on_available
(from AvailabilityCores
runtime api).
ParachainHostFunctions
from cumulus-client-service
Exports ParachainHostFunctions
to have a bundled version of SubstrateHostFunctions
and cumulus_primitives_proof_size_hostfunction::storage_proof_size::HostFunctions
. This increases discoverability and makes it more obvious that they should be used together in parachain nodes.
Adds support in the inclusion and paras_inherent runtime modules for backing and including multiple candidates of the same para if they form a chain.
Runtime Dev
This PR introduces a refactoring to the runtime API implementations within the parachain template project. The primary changes include enhancing the visibility of RUNTIME_API_VERSIONS
to pub
in impl_runtime_apis.rs
, centralizing API implementations in a new apis.rs
file, and streamlining lib.rs
. These changes aim to improve project structure, maintainability, and readability.
Key Changes:
RUNTIME_API_VERSIONS
is now publicly accessible, enhancing module-wide visibility.apis.rs
centralizes runtime API implementations, promoting a cleaner and more navigable project structure.lib.rs
, has been updated to reflect these structural changes, removing redundant API implementations and simplifying runtime configuration by pointing VERSION
to the newly exposed RUNTIME_API_VERSIONS
from apis.rs
.Motivations:
lib.rs
, facilitating easier comprehension for new contributors.This PR fixes getting 0 backing rewards the first session when a node enters the active set.
A runtime API was added for estimating the fees required for XCM execution and delivery. This is the basic building block needed for UIs to accurately estimate fees. An example implementation is shown in the PR. Ideally it's simple to implement, you only need to call existing parts of your XCM config. The API looks like so:
fn query_acceptable_payment_assets(xcm_version: Version) -> Result<Vec<VersionedAssetId>, Error>;
fn query_xcm_weight(message: VersionedXcm<Call>) -> Result<Weight, Error>;
fn query_weight_to_asset_fee(weight: Weight, asset: VersionedAssetId) -> Result<u128, Error>;
fn query_delivery_fees(destination: VersionedLocation, message: VersionedXcm<()>) -> Result<VersionedAssets, Error>;
The first three relate to XCM execution fees, given an XCM, you can query its weight, then which assets are acceptable for buying weight and convert weight to a number of those assets. The last one takes in a destination and a message you want to send from the runtime you're executing this on, it will give you the delivery fees.
This PR improves the beacon client to send the execution header along with the message as proof and removes the verification and storing of all execution headers. If the AH sovereign account is depleted and relayer rewards cannot be paid, the message should still be processed.
This PR fixes pallet_xcm::transfer_assets
and pallet_xcm::limited_reserve_transfer_assets
extrinsics for transfers that need to go through remote reserves. The fix is adding a SetFeesMode { jit_withdraw: true }
instruction before local execution of InitiateReserveWithdraw
so that delivery fees are correctly charged by the xcm-executor. Without this change, a runtime that has implemented delivery fees would not be able to execute remote reserve transfers using these extrinsics.
Public crate changes:
RuntimeParameterStore
in substrate/frame/support
had the associated type renamed from AggregratedKeyValue
to AggregatedKeyValue
.AggregratedKeyValue
in substrate/frame/support
was similarly renamed to AggregatedKeyValue
.test_versioning
and test_versioning_register_only
of the TestApi
trait in substrate/primitives/runtime-interface/test-wasm
had the spelling of versionning
changed to versioning
.read_trie_first_descendant_value
and read_child_trie_first_descendant_value
in substrate/primitives/trie
had the spelling of descedant
changed to descendant
.When a registar::swap
extrinsic is executed it swaps two leases on the relay chain but the broker chain never knows about this swap. This change notifies the broker chain via a XCM message for a swap so that it can update its state.
pallet::getter
usage from Beefy and MMR palletsThis PR removes pallet::getter
usage from pallet-beefy
, pallet-beefy-mmr
and pallet-mmr
, and updates dependant code and runtimes accordingly.
The syntax StorageItem::<T, I>::get()
should be used instead.
pallet-xcm's extrinsics teleport_assets
and reserve_transfer_assets
have been marked as deprecated. Please change their usage to the limited_teleport_assets
and limited_reserve_transfer_assets
, respectively; or use the generic/flexible transfer_assets
extrinsic.
pallet::getter
usage from pallet-alliance
This PR removes pallet::getter
usage from pallet-alliance
, and updates dependant code accordingly.
The syntax StorageItem::<T, I>::get()
should be used instead.
Improves on demand performance by a significant factor. Previously, having many on-demand cores would cause really poor blocktimes due to the fact that for each core the full order queue was processed. This allows for increasing the max size of the on-demand queue if needed. At the same time, the spot price for on-demand is now checked prior to every order, ensuring that economic backpressure will be applied.
experimental
feature from pallet-aura
The experimental
feature in pallet-aura
, previously used to gate different experimental changes, became redundant with the introduction of the async backing which relies on the mentioned changes, therefore, it is removed.
Add #[deprecated]
attribute to scheduler traits v1 and v2 to deprecate old versions
pallet::getter
from cumulus palletsThis PR removes all the pallet::getter
usages from cumulus pallets, and updates depdendant runtimes accordingly.
The ParaId can be retrieved using <ParachainInfo as Get<ParaId>>::get()
.
For other storage items, the syntax StorageItem::<T, I>::get()
should be used instead.
This PR migrates Westend from construct_runtime
to Runtime V2 as introduced in https://github.com/paritytech/polkadot-sdk/pull/1378
pallet::getter
from Pallet AURAThis PR removes all the declarations of macro pallet::getter
in the Pallet AURA and replaces the use of storage getter functions authorities() & current_slot() with StorageItem::get()
API across the crates as listed bellow.
The purpose is to discourage developers to use this macro, that is currently being removed and soon will be deprecated.
pallet-xcm's extrinsics execute
and send
have been marked as deprecated. Please change their usage to the new execute_blob
and send_blob
. The migration from the old extrinsic to the new is very simple.
If you have your message xcm: VersionedXcm<Call>
, then instead of passing in Box::new(xcm)
to both execute
and send
, you would pass in xcm.encode().try_into()
and handle the potential error of its encoded length being bigger than MAX_XCM_ENCODED_SIZE
.
pallet-contracts
takes the XCM encoded now as well. It follows the same API as execute_blob
and send_blob
.
VersionedMigration
Currently, it is possible to accidentally use inner unversioned migration instead of VersionedMigration
since both implement OnRuntimeUpgrade
. With this change, we make it clear that Inner
is not intended to be used directly. It is achieved by bounding Inner
to new trait UncheckedOnRuntimeUpgrade
, which has the same interface as OnRuntimeUpgrade
, but can not be used directly for runtime upgrade migrations.
This change will break all existing migrations passed to VersionedMigration
. Developers should simply change those migrations to implement UncheckedOnRuntimeUpgrade
instead of OnRuntimeUpgrade
.
Example:
--- a/path/to/migration.rs
+++ b/path/to/migration.rs
@@ -1,7 +1,7 @@
-impl<T: Config> OnRuntimeUpgrade for MigrateVNToVM<T> {
+impl<T: Config> UncheckedOnRuntimeUpgrade for MigrateVNToVM<T> {
fn on_runtime_upgrade() -> Weight {
// Migration logic here
// Adjust the migration logic if necessary to align with the expectations
// of new `UncheckedOnRuntimeUpgrade` trait.
0
}
}
Adds the pov_mode
attribute from the V1 benchmarking syntax to the V2 syntax. This allows to override the default PoV mode (MaxEncodedLen
) to either Measured
or Ignored
. It can be overridden for a whole benchmark, a key prefix of a specific key itself.
Example syntax looks like this:
#[benchmark(pov_mode = Measured {
Pallet: Measured,
Pallet::Storage: MaxEncodedLen,
})]
fn do_some() {
..
}
Add the option to use remaining weight on idle for processing enqueued messages. This will increase the chances of the messages enqueued during inherent extrinsics to be processed in the same block.
New config types is added on the message-queue Config
trait:
IdleMaxServiceWeight
example:
rust parameter_types! { // The maximum weight to be used from remaining weight for processing enqueued messages on idle pub const IdleMaxServiceWeight: Weight = Some(Weight); } type IdleMaxServiceWeight = IdleMaxServiceWeight; // or `()` to not use this feature
Adds optional HRMP notification handlers to the xcm-executor. These handlers are 3 new config types on the xcm-executor Config
trait:
HrmpNewChannelOpenRequestHandler
HrmpChannelAcceptedHandler
HrmpChannelClosingHandler
The traits of these config types are implemented on tuples, and on ()
for the default case.
Node Operator
Validators are required to upgrade to this version before collators in order to support the elastic scaling of parachains.
Some spelling mistakes in log output, error messages and tracing (prometheus/grafana) have been fixed.
The support for running coretime-kusama
and people-kusama
collators with polkadot-parachain-bin
have been added.
Runtime User
schedule_code_upgrade
when called by the owner/rootFixes schedule_code_upgrade
when being used by the owner/root. The call is used for manually upgrading the validation code of a parachain on the relay chain. It was failing before because the relay chain waited for the parachain to make progress. However, this call is mostly used for when a parachain are bricked which means that they are not able anymore to build any blocks. The fix is to schedule the validation code upgrade and then to enact it at the scheduled block. The enacting happens now without requiring the parachain to make any progress.
When a referenda finished the proposal will be scheduled. When it is scheduled, the pre-image is requested. The pre-image is unrequested after the proposal was executed. However, if the proposal failed to execute it wasn't unrequested. Thus, it could not be removed from the on-chain state. This issue is now solved by ensuring to unrequest the pre-image when it failed to execute.
Makes permissionless withdrawing the default claim permission, giving any network participant access to claim pool rewards on member's behalf, by default.
This PR adds a new extrinsic Call::restore_ledger
gated by StakingAdmin
origin that restores a corrupted staking ledger. This extrinsic will be used to recover ledgers that were affected by the issue discussed in https://github.com/paritytech/polkadot-sdk/issues/3245.
The extrinsic will re-write the storage items associated with a stash account provided as input parameter. The data used to reset the ledger can be either i) fetched on-chain or ii) partially/totally set by the input parameters of the call.
Changes introduced:
Call::restore_ledger
extrinsic to recover a corrupted ledger;frame_support::traits::currency::InspectLockableCurrency
to allow external pallets to read current locks given an account and lock ID;InspectLockableCurrency
in the pallet-balances.When submitting a referenda the proposal
is passed as argument.
The proposal
is most of the time a reference to a pre-image
and which also contains the length of the pre-image
. This pull request
adds some logic to check that if the pre-image
already exists and if it exists, it ensures that the length is passed correctly. This prevents that the referenda can not be executed because of a mismatch of this length.
pallet-xcm has a new pair of extrinsics, execute_blob
and send_blob
.These are meant to be used instead of execute
and send
, which are now deprecated and will be removed eventually. These new extrinsics just require you to input the encoded XCM.
There's a new utility in PolkadotJS Apps for encoding XCMs you can use:
https://polkadot.js.org/apps/#/utilities/xcm
Just pass in the encoded XCM to the new extrinsics and you're done.
pallet-contracts takes the XCM encoded now as well. It follows the same API as execute_blob
and send_blob
.
Invariants for storage items in the beefy pallet. Enforces the following Invariants:
Authorities
should not exceed the MaxAuthorities
capacity.NextAuthorities
should not exceed the MaxAuthorities
capacity.ValidatorSetId
must be present in SetIdSession
.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)
ποΈ Runtime size: 1.780 MB (1,865,983 bytes)
π Compressed: Yes, 79.13%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: westend-1010000 (parity-westend-0.tx24.au2)
π³οΈ system.setCode hash: 0x53f2a8c836850c83364be48f66e6589d1074091bdf74aee0da4eea66140e233a
π³οΈ authorizeUpgrade hash: 0xbfde5a2cd16cb520907a5dc142114d72d6d80fe4316c71a8d995a7d0a7292f03
π³οΈ Blake2-256 hash: 0x67b635216cfd9d40548f3a0d0c963015fb2b9a5b2dcf5171e3933b964a6f3838
π¦ IPFS: https://www.ipfs.io/ipfs/QmUJ2Sj81vFSD91fM2X3CLHB7shgCw3TD99tUy3JbZBZtk
ποΈ Runtime size: 1.255 MB (1,315,803 bytes)
π Compressed: Yes, 80.47%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: westmint-1010000 (westmint-0.tx14.au1)
π³οΈ system.setCode hash: 0xd0743a2334e5b731394468ef5d9a28da460e5b9012fe01101da8f3916d732982
π³οΈ authorizeUpgrade hash: 0x3c45352f00158480b14c1b00c7e6fe477f3abc1fe2fa3b895d9a7450ebd5f56e
π³οΈ Blake2-256 hash: 0x2c4eaa1dc41f4cd8d1540c9763f65b32c0e42bae2079a303725b30fe08a62be7
π¦ IPFS: https://www.ipfs.io/ipfs/QmPCujTnuMMeepKkDpfcKdY2qoQ86MNP6YkFwQayXWFH6A
ποΈ Runtime size: 1.044 MB (1,094,763 bytes)
π Compressed: Yes, 78.76%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: bridge-hub-westend-1010000 (bridge-hub-westend-0.tx4.au1)
π³οΈ system.setCode hash: 0x75271ccc4d19c4c371729e9ccf4156ff2d57e6a4bd7269b18f562e3bc72ebbab
π³οΈ authorizeUpgrade hash: 0x834d1e79c1d94ff42b2e45c4999a6e832ed582dc54f784822f8f45569fc8085b
π³οΈ Blake2-256 hash: 0x6bf5e5050865ae320e7cd6f6b67bd8166200d7061e36cff4c8953b6035f4dbb8
π¦ IPFS: https://www.ipfs.io/ipfs/QmZ4AQk1SijHMjdk9BBFD91vkATVzF3RHo5omHucaH1XPm
ποΈ Runtime size: 1.117 MB (1,171,710 bytes)
π Compressed: Yes, 80.01%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: collectives-westend-1010000 (collectives-westend-0.tx5.au1)
π³οΈ system.setCode hash: 0x9c085a90bff4d645502cd254ff5654a70f01283f18b079540087379e87c8a880
π³οΈ authorizeUpgrade hash: 0x2a649e3001d32222adb3c38de2fddcfc0a7f6a2f5aff76e11cc1479dd188a1dc
π³οΈ Blake2-256 hash: 0x2cc1a6f1217ec8a2f453423f6882f17712a687d22fefffba20d6d0afa5a83939
π¦ IPFS: https://www.ipfs.io/ipfs/QmbaDBxyRYweKorR99a9MTgDAYtH4AHnVpo8QPVXx47Js9
ποΈ Runtime size: 0.931 MB (976,120 bytes)
π Compressed: Yes, 79.13%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: coretime-westend-1010000 (coretime-westend-0.tx0.au1)
π³οΈ system.setCode hash: 0xeec18105079e4a6d00ecec2c4cbefda0a65ff7e0b5d0a1008ae5dc09d82c27b5
π³οΈ authorizeUpgrade hash: 0x9b5d3b19d192c6275139e0a842a3bd5b4b99063d877424b5e0e96b8abc82283a
π³οΈ Blake2-256 hash: 0x9a47e27b3ad05651a2934706fa4ff57549750ec31a3613f56281d2f1ddc7f976
π¦ IPFS: https://www.ipfs.io/ipfs/Qme9k51jjQh9wWZZa1FwZ2pnE1BDspcnzccA3eCoHPve5g
ποΈ Runtime size: 0.572 MB (600,292 bytes)
π Compressed: Yes, 76.02%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: glutton-westend-1010000 (glutton-westend-0.tx1.au1)
π³οΈ system.setCode hash: 0xcc4a57e00a8ea2804fa55ee70af81ca74770a1f091d2050b39560a8b0a63d6fb
π³οΈ authorizeUpgrade hash: 0xc2c5b169e5446886103590883cdccd4565ef9c601eec1990d735d975a6a639ed
π³οΈ Blake2-256 hash: 0xdedaa76a44468fbae1f7140228661d07858f2971737b6e81515644782ff7789b
π¦ IPFS: https://www.ipfs.io/ipfs/QmbJxaAjfwF9NttSWjsPuaAKrdrnBWWyYHMsVfrs7sGNdS
ποΈ Runtime size: 0.929 MB (974,084 bytes)
π Compressed: Yes, 79.24%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: people-westend-1010000 (people-westend-0.tx0.au1)
π³οΈ system.setCode hash: 0x1cd1a6577e3af5d05911710e5226ca33c53f9787292e121f78b04ae206ed7983
π³οΈ authorizeUpgrade hash: 0xabd1746ac07df242956029b6a7602fed63f00d4d5d7b9d16ee83cab57c513508
π³οΈ Blake2-256 hash: 0xdd371c8adaa10749f66051f995c1698f0c330fee8269866ee2d4d509ed52966e
π¦ IPFS: https://www.ipfs.io/ipfs/QmTSWxgTKGMYF8vQERoVwGcu2ZGLjRvqujDWfUUHYMPX42
ποΈ Runtime size: 1.632 MB (1,711,567 bytes)
π Compressed: Yes, 79.67%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: rococo-1010000 (parity-rococo-v2.0-0.tx24.au0)
π³οΈ system.setCode hash: 0x4723700868d0fc23b9b541fc050003ffa9b01cf82eb7eb62d403599c6aea4c43
π³οΈ authorizeUpgrade hash: 0xc82a77d7804b3dbec4b44659fe0d9aa62a39bded1347749bfc41266e3550f7fa
π³οΈ Blake2-256 hash: 0x879ae913b831731382f78350390754484a42dea5bf353757ffd4f0582d9190f8
π¦ IPFS: https://www.ipfs.io/ipfs/QmUSjx4f4XM4XHdcXNcxSYnWhFEURJyBa7YLd6uFbazpmZ
ποΈ Runtime size: 1.262 MB (1,323,488 bytes)
π Compressed: Yes, 80.32%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: statemine-1010000 (statemine-0.tx14.au1)
π³οΈ system.setCode hash: 0x851f5dd4807669f96b12f62c428694c6c00186c3a0f25b74862cc312107d76c6
π³οΈ authorizeUpgrade hash: 0x84b3f87e44ef33b0052b49c9bc3752963fb22fe28768246a7548565d91963f44
π³οΈ Blake2-256 hash: 0xe3e72f8c468aa0ae5d1ae6543dfe7b90b748e16d1faace732d1063fcb303a17a
π¦ IPFS: https://www.ipfs.io/ipfs/QmSBuFrhFVqCcMiRNcTbeyCBRh9okFoc1c9HUqdHtHgxMp
ποΈ Runtime size: 1.325 MB (1,389,404 bytes)
π Compressed: Yes, 78.29%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: bridge-hub-rococo-1010000 (bridge-hub-rococo-0.tx4.au1)
π³οΈ system.setCode hash: 0xcd0becffe847311a006ae069dd744ff916b08e6b083d5af39937e2e20b41c4ef
π³οΈ authorizeUpgrade hash: 0x2d6ed947d33bc7e00c44feffd368648ec7886d7d12d65f8cfb84e850e9004332
π³οΈ Blake2-256 hash: 0x502c2b4388b629bf46c5274dd61dceade66b1a1728f87b2ea6c8b0edc1856d59
π¦ IPFS: https://www.ipfs.io/ipfs/QmTo8dzc9FgmQjiiAK52dzfqjwfw8fTJGmphE3nGe1C77P
ποΈ Runtime size: 1.251 MB (1,311,351 bytes)
π Compressed: Yes, 79.63%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: contracts-rococo-1010000 (contracts-rococo-0.tx6.au1)
π³οΈ system.setCode hash: 0x7b69f9b08b4464f9bed59b53a8a291fccd0a501d9fa0362c975a4fd6b49ad98c
π³οΈ authorizeUpgrade hash: 0x520183382ad3e68f8f1900028c80f940a9492fc6b70daa80d3d895bbdaaef7e4
π³οΈ Blake2-256 hash: 0x4e515c2e2f81fea690d209017da33b6ff59cf6ae019a979215058234302721f8
π¦ IPFS: https://www.ipfs.io/ipfs/QmQGsZdSerjBJALaRrvfT3h3ETKMQQPkZJCp4r4KamfseW
ποΈ Runtime size: 0.940 MB (986,150 bytes)
π Compressed: Yes, 79.13%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: coretime-rococo-1010000 (coretime-rococo-0.tx0.au1)
π³οΈ system.setCode hash: 0x83dd2e3c82d0c0a9bce62ae93f613ab6981cb694da549a93eaadae26e472bfcc
π³οΈ authorizeUpgrade hash: 0xd225861d408c78f0fc52e36e07adcb1aa85189b1b4ab0f508505e4e080eb033c
π³οΈ Blake2-256 hash: 0x53e891901270a0f169040545a37d5225cd05d8915f60fead6e71623133b436a2
π¦ IPFS: https://www.ipfs.io/ipfs/QmRGj4gNHTSkB1mCrAMK9gdC9vjzXcYbVyu7es3wBvc1f3
ποΈ Runtime size: 0.934 MB (979,359 bytes)
π Compressed: Yes, 79.12%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: people-rococo-1010000 (people-rococo-0.tx0.au1)
π³οΈ system.setCode hash: 0x5a9569ebc29f927d998e1022a6ae5b7e2558559d6db7c8f0f556a296fb0af40d
π³οΈ authorizeUpgrade hash: 0x817c87c3db0c34abc59ccc3a2405767dd335e269cc2d6017351538ea39a3d18e
π³οΈ Blake2-256 hash: 0x3fc704e0641acc614bb0f479395f6f0c4118c6c187efba1972d6117cd0072813
π¦ IPFS: https://www.ipfs.io/ipfs/QmbbahqfjRQugSFMuPFhkrrres7T1ngSCuDodzKkme7f1t
This release contains the changes from polkadot-v1.8.0
to polkadot-v1.9.0
.
Node Dev
If a runtime construction error happened during the execution request, then the artifact is re-prepared and the execution request is retried at most once. See also the related issue.
Enable supplying multiple backable candidates to the paras_inherent pallet for the same paraid.
Changes the runtime hash algorithm used in resolve_state_version_from_wasm from DefaultHasher to a caller-provided one (usually HashingFor<Block>
). Fixes a bug where the runtime wasm was being compiled again when it was not needed, because the hash did not match.
Node Operator
--sync=warp
Fix crash of SyncingEngine
when an already synced parachain node is run with --sync=warp
(issue https://github.com/paritytech/polkadot-sdk/issues/3496).
The issue manifests itself by errors in the logs:
[Parachain] Cannot set warp sync target block: no warp sync strategy is active.
[Parachain] Failed to set warp sync target block header, terminating `SyncingEngine`.
Followed by a stream of messages:
[Parachain] Protocol command streams have been shut down
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.
The dynamic Aura slot duration, introduced in PR#3211, didn't take the block import pipeline into account. The result was the parachain backed by multiple collators not being able to keep producing blocks after its runtime was upgraded to support async backing, requiring to restart all the collator nodes. This change fixes the issue, introducing the dynamic Aura slot duration into the block import pipeline.
This PR adds a label "is_rate_limited" to the prometheus metrics "substrate_rpc_calls_time" and "substrate_rpc_calls_finished" than can be used to distinguish rate-limited RPC calls from other RPC calls. Because rate-limited RPC calls may take tens of seconds.
Runtime Dev
Removed deprecated sp_weights::OldWeight type. Use [weight_v2::Weight
] instead.
Adds a mechanism to reclaim proof size weight.
SignedExtension
that reclaims the difference
between benchmarked proof size weight and actual consumed proof size weight.StorageWeightReclaimer
, to reclaim excess storage weight for situations
that require manual weight management. The most prominent case is the on_idle
hook.storage_proof_size
host function to the PVF. Parachain nodes should add it to ensure compatibility.To enable proof size reclaiming, add the host storage_proof_size
host function to the parachain node. Add the
StorageWeightReclaim
SignedExtension
to your runtime and enable proof recording during block import.
Removes deprecated type GenesisConfig
, it was replaced by RuntimeGenesisConfig
on May 24 of 2023. The type GenesisConfig
was deprecated on May 24 of 2023 #14210
frame_support::traits::GetStorageVersion::current_storage_version
has been renamed frame_support::traits::GetStorageVersion::in_code_storage_version
.
A simple find-replace is sufficient to handle this change.
pallet::getter
usage from pallet-collective
This PR removes pallet::getter
usage from pallet-collective
, and updates dependant code accordingly.
The syntax StorageItem::<T, I>::get()
should be used instead.
poll
hook and new System CallbacksThe major things that this MR touches are:
Multi-Block-Migrations: pallet-migrations
is introduced that can be configured in the System
of a runtime to act as multi-block migrator. The migrations
pallet then in turn receives the list of MBMs as config parameter. The list of migrations can be an aggregated
tuple of SteppedMigration
trait implementation.
It is paramount that the migrations
pallet is configured in System
once it is deployed. A test is in place to double check this.
To integrate this into your runtime, it is only necessary to change the return type of initialize_block
to RuntimeExecutiveMode
. For extended info please see https://github.com/paritytech/polkadot-sdk/pull/1781.
poll: a new pallet hook named poll
is added. This can be used for places where the code that should be executed is not deadline critical. Runtime devs are advised to skim their usage of on_initialize
and on_finalize
to see whether they can be replace with poll
. poll
is not guaranteed to be called each block. In fact it will not be called when MBMs are ongoing.
System Callbacks: The system
pallet gets five new config items - all of which can be safely set to ()
as default. They are:
SingleBlockMigrations
: replaces the Executive
now for configuring migrations.MultiBlockMigrator
: the pallet-migrations
would be set here, if deployed.PreInherents
: a hook that runs before any inherent.PostInherents
: a hook to run between inherents and poll
/MBM logic.PostTransactions
: a hook to run after all transactions but before on_idle
.This PR introduces two new config types that specify the origins allowed to upload and instantiate contract code. However, this check is not enforced when a contract instantiates another contract.
trait Store
The deprecated trait Store
feature has been removed from the codebase. Please remove usages of generate_store
macro from your pallets and access the storage through generics. For example, <Self as Store>::StoredRange::mutate
will need to be updated to StoredRange::<T>::mutate
.
Semantics of the suspension logic in the XCMP queue pallet change from using the number of total pages to the number of 'ready' pages. The number of ready pages is now also exposed by the MessageQueue
pallet to downstream via the queue footprint
.
as [disambiguation_path]
from the required syntax in derive_impl
This PR removes the need to specify as [disambiguation_path]
for cases where the trait definition resides within the same scope as default impl path.
For example, in the following macro invocation
#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)]
impl frame_system::Config for Runtime {
...
}
the trait DefaultConfig
lies within the frame_system
scope and TestDefaultConfig
impls the DefaultConfig
trait.
Using this information, we can compute the disambiguation path internally, thus removing the need of an explicit specification:
#[derive_impl(frame_system::config_preludes::TestDefaultConfig)]
impl frame_system::Config for Runtime {
...
}
In cases where the trait lies outside this scope, we would still need to specify it explicitly, but this should take care of most (if not all) uses of derive_impl
within FRAME's context.
This PR moves all templates into a single folder in the polkadot-sdk repo (/templates
) and unifies their crate names as well. Most notably, the crate name for what was formerly known as node-template
is no solochain-template-node
. The other two crates in the template are
consequently called: solochain-runtime-template
and pallet-solochain-template
. The other two template crate names follow a similar patter, just replacing solochain
with parachain
or minimal
.
This PR is part of a bigger step toward automating the template repositories, see the following: https://github.com/paritytech/polkadot-sdk/issues/3155
pallet_collator_selection::set_candidacy_bond
This PR implements the weight refund of pallet_collator_selection::set_candidacy_bond
to account for no iterations over the candidate list when the candidacy bond is decreased.
This PR reverts the PR which introduced TransactionExtension
to replace SignedExtension
.
pallet::getter
from example palletsThis PR removes all the pallet::getter
usages from the template pallets found in the Substrate and Cumulus template nodes, and from the Substrate example pallets.
The purpose is to discourage developers to use this macro, that is currently being removed and soon will be deprecated.
This PR fixes an issue where using impl_benchmark_test_suite
macro within modules that use the benchmarking v2 macros (#[benchmarks]
and #[instance_benchmarks]
) always produced a single test called test_benchmarks
instead of a separate benchmark test for every benchmark (noted with the #[benchmark]
macro).
By using this macro from now on, new tests will be created named test_benchmark_{name}
where name
is the name of the benchmark function. Those tests will be nested inside the module intended for benchmark functions.
Also, when using impl_benchmark_test_suite
inside the module, the import of such marco will not be necessary, so any explicit import of it will be marked as unused, the same way it works for v1 macros so far.
chill
is permissionless if depositor's stake is less than min_nominator_bond
Nomination pools currently have an issue whereby member funds cannot be unbonded if the depositor bonded amount is less than MinNominatorBond
.
This PR makes the chill
function permissionless if this condition is met.
Consequently, nominate
function also checks for depositor
to have at least MinNominatorBond
, and returns MinimumBondNotMet
error if not.
Lock and unlock delegate dependency are stable now, so we can mark them as such.
pallet::getter
usage from pallet-im-online
This PR removes pallet::getter
usage from pallet-im-online
, and updates dependant code accordingly.
The syntax StorageItem::<T, I>::get()
should be used instead.
add Encointer as trusted teleporter for Westend with ParaId 1003
Allows marking storage items with #[disable_try_decode_storage], which disables that storage item from being decoded during try_decode_entire_state calls.
Applied the attribute to System::Events to close https://github.com/paritytech/polkadot-sdk/issues/2560. Applied the attribute to ParachainSystem::HostConfiguration to resolve periodic issues with it.
Introduces #[frame_support::runtime]
that can be attached to a mod to define a runtime. The items in this mod can be attached to the following attributes to define the key components of the runtime.
#[runtime::runtime]
attached to a struct defines the main runtime#[runtime::derive]
attached to the runtime struct defines the types generated by the runtime#[runtime::pallet_index]
must be attached to a pallet to define its index#[runtime::disable_call]
can be optionally attached to a pallet to disable its calls#[runtime::disable_unsigned]
can be optionally attached to a pallet to disable unsigned callsTemplateModule: pallet_template<Instance>
An optional attribute can be defined as #[frame_support::runtime(legacy_ordering)]
to ensure that the order of hooks is same as the order of pallets (and not based on the pallet_index). This is to support legacy runtimes and should be avoided for new ones.Linear::adapt_price
behavior at zeroThis fixes the behaviour of Linear
which is the default implementation of the AdaptPrice
trait in the broker pallet. Previously if cores were offered but not sold in only one sale, the price would be set to zero and due to the logic being purely multiplicative, the price would stay at 0 indefinitely.
The upload_code
extrinsic, will now only allow non-deterministic code to be uploaded with the Determinism::Relaxed
flag.
This prevent an attacker from uploading "deterministic" code with the Determinism::Relaxed
flag, preventing the code to be instantiated for on-chain execution.
claim_assets
extrinsic to pallet-xcm
There's a new extrinsic in pallet-xcm
that needs a new configuration item for its benchmarks.
It's a simple function in pallet_xcm::benchmarking::Config
, get_asset
, that returns a valid asset handled by the AssetTransactor of the chain.
If you're already using pallet-xcm-benchmarks
, then you already have this function there and can just copy and paste it.
The construct_runtime macro now generates a test to assert that all GenesisConfig
s of all pallets can be build within the runtime. This ensures that the BuildGenesisConfig
runtime API works.
Further, some checks from a few pallets were removed to make this pass.
Bug fix for the membership pallet to use correct weights. Also no event will be emitted anymore when change_key
is called with identical accounts.
This PR fixes an issue where in the metadata of all FRAME-based chains, the documentation for all extrinsic/call/transactions has been replaced by a single line saying "see Pallet::name".
Many wallets display the metadata of transactions to the user before signing, and this bug might have affected this process.
Runtime User
claim_assets
extrinsic to pallet-xcm
There's a new extrinsic in pallet-xcm
for claiming assets.
This means that if your assets ever get trapped while teleporting or doing reserve asset transfers, you can easily claim them by calling this new extrinsic.
This PR introduces a fix to the staking logic which prevents an existing controller from bonding as a stash of another ledger, which lead to staking ledger inconsistencies down the line. In addition, it adds a few (temporary) gates to prevent ledgers that are already in a bad state from mutating its state.
In summary:
Call::bond
and fails if that's the case;StakingLedger
API;Error::BadState
is returned if the ledger bonding is in a bad state. This prevents bad ledgers from mutating (e.g. bond_extra
, set_controller
, etc) its state and avoid further data inconsistencies.set_controller
, since that may lead to a bad state.This PR fixes an issue where in the metadata of all FRAME-based chains, the documentation for all extrinsic/call/transactions has been replaced by a single line saying "see Pallet::name".
Many wallets display the metadata of transactions to the user before signing, and this bug might have affected this process.
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)
ποΈ Runtime size: 1.757 MB (1,842,646 bytes)
π Compressed: Yes, 79.19%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: westend-1009000 (parity-westend-0.tx24.au2)
π³οΈ system.setCode hash: 0x701d8f5af35d2788db7406852b7b9c31fc43a3c643475ecba7b7d39962e170e7
π³οΈ authorizeUpgrade hash: 0xef9b696bb7fb109542b07b4f11cf6ae78181ffa644347d30d06f50d23c30cbca
π³οΈ Blake2-256 hash: 0xfc05f1863c0050bac8cb117c094232576bf63b8315415e95c77d506ef656a960
π¦ IPFS: https://www.ipfs.io/ipfs/QmYwmvhKKryNv5VAAdX8uA8cdoM2qpYZt5rDsCrGhs5DTx
ποΈ Runtime size: 1.269 MB (1,331,063 bytes)
π Compressed: Yes, 80.34%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: westmint-1009000 (westmint-0.tx14.au1)
π³οΈ system.setCode hash: 0x7da5685a7412845f68817e71792e7220ad560312875142575892e355567c837f
π³οΈ authorizeUpgrade hash: 0x56270c019b5d6c8806937b34c4d64a0d7e4875ed208dbf6a09d711aca3a9d7a7
π³οΈ Blake2-256 hash: 0x80a9c31324a26e22639b3a79d6c3662c6aa0a718a537bd8472277155b8bbb104
π¦ IPFS: https://www.ipfs.io/ipfs/QmXLQBjCzre6RyhoEtRiT3BnXqZ7h7BS1Jx8rmXZQapcoW
ποΈ Runtime size: 1.039 MB (1,089,313 bytes)
π Compressed: Yes, 78.85%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: bridge-hub-westend-1009000 (bridge-hub-westend-0.tx4.au1)
π³οΈ system.setCode hash: 0xe7322884b8de41a1cdf0442d8f085963facf3f7a436310c8d11c85d50dc173e1
π³οΈ authorizeUpgrade hash: 0xb7e6b2c5a97d893bfe7edf0c3c921a559597e8a697daa91846a9cce09204c9c1
π³οΈ Blake2-256 hash: 0x65b5e41a926fd4fcc07c99feee2695081b92f89b0f66f8302234ee4d9b5cd8d1
π¦ IPFS: https://www.ipfs.io/ipfs/QmUHja1UXwwgFSGT2z9PY8rKkWdni6ewYSxbZtqy1MQuC8
ποΈ Runtime size: 1.114 MB (1,167,964 bytes)
π Compressed: Yes, 80.00%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: collectives-westend-1009000 (collectives-westend-0.tx5.au1)
π³οΈ system.setCode hash: 0x57a82d883cac7decbb13bac4b285120684631c69bf895ee2b277950915959acd
π³οΈ authorizeUpgrade hash: 0x0af556ed32430a8719965d175a2cca671ab9e26415ecbfe11d96838107f258ed
π³οΈ Blake2-256 hash: 0xdbe90c603ba6a766a4c1f51c8759512550b4a9c0ec0a2a7d228f453ab0bc2e72
π¦ IPFS: https://www.ipfs.io/ipfs/QmXre8D1LAA9QZSg58j6AsYtefkR4ASjjjXvwPYAC5WNsj
ποΈ Runtime size: 0.935 MB (980,253 bytes)
π Compressed: Yes, 79.12%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: coretime-westend-1009000 (coretime-westend-0.tx0.au1)
π³οΈ system.setCode hash: 0xec597998dab53e6fffe963dbbe1854598e6f51a81b13609e61167d015a75910e
π³οΈ authorizeUpgrade hash: 0x432e4453c5a7ac3872fdcb97c3d642d1e41e37509fa1aa32858e1681407e6638
π³οΈ Blake2-256 hash: 0x03eaab8eedbc97b35b211ab6af2954b4f17ec13d27386b4da3790b109c62ec63
π¦ IPFS: https://www.ipfs.io/ipfs/QmfGU5rtbkYW1ua25ff9mcJtFpPRsfd7DULNZA6JWgdMtZ
ποΈ Runtime size: 0.576 MB (603,629 bytes)
π Compressed: Yes, 76.17%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: glutton-westend-1009000 (glutton-westend-0.tx1.au1)
π³οΈ system.setCode hash: 0x7193243316a9883819b555eb91910c6564e3721d8880ed17d1a17eae243949be
π³οΈ authorizeUpgrade hash: 0x6bfeb46ffe9eb9aecbaf928dc6049b8e3197a65cfcb51e31e8740b1a0ecb084a
π³οΈ Blake2-256 hash: 0xa75c2d0d45f22571a7e9564411fa4af45beabdc7124c7ecb2074ee40e1195bea
π¦ IPFS: https://www.ipfs.io/ipfs/QmVWRMnumAjt9DwagjphHB8fFYqtbwo5nwhdPkPiV7KV2u
ποΈ Runtime size: 0.938 MB (983,363 bytes)
π Compressed: Yes, 79.14%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: people-westend-1009000 (people-westend-0.tx0.au1)
π³οΈ system.setCode hash: 0x34a20df5ac6f7582fd844108466dfe9c0d31cf6a73352e10f8b875e37ee8c9b2
π³οΈ authorizeUpgrade hash: 0xeb6b3fd2fde1c67c2b4f0cccda9785c3ba7109eebe8973947ec8f64ff1d1a224
π³οΈ Blake2-256 hash: 0xd6a0dcf6172aa84c8e4d850815cef8e622629b970f67dd08ec38cdf65680e394
π¦ IPFS: https://www.ipfs.io/ipfs/QmTHtnfWLk28JdUYQJ8zaFVpCNbqp3DvBKhtQYYhB5Zyb4
ποΈ Runtime size: 1.610 MB (1,687,924 bytes)
π Compressed: Yes, 79.69%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: rococo-1009000 (parity-rococo-v2.0-0.tx24.au0)
π³οΈ system.setCode hash: 0x6816e625e4bbe14e034cdaccf231a3089c22f2feeb41d9685f82db0a53310e8d
π³οΈ authorizeUpgrade hash: 0x50c6d0acf0b0138e44e0d8622fa7d68505f69ab14c3ad0465f99d5c9b32f0c56
π³οΈ Blake2-256 hash: 0xb0e7f8643af6be330798d8e9a228c77adc4232a39a9f78c2e3099230665cfd69
π¦ IPFS: https://www.ipfs.io/ipfs/QmfJNgagapjtjeyyReSffy8pHsrS4ruocPQXUP1VCrwPsE
ποΈ Runtime size: 1.256 MB (1,317,340 bytes)
π Compressed: Yes, 80.44%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: statemine-1009000 (statemine-0.tx14.au1)
π³οΈ system.setCode hash: 0x0fdf5ece8dee4a5ba1843a35162ff189eb01da5269348c59c612c21891d6c54b
π³οΈ authorizeUpgrade hash: 0x7bf464a80759214d869d8881406eef2fd1bdb8b348a2e245dea439434536bad9
π³οΈ Blake2-256 hash: 0xc10a3135772b7509ff55bfb597f8da238d2b96292a9310db636c54994bb928b2
π¦ IPFS: https://www.ipfs.io/ipfs/QmRVvp1KqyC4rxmtpbAhNFwX42soWzmq6LGv3CjdTx9GhT
ποΈ Runtime size: 1.320 MB (1,384,500 bytes)
π Compressed: Yes, 78.48%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: bridge-hub-rococo-1009000 (bridge-hub-rococo-0.tx4.au1)
π³οΈ system.setCode hash: 0x67951cf2ba12574ea4c0ea39101f8636592a3bee96192bc2041b43c6275238a0
π³οΈ authorizeUpgrade hash: 0x09fc3e588ed056ac33b8e61db068102927896f81577a690b1736de73026c318b
π³οΈ Blake2-256 hash: 0x86e87b03a8c7e35ccf41d45db71dfc3b9cb050240f82cd016886cd1fb40cb270
π¦ IPFS: https://www.ipfs.io/ipfs/QmVoCMcqU8fviekBgjPbrjR1NkNXhCDA4ECQPVXd7XzGZ1
ποΈ Runtime size: 1.259 MB (1,319,676 bytes)
π Compressed: Yes, 79.73%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: contracts-rococo-1009000 (contracts-rococo-0.tx6.au1)
π³οΈ system.setCode hash: 0xacb85de0cc955734eaa1042e261216f7fd9099a0543022f218bb1347cad60c9b
π³οΈ authorizeUpgrade hash: 0xacf7394c3a2b069da76e90f937eb5ad7b74115de74ca03ada594516bcd203204
π³οΈ Blake2-256 hash: 0xbb72adf22822f80092bffc193728d6ab592793e99136ae4ed63e021ad0cbc3f0
π¦ IPFS: https://www.ipfs.io/ipfs/QmbVMENwGyZTwtWGmLTxeXzPrEf1cdQhy8guNYV8yNyGAu
ποΈ Runtime size: 0.940 MB (986,141 bytes)
π Compressed: Yes, 79.08%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: coretime-rococo-1009000 (coretime-rococo-0.tx0.au1)
π³οΈ system.setCode hash: 0xad73d11fa61eda0ca0f14f89181a5f913181e86b9cbf6d0f0262acfc870376a7
π³οΈ authorizeUpgrade hash: 0x14326845e49b7aabcce6a1b6b734adbbdd7fc0e1259edc267b3f4897f1115df5
π³οΈ Blake2-256 hash: 0x0ad916eb630842eab648adae6be05297b89e134899064f447c768db811eb351d
π¦ IPFS: https://www.ipfs.io/ipfs/Qmd4RdgSmaP5shtELMnrzUhEMHJDDRnEFLe19MrfSUbSq5
ποΈ Runtime size: 0.936 MB (981,117 bytes)
π Compressed: Yes, 79.18%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: people-rococo-1009000 (people-rococo-0.tx0.au1)
π³οΈ system.setCode hash: 0x0d933218a2b0a6fd7ce1949e336db1f850d9c41c316871ce651134b1170b3673
π³οΈ authorizeUpgrade hash: 0x7021f2e39278b7cd1caa751c01a888a94b4d33b5e506d636ec294e69598d9c56
π³οΈ Blake2-256 hash: 0x351b1acb5278c62caea851be964058c21de7da2025473a80047d1e5ad73a9cfb
π¦ IPFS: https://www.ipfs.io/ipfs/QmS1uW8KgWDREdgmvMneWBM22Ts7Ev5MmdMADNLPfjfgse
This release contains the changes from polkadot-v1.7.2
to polkadot-v1.8.0
.
Node Dev
benchmarking-cli
pallet
subcommand: refactor --list
and add --all
optionpallet
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.
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
.
Enable requesting a chain of multiple backable candidates. Will be used by the provisioner to build paras inherent data for elastic scaling.
benchmark pallet
command only require a HasherCurrently 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)
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.
spawn_tasks
This allows to build a custom version of spawn_tasks
with less copy-paste required
Node Operator
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: https://github.com/paritytech/polkadot-sdk/issues/3345
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.
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:
substrate_rpc_requests_started
and substrate_rpc_requests_finished
.Added:
substrate_rpc_sessions_time
to collect the duration for each WebSocket session.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
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).
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.
Runtime Dev
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).
TotalValueLocked
is out of sync due to staking's implicit withdrawThe 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.
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.
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.
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
.
ConversionToAssetBalance
in asset-rateImplements 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.
Fixed a double charge which can lead to quadratic gas consumption of the call
and instantiate
host functions.
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.
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.
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.
Removed the #[unstable]
attrribute on caller_is_root
host function.
Add
and Remove
originsAdd two new origins to the ranked-collective pallet. One to add new members and one to remove members, named AddOrigin
and RemoveOrigin
respectively.
key
getter from pallet-sudoRemoved the key
getter function from the sudo pallet. There is no replacement for getting the key currently.
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.
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.
Add APIVersion
to the config to communicate the state of the Host functions exposed by the pallet.
Runtime User
Add the on demand and coretime assigners and migrate from legacy parachain auctions to coretime.
Adds checks to ensure that the validation code is valid before scheduling a code upgrade.
Add the Broker pallet to the Westend Coretime Chain runtime for the main functionality and sales to start.
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.
Invariants for storage items in the ranked collective pallet. Enforces the following Invariants:
Members
in storage should be >= [MemberIndex
] of a [Rank
] in MemberCount
.Rank
in Members should be in MemberCount
.Sum
of MemberCount
index should be the same as the sum of all the index attained for rank possessed by Members
Member
in storage of IdToIndex
should be the same as Member
in IndexToId
.Rank
in IdToIndex
should be the same as the the Rank
in IndexToId
.Rank
of the member who
in IdToIndex
should be the same as the Rank
of the member who
in Members
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)
ποΈ 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
ποΈ 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
ποΈ 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
ποΈ 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
ποΈ 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
ποΈ 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
ποΈ 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
ποΈ 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
ποΈ 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
ποΈ 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
ποΈ 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
ποΈ 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
ποΈ 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
This release contains the changes from polkadot-v1.7.1
to polkadot-v1.7.2
.
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)
Node Operator
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.
This release contains the changes from polkadot-v1.7.0
to polkadot-v1.7.1
.
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)
Node Operator
.This PR fixes the issue that periodically caused finality stalls on Kusama due to disputes happening there in combination with disputes spam protection mechanism.
This release contains the changes from polkadot-v1.6.0
to polkadot-v1.7.0
.
This release was built and tested against the following versions of rustc. Other versions may work.
Rust Stable: rustc 1.74.0 (79e9716c9 2023-11-13)
Rust Nightly: rustc 1.75.0-nightly (9d83ac217 2023-10-31)
ποΈ Runtime size: 1.650 MB (1,730,647 bytes)
π Compressed: Yes, 79.22%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: westend-1007000 (parity-westend-0.tx24.au2)
π³οΈ system.setCode hash: 0xe8db5e7b5b9edcc68c2275a2e64b2092b36f19159dbb55d4c7574198f325383e
π³οΈ authorizeUpgrade hash: 0x30422f3a96a9a2a81e88c0ba936ba859fa4e9bcb9d06b4febe4a21bd76d2f46f
π³οΈ Blake2-256 hash: 0x085f68ab9991262334e944c078caeb8b20fede674dc1fca5fdc5fd7d4dd35e3a
π¦ IPFS: https://www.ipfs.io/ipfs/QmSmmQXCkADd8f5JVese9Cp8xnuo8F3UdLzURQnD7QVUDU
ποΈ Runtime size: 1.214 MB (1,272,838 bytes)
π Compressed: Yes, 80.65%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: westmint-1007000 (westmint-0.tx14.au1)
π³οΈ system.setCode hash: 0xb1d33d2630c1ce11c1fa4df6e5764f0192ea3057372c885c14953e33008a3d56
π³οΈ authorizeUpgrade hash: 0x3bac1870a33c3e6376ea5e5e6eae9d20d44b5a203d3ec5c257d7705c28b9e0e7
π³οΈ Blake2-256 hash: 0xc2a2bbc026991a9177e4f94cd18227734aa68640c12844a3ade69827def7d7eb
π¦ IPFS: https://www.ipfs.io/ipfs/QmbxLDghaGECMRoVH7Vf82pmYZPDoJf8RERhGimovpjNTa
ποΈ Runtime size: 0.990 MB (1,038,565 bytes)
π Compressed: Yes, 79.31%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: bridge-hub-westend-1007000 (bridge-hub-westend-0.tx4.au1)
π³οΈ system.setCode hash: 0x8b5d3c85e0a870781d2b42b03f8301c3f85e38464745c6482ec5e86c557ee884
π³οΈ authorizeUpgrade hash: 0x97b7ae2d8d7142a4d36e49db5f16db24a826e02e537bbb1ad6201145dce33527
π³οΈ Blake2-256 hash: 0x16a78209318174f006d092fe033da616bb206ffa751ac26b56aa7c6b326dd0fc
π¦ IPFS: https://www.ipfs.io/ipfs/QmZXsKU9SK2GZHTaaNZm7fNWQT33fu9vF1ie5LqLXMRsws
ποΈ Runtime size: 1.059 MB (1,110,582 bytes)
π Compressed: Yes, 80.37%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: collectives-westend-1007000 (collectives-westend-0.tx5.au1)
π³οΈ system.setCode hash: 0x68a26809692f9147407297cec30803c79555d1b539939e905b5b91e5e801fe7a
π³οΈ authorizeUpgrade hash: 0x9f6e79b09813802491f87fd49aa904423f40c41efb7000c907ceb8210cf7a857
π³οΈ Blake2-256 hash: 0x4fc1411ffcfe4ba8f002d97e2fd32da34714c8393588acefb4f463ff03ae36a8
π¦ IPFS: https://www.ipfs.io/ipfs/QmZsfSFqijMsprGx7wY2ef9QtW7E6diV9ELp72jCMg1Cpv
ποΈ Runtime size: 0.844 MB (885,451 bytes)
π Compressed: Yes, 79.61%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: coretime-westend-1007000 (coretime-westend-0.tx0.au1)
π³οΈ system.setCode hash: 0xd51c3f3f8910576cc091bf033bc52e18fb44a73cdbd2eadfe97db77d41c03c88
π³οΈ authorizeUpgrade hash: 0x860b7b209336985fb1733e6b24823eb62f24896e35740f8bd0c0b16c8d041fd1
π³οΈ Blake2-256 hash: 0x8c48ce6e3636328385c29f3e4fa5f0f4e5eeeff6e1d9e36f11d489a16dde696e
π¦ IPFS: https://www.ipfs.io/ipfs/QmTrN2LhjRn52Mymcwg3prNvJNk2RWSLLDzsyV7sno2j1g
ποΈ Runtime size: 0.546 MB (572,163 bytes)
π Compressed: Yes, 76.65%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: glutton-westend-1007000 (glutton-westend-0.tx1.au1)
π³οΈ system.setCode hash: 0xfdb7bd3801b3250c136066a878353c6cd5c83b95d065acf977daff7d7022da47
π³οΈ authorizeUpgrade hash: 0x4a18fd9f8e857aad42ae6d2c0dd5cfd79f2c25e5e35d1f61ba2518576d9d2dc8
π³οΈ Blake2-256 hash: 0xe52cbeee457bb8c8e748536da5dd5b0ef3fa079abdda86940a1034576a84212f
π¦ IPFS: https://www.ipfs.io/ipfs/QmTDn5UJWT3habPBBiuebcLk4FJPyQ7bnwUJTpJaymSDgB
ποΈ Runtime size: 0.892 MB (935,728 bytes)
π Compressed: Yes, 79.59%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: people-westend-1007000 (people-westend-0.tx0.au1)
π³οΈ system.setCode hash: 0x9cfd53e5820b100430b4f085a392ac45e1c7b2c742de09a8b14ce1ac721db63c
π³οΈ authorizeUpgrade hash: 0x794e02607f5cef65c997d296cdad233e2923d1f51144d2c954c16327177f7abe
π³οΈ Blake2-256 hash: 0x6dd054d921cc01892835fc38354532a087ac3f7d7b7264b70c78288ba3b02a0a
π¦ IPFS: https://www.ipfs.io/ipfs/QmUzfvJfhtrNidD4LKweMynww8BBmMtjjdkhcZ8UjYkxwm
ποΈ Runtime size: 1.532 MB (1,606,091 bytes)
π Compressed: Yes, 79.79%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: rococo-1007000 (parity-rococo-v2.0-0.tx24.au0)
π³οΈ system.setCode hash: 0xc09e58e1d53e95b9844bdd765fcb746d32a522fd03586efe60cd9ba443aa0746
π³οΈ authorizeUpgrade hash: 0x37e1233ce9b5e24538d8c13b1b7c7125992beb218e412297fb592ec0d1b6aed8
π³οΈ Blake2-256 hash: 0x3aef2214f1b12a9a6d2a5890d71fa3a8879e29efd14a1377976d26eceb61ccbc
π¦ IPFS: https://www.ipfs.io/ipfs/QmaMoKW23EM8McN3LTLTUPXLwqjBvDoedUV1iWb1gJpmXb
ποΈ Runtime size: 1.205 MB (1,263,249 bytes)
π Compressed: Yes, 80.71%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: statemine-1007000 (statemine-0.tx14.au1)
π³οΈ system.setCode hash: 0x920541f407404457bcaabbf77c9ec79e7de09d5ac115f84a57dae2cf4c0b1e0a
π³οΈ authorizeUpgrade hash: 0x1640c015e3a4eab2dd399b5475bc05ba7413e7e8b97e62d8adf36c2de7993efe
π³οΈ Blake2-256 hash: 0x2fa670a729b4a891bd375f62020629013853839464c48ee68fa45dd26715e28f
π¦ IPFS: https://www.ipfs.io/ipfs/QmWSu4i87NLeB1XGiNr8xBtmqyUMBq1HbppXzyH9mvuUar
ποΈ Runtime size: 1.275 MB (1,337,062 bytes)
π Compressed: Yes, 78.63%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: bridge-hub-rococo-1007000 (bridge-hub-rococo-0.tx4.au1)
π³οΈ system.setCode hash: 0x3bcdab6fdd5c5708a776f255bde6854693ae01f686999b4534fd2fab160d92da
π³οΈ authorizeUpgrade hash: 0xab1fd03f6e67ef7d718856b85b87f458074829504834ebe7edec551f9292f6ba
π³οΈ Blake2-256 hash: 0x49284e74a213185e27d78676702d9dbb045a04c15ed12b8fcae3170edf9a778d
π¦ IPFS: https://www.ipfs.io/ipfs/QmPJT42Estg4eSzXQ5e6WzBMf5N1w8wo83wJTFJ2EF6uDj
ποΈ Runtime size: 1.207 MB (1,265,977 bytes)
π Compressed: Yes, 79.85%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: contracts-rococo-1007000 (contracts-rococo-0.tx6.au1)
π³οΈ system.setCode hash: 0xec4b5d2a34e5ef727e8856f9a282dfed273c2acc7dda0921cfe60d7dc2bc6c3f
π³οΈ authorizeUpgrade hash: 0xfb0e36a4d4aba12274cd2aeb15872c4467bc7bebc28e4725fd7bcb60cfd862d5
π³οΈ Blake2-256 hash: 0xedf060b616f148300d55f693aadf74713c6db68c911d1a39e5ac1dda38485c19
π¦ IPFS: https://www.ipfs.io/ipfs/QmVnakWvgPKF6X6FtcToULECYeZa1Cq9h2mUj9ZzjdTd78
ποΈ Runtime size: 0.896 MB (939,268 bytes)
π Compressed: Yes, 79.58%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: coretime-rococo-1007000 (coretime-rococo-0.tx0.au1)
π³οΈ system.setCode hash: 0x5725c355036b000c8004c739d3e6983fd2e80ab054b91df9f8b1e8a3b1771b26
π³οΈ authorizeUpgrade hash: 0x9ccc2ab2adb967dab8ec644c6fdc662587d712f22b371f62dbe5d434a5dede52
π³οΈ Blake2-256 hash: 0x4d260993fcf091490de24114a8b648c01cb555012422aab4d1b5bb5bf726a297
π¦ IPFS: https://www.ipfs.io/ipfs/QmXSHoTHszsEsHCYYTHQE7Looic5ntsL8AvzmoJTMu3byZ
ποΈ Runtime size: 0.891 MB (934,165 bytes)
π Compressed: Yes, 79.62%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: people-rococo-1007000 (people-rococo-0.tx0.au1)
π³οΈ system.setCode hash: 0xd8ec1fc15d0932871c1e7f3de86269e31e0e26cb7cac35df11a0a40b806dd60a
π³οΈ authorizeUpgrade hash: 0xbd0fafd0e40f1c277872cf91bf10557e9f0d0274e0bd32f6139169ff14a90041
π³οΈ Blake2-256 hash: 0x26c9c9e0041937900af9bb06d7907e4c055a514db765c742c6b1893babebee84
π¦ IPFS: https://www.ipfs.io/ipfs/QmUo7R7akEd9Wk5SGhVKRimNsDRciRtknbH3B8aRFzoNGo
Node Dev
.Restores the behaviour of the nomination pools V6ToV7
migration so that it still works when the pallet will be upgraded to V8 afterwards.
Moves BEEFY related pallets behind session_pallet
for Rococo and Westend runtimes.
Effects that each MmrLeaf
in the MMR generated by mmr_pallet
for block<N>
references the next_auth_set
of block<N>
and not block<N-1>
.
Breaking change for proofs generated by mmr_generateProof
Makes it possible for the candidate validation subsystem to create backpressure on subsystems requesting to validate a candidate through limiting the number of simultaneously processed validation tasks.
availability-distribution
and biftield-distribution
subsystem benchmarkThe new subsystem benchmark test objective (DataAvailabilityWrite
) is designed to stress test the part of the pipeline that takes as input a backed candidate and then distributes it as erasure coded chunks to other validators. The test pulls in the av-store
, bitfield-distribution
and availability-distribution
subsystems while the whole network and rest of the node subsystems are emulated.
ChainSync
WarpSync
, and StateSync
as the logical part of warp sync, are extracted from ChainSync
as independent syncing strategies. SyncingStrategy
enum is introduced as a proxy between SyncingEngine
and specific strategies. SyncingStrategy
may be replaced by a trait in a follow-up PRs.
Renamed transaction_unstable_submitAndWatch
to transactionWatch_unstable_submitAndWatch
,
transaction_unstable_watchEvent
to transactionWatch_unstable_watchEvent
and
transaction_unstable_unwatch
to transactionWatch_unstable_unwatch
.
Optimizes overseer building strategy to only include subsystems needed to run the given type of node. Reduces overseer overhead and also solves the problem with unused subsystems getting stalled from time to time.
Node Operator
.For validators: Adds a new, optional security capability. Most modern Linux machines should support it, otherwise you will get a warning like: "- Optional: Cannot call clone with all sandboxing flags, a Linux-specific kernel security features: not available". If you are already running in a secure environment such as a container, this may conflict with our security features; your only option may be to ignore the warning. Otherwise, it is recommended to upgrade your Linux version!
--disable-log-color
Fixes some places that weren't respecting the --disable-log-color
CLI flag.
Modifies the jsonrpc server to be "backpressured" and it's possible to configure how many messages can be "buffered" via the CLI --rpc_message_buffer_capacity
.
Major changes in this PR:
Runtime Dev
.The ranked-collective pallet got the ability to swap members but the core-fellowship and salary pallets would not be notified of this change. This MR adds MemberSwappedHandler
to the collective that is implemented by both pallets.
A new version of the XCM format. The main changes are:
Multi
prefix from typesAbstract
asset idOutcome
is now a named fields structReanchorable
trait, implemented for both Location
and Asset
Location
s and Junction
s using slices.
You build them like let location = Location::new(1, [Parachain(1000), PalletInstance(50), GeneralIndex(1984)]);
and match on them like match location.unpack() { (1, [Parachain(id)]) => ... (0, Here) => ..., (1, [_]) => ..., }
Balances::force_adjust_total_issuance
Introduce a root extrinsic to forcefully adjust the Total Issuance. Should only be used to fix historic errors.
Implements an XCM executor WeightTrader
, facilitating fee payments in any asset that can be exchanged for a native asset.
A few constraints need to be observed:
buy_weight
and refund
operations must be atomic, as another weight trader implementation might be attempted in case of failure.Introduces a new adapter, NonFungibleAdapter
, to work with frame_support::traits::tokens::nonfungible
through XCM.
Moves BEEFY related pallets behind session_pallet
for Rococo and Westend runtimes.
Effects that each MmrLeaf
in the MMR generated by mmr_pallet
for block<N>
references the next_auth_set
of block<N>
and not block<N-1>
.
Adds conformance tests for the Balanced and Unbalanced fungible traits. Fixes Unbalanced::decrease_balance not respecting preservation. Fixes Balanced::pair possibly returning pairs of imbalances which do not cancel each other out. Method now returns a Result instead (breaking change). Fixes Balances pallet active_issuance possible 'underflow'. Refactors the conformance test file structure to match the fungible file structure: tests for traits in regular.rs go into a test file named regular.rs, tests for traits in freezes.rs go into a test file named freezes.rs, etc. Improve doc comments. Simplify macros.
Changes the Rococo runtime Ethereum fork config to include the Deneb hard-fork. Updates the Snowbridge subtree with preparation for Deneb. Removes the beacon-minimal-spec
feature.
#[pallet::composite_enum]
improved variant count handling + removed pallet_balances
's MaxHolds
configThe implementation of the VariantCount
trait for aggregate composite enums, such as RuntimeHoldReason
and RuntimeFreezeReason
, has been fixed.
It is now calculated as the sum of VariantCount::VARIANT_COUNT
for all corresponding #[pallet::composite_enum]
.
The Balances
pallet's Config
item type MaxHolds
has been removed, and type Holds
is now bound to the variant count of the composite enum RuntimeHoldReason
.
Consequently, the runtime does not need to consider setting the correct value for MaxHolds
.
notes:
type MaxHolds
from the impl pallet_balances::Config for Runtime
in the runtime.type RuntimeHoldReason = RuntimeHoldReason
is set for impl pallet_balances::Config for Runtime
.This PR fixes an issue whereby when a nomination pool allowed for permissionless unbonding of funds, the implicit claimed rewards were mistakenly sent to the caller of the unbond
, and not the actual member. A nomination pool only allows permissionless unbonding when its state was set into Destroying
by the operator.
Transactional processing was introduced for certain XCM instructions. They are:
Developers must specify a TransactionalProcessor
when configuring their XCM executor.
FRAME-based runtimes would simply need to configure it with FrameTransactionalProcessor
to enable transactional processing. To disable transactional processing of XCMs, ()
may also be specified as the type for TransactionalProcessor
.
For runtimes that are not FRAME-based but would like to still harness transactional processing of XCMs, a type implementing the ProcessTransaction
trait must be specified as the type for TransactionalProcessor
. This trait is for the purpose of connecting the chain's runtime transactional processor with the XCM executor -- any implementation of ProcessTransaction
is possible to be assigned as the TransactionalProcessor
for the XCM executor.
Serialize/Deserialize trait implemented in no-std for XCM v3 and v4 assets types
Removed the #[unstable]
attrribute on sr25519_verify
host function.
try-state
to the pallet_xcm
The current release includes the new XCMv4
, so the runtimes must incorporate a migration pallet_xcm::migration::MigrateToLatestXcmVersion<Runtime>
to ensure
proper data migration in pallet_xcm
.
Runtime User
.With the added UniquesTransactor
Rococo and Westend Asset-Hub are now capable of handling XCM transfers with pallet-uniques.
Add a exchange_member
extrinsic to the ranked-collective
pallet that allows to vote on swapping the AccountId of a member. This can be used to recover lost access to a collective.
With this PR all newly registered parachains must pay a deposit equivalent to the cost of registering validation code of the maximum size. Consequently, they can upgrade their code to the maximum size at any point without additional cost.
Async backing has been enabled on Asset Hub Rococo, which now targets 6s block times.
paras_inherent drops any backing votes from disabled validators on block import and asserts that no votes from disabled validators are included in a block during execution
This PR allows Coretime regions to be cross-chain transferred from the Rococo Coretime chain.
try-state
hook to tips palletEnforces the following invariants;
This release contains the changes from polkadot-v1.5.0
to polkadot-v1.6.0
.
This release was built and tested against the following versions of rustc. Other versions may work.
Rust Stable: rustc 1.74.0 (79e9716c9 2023-11-13)
Rust Nightly: rustc 1.75.0-nightly (9d83ac217 2023-10-31)
ποΈ Runtime size: 1.562 MB (1,637,835 bytes)
π Compressed: Yes, 78.95%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: westend-1006000 (parity-westend-0.tx24.au2)
π³οΈ system.setCode hash: 0xce66c9fa3a48c63687513934dbc9a57bc5071fc5f97ab9302dca23a0c1e425c9
π³οΈ authorizeUpgrade hash: 0x128da921419d7743d663213bc2e245f04bf274b18efe6a32e4c9613aed803a2d
π³οΈ Blake2-256 hash: 0xb7b7a532804babb534bde7872c38e51e89e18832a912d2a65506270a0e47abeb
π¦ IPFS: https://www.ipfs.io/ipfs/QmWXAVjAo1QLqS4LxMfGPFpCPHkykCx6DXeVkm5cHEZaq9
ποΈ Runtime size: 1.079 MB (1,131,096 bytes)
π Compressed: Yes, 80.05%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: westmint-1006000 (westmint-0.tx14.au1)
π³οΈ system.setCode hash: 0x2445c78ca331c4ee5fb5193d5cc2f556dbf36171c95550210d2ffa739e96a02f
π³οΈ authorizeUpgrade hash: 0xea14982747a628b50946c825c74d5070d916549c3223b819072a1c2260a0cbc9
π³οΈ Blake2-256 hash: 0x7d842925d6726a3b814de703a354a828f4d8d8bf3464f284e7f61773acb3409a
π¦ IPFS: https://www.ipfs.io/ipfs/QmP5d7k3XRukeqEa7DGD42aDR83EyB5LSWnbiPcziHYtkQ
ποΈ Runtime size: 0.916 MB (960,000 bytes)
π Compressed: Yes, 78.30%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: bridge-hub-westend-1006000 (bridge-hub-westend-0.tx4.au1)
π³οΈ system.setCode hash: 0xb2a6ec4b55b9c038577ef6ef796340989e43b51dbae3d7a790f15a809fed583c
π³οΈ authorizeUpgrade hash: 0xc5ee192b5ebf36d1546394405f9d24e77470e612fe7e473e2d6a46abb99b2315
π³οΈ Blake2-256 hash: 0xa6b3c1921fda48811a74cdd4709bcd9bd51e59da6f4229f4ee3cece1e374ed43
π¦ IPFS: https://www.ipfs.io/ipfs/QmVQHk9vQ7WQbnRx5VWvGrB876RGetX3QFYERLEfd2vbeP
ποΈ Runtime size: 0.767 MB (804,476 bytes)
π Compressed: Yes, 78.66%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: coretime-westend-1006000 (coretime-westend-0.tx0.au1)
π³οΈ system.setCode hash: 0x77d8610654a500994478822fbad015fcc7097141add5963204fe00b87f044aa1
π³οΈ authorizeUpgrade hash: 0x823eb2c9fe55c387e4a3acf4324d8ada60874fb746a7a2445629c46e31dfb3a1
π³οΈ Blake2-256 hash: 0xd984aa8a670cdf56355a079dbde6a7bff6400e7afb0cf8eb0882824a81d5bfb6
π¦ IPFS: https://www.ipfs.io/ipfs/QmU3pMBhq1ErAFih2LYwzbeWcW1rBwZrfDRX9JrhuTQG8C
ποΈ Runtime size: 0.967 MB (1,013,562 bytes)
π Compressed: Yes, 79.62%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: collectives-westend-1006000 (collectives-westend-0.tx5.au1)
π³οΈ system.setCode hash: 0xf0b49506aa03df48406171e7c63660fb38541171f06c24cb5eb6aa3efecc21df
π³οΈ authorizeUpgrade hash: 0x44a3b0438f54ab59ec59fd9af5b59e2e6eb19f73f479868181e6cb929597be31
π³οΈ Blake2-256 hash: 0xc20de93729ada76a8cebc4869acea6a21e889003cc297d7ebbea39cdfbd3979a
π¦ IPFS: https://www.ipfs.io/ipfs/QmbJCZgJNtF4RFQ7hTcW68kCP8FryirR1ccnmUTVfKGtBL
ποΈ Runtime size: 0.510 MB (534,953 bytes)
π Compressed: Yes, 76.41%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: glutton-westend-1006000 (glutton-westend-0.tx1.au1)
π³οΈ system.setCode hash: 0x2f17ad93507272e1e14e7da12299396be4117e81f203a63a803d35e3c1f896a1
π³οΈ authorizeUpgrade hash: 0x57fc47d0bf1691699c83e16ec498e5b3ad11ea1719871e18cacde6fd6570e1e0
π³οΈ Blake2-256 hash: 0xf288f7ee2cd5405eeb2ad3cc9edfd487238e526af92cbac6c24809e96f158f9f
π¦ IPFS: https://www.ipfs.io/ipfs/QmUiafAKc6Q2i51sTTisFF7fZKJpHompaNfdPg2kYkN7Mz
ποΈ Runtime size: 0.803 MB (842,127 bytes)
π Compressed: Yes, 78.71%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: people-westend-1006000 (people-westend-0.tx0.au1)
π³οΈ system.setCode hash: 0x056a6736e915abd2055e64f8ae5fe71d9671c2640d0acf671aa8099735c2ec64
π³οΈ authorizeUpgrade hash: 0xad2ec1cbb27c8f0f9ac74f5c7fee20fd5664cedb7b262eabdb02a60e3f781b35
π³οΈ Blake2-256 hash: 0xc872ecbe32a989c9ed3bee03a9f26d665c128a8566773812bc3e84012b1560d3
π¦ IPFS: https://www.ipfs.io/ipfs/QmUn95kxzizNpyZuS6cjdSg4AEMp98TD8NNYdakuCaSbDc
ποΈ Runtime size: 1.446 MB (1,516,051 bytes)
π Compressed: Yes, 79.38%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: rococo-1006001 (parity-rococo-v2.0-0.tx24.au0)
π³οΈ system.setCode hash: 0x1316b146bd9a5c22bce025d294d2d685081be0cf1340075cbaea52f7ce590657
π³οΈ authorizeUpgrade hash: 0x590095e251448b28ea66ff111131e12685467aceece62bf0756af72827c2cabb
π³οΈ Blake2-256 hash: 0xb5a792069b84a5e4389b08f60873a7aafdf9122102e74caa311b504dad9c938c
π¦ IPFS: https://www.ipfs.io/ipfs/QmSPvcySQVDj6VpmndYSgdYQ2ZW5vaF8CeuWNym74Ca6eq
ποΈ Runtime size: 1.066 MB (1,117,768 bytes)
π Compressed: Yes, 80.20%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: statemine-1006000 (statemine-0.tx14.au1)
π³οΈ system.setCode hash: 0xefa819b8323182e7aab3eaf1b325933d2239ef928a696d9f128a2903eb41727c
π³οΈ authorizeUpgrade hash: 0xa5389dfaff4ec1b836066462ae1a8251a680a1b7225e60a51916ed130a0bbd44
π³οΈ Blake2-256 hash: 0x75b1c75556c469fa77f6c9e23f9703ed8465105a5adc033752fa411cf7ebcdd8
π¦ IPFS: https://www.ipfs.io/ipfs/QmdwaooDRmh3MesJJPsdqtk9smD8AKxqttWX7pkZDVwQuv
ποΈ Runtime size: 1.172 MB (1,229,451 bytes)
π Compressed: Yes, 77.91%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: bridge-hub-rococo-1006000 (bridge-hub-rococo-0.tx4.au1)
π³οΈ system.setCode hash: 0x5f80b7e26170f22c16620291f37776589418b4b2239b99251a4ca85504a34637
π³οΈ authorizeUpgrade hash: 0xf467b1d841e17f1febf54321400c41941a268f3ec1a81258a33b6182a747cf0f
π³οΈ Blake2-256 hash: 0x8b1fec547c00557cf076f3dd45225fc0a7005461b2e9c7569a0d5f0768828bba
π¦ IPFS: https://www.ipfs.io/ipfs/QmPG9BXBnfGLvstUfgdAkboLkLh7vrXBUPj2Vv5ULt962K
ποΈ Runtime size: 0.815 MB (854,781 bytes)
π Compressed: Yes, 78.72%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: coretime-rococo-1006001 (coretime-rococo-0.tx0.au1)
π³οΈ system.setCode hash: 0x9404a62face1ab8314d2993d7eeddad38b6130bf0b9328b80426db5cce2bfeba
π³οΈ authorizeUpgrade hash: 0x2a2ca3e77d8353b429e373eb49b3ada5dca61ac5e20a4d89a7d9a3cc81bd2e5a
π³οΈ Blake2-256 hash: 0x323aaa09deab189dd1003a3f28ca15afcd7b30ef5df60fb7a13f37d47005ff2f
π¦ IPFS: https://www.ipfs.io/ipfs/Qmbcdg8DdEF8UEgzjHzVbjagnXhc8DsSSyVQj7q2MM3gQk
ποΈ Runtime size: 0.803 MB (842,457 bytes)
π Compressed: Yes, 78.70%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: people-rococo-1006000 (people-rococo-0.tx0.au1)
π³οΈ system.setCode hash: 0x59853e5cdab775c28c6ce40cb72f146705cf4bf3c95813397dad7e32a13ad357
π³οΈ authorizeUpgrade hash: 0x0ed8ba152a615a408bd44aa2a35abf52ae8e023e9f1df91957153f03469efc7a
π³οΈ Blake2-256 hash: 0x52c2bbea8442f4b5d67c6fd5f407bf834eada6fadaf6d594b3a4d9dfa2e68ff8
π¦ IPFS: https://www.ipfs.io/ipfs/QmU8P2BejjkFZpENQuUd6Rg3muDWrgg1E6yPQ4QJDfmAKP
OverlayedChanges
public. (@ParthDesai) [Node]support-disabled
(@ordian) [Node]Balances::transfer
and Balances::set_balance_deprecated
functions. (@juangirini) [Pallets]UnionOf
types for merged fungible
and fungibles
implementations (@muharem) [Frame]VersionedMigration
(@bkchr) [Frame]BetterUnsignedThreshold
from pallet config (@Ank4n) [Frame]fungible::Unbalanced::decrease_balance
: Handle precision
properly (@bkchr) [Frame]HaulBlobExporter
with improved XCM version check. (@bkontur) [Bridges, Cumulus]ExportGenesisStateCommand
to ExportGenesisHeadCommand
(@JoshOrndorff) [Cumulus]on_initialize
etc. (@bkchr) [Cumulus]This release contains the changes from polkadot-v1.4.0
to polkadot-v1.5.0
.
β οΈNote: It's possible to run into a warning similar to this one:
- Optional: Cannot unshare user namespace and change root, which are Linux-specific kernel security features: could not create a temporary directory in "/tmp/.tmpIcLriO": No such file or directory (os error 2) at path "/tmp/.tmpIcLriO/check-can-unshare-4XnFgA"
Mitigation: This is not harmful. The validator will have to make sure the PVF artifact directory (listed in the error message) exists, and restart the node.
Issue: https://github.com/paritytech/polkadot-sdk/issues/2662
This release was built and tested against the following versions of rustc. Other versions may work.
Rust Stable: rustc 1.73.0 (cc66ad468 2023-10-03)
Rust Nightly: rustc 1.71.0-nightly (8b4b20836 2023-05-22)
ποΈ Runtime size: 1.544 MB (1,619,298 bytes)
π Compressed: Yes, 78.91%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: westend-1005000 (parity-westend-0.tx24.au2)
π³οΈ system.setCode hash: 0x7619dd2232afab450ded927b733409baedd060162251ac18732d55471bb35d53
π³οΈ authorizeUpgrade hash: 0x24b50325466d1e4065b51e0685cac6a1d9be9d65d216e635b9444ec7234e859f
π³οΈ Blake2-256 hash: 0x725d74166c9b22e6f93dfb98bb526ce971af30947ad5f6074375756c6771ea07
π¦ IPFS: https://www.ipfs.io/ipfs/QmNcbjJ9a39aW1RLXBhTY51cQbFuBYs7s6bRe4otRfLALy
ποΈ Runtime size: 1.069 MB (1,120,561 bytes)
π Compressed: Yes, 80.18%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: westmint-1005000 (westmint-0.tx14.au1)
π³οΈ system.setCode hash: 0x53455c527ffec93a6cbd4ff03262e373edef2ffbd8f490ac2a21f149a3eac2eb
π³οΈ authorizeUpgrade hash: 0x772ca460f149e178a0d544f9577dd403787712b6207b2d12ffa72f7a5908fa73
π³οΈ Blake2-256 hash: 0xb8b9a3f1226cf9db8cca725d8624b75600f3945a62d617e9bdcf8f904da53a52
π¦ IPFS: https://www.ipfs.io/ipfs/QmNUV35XrAa4JTku1Sn3nGtMwYLfevTyqEuxuKp4wgjKD9
ποΈ Runtime size: 0.905 MB (949,124 bytes)
π Compressed: Yes, 78.34%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: bridge-hub-westend-1005000 (bridge-hub-westend-0.tx4.au1)
π³οΈ system.setCode hash: 0x04c0b283c8e88dd35cd1a6c45d8e5b2516eb3bbe2503b1246320c6171e764349
π³οΈ authorizeUpgrade hash: 0x063b29d22e5c82b80ce36009da8e35acf8f8277bf3fe9a68b5001bccd18cfa5a
π³οΈ Blake2-256 hash: 0x78346da655e2ae77bac7a676589903bfc75d0964ba1f9332bd01a410bd2a5bc5
π¦ IPFS: https://www.ipfs.io/ipfs/QmSbQHhkBbriKVthCTzBaQph8UkZwzYNmteY56TgcvpiC6
ποΈ Runtime size: 1.399 MB (1,466,792 bytes)
π Compressed: Yes, 79.49%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: rococo-1005000 (parity-rococo-v2.0-0.tx24.au0)
π³οΈ system.setCode hash: 0x8a08ccb7901956c3ca0158229cbf49794d17d43d454c4098b97d57f8760983da
π³οΈ authorizeUpgrade hash: 0x571781280cafc9a4c14c998d196441df45645dd963a1b36ce914e0d32dec26bb
π³οΈ Blake2-256 hash: 0xfa3da9d9755d8423f44662231f55b2285fbd4a0065d7390620956c41a5c8cdf8
π¦ IPFS: https://www.ipfs.io/ipfs/QmPp7KM353zWMe4XfkGsUyFRgZzNiJuwvdvDnR8RWk1rry
ποΈ Runtime size: 1.055 MB (1,106,346 bytes)
π Compressed: Yes, 80.26%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: statemine-1005000 (statemine-0.tx14.au1)
π³οΈ system.setCode hash: 0x63ad9a824d2c8057b3fd412e278d13cd4e9378524abd38278b7a5babc280703e
π³οΈ authorizeUpgrade hash: 0xa2f9ba739f9871cc851025a686c1a55333108d4012e5686cc4fa72f97d061416
π³οΈ Blake2-256 hash: 0x6c0aa00a9060554ce55477d9953757ee8736da2312934eec3d479914dc837aa9
π¦ IPFS: https://www.ipfs.io/ipfs/Qmdfv9MoWEQcGfXGvq48SBi686WZAoECzrLASZG3JpccPH
ποΈ Runtime size: 0.902 MB (945,922 bytes)
π Compressed: Yes, 78.32%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: bridge-hub-rococo-1005000 (bridge-hub-rococo-0.tx4.au1)
π³οΈ system.setCode hash: 0x6336ad5716f9712842888697a446ebe9fc5375fd214d13c0b46e7a862978080b
π³οΈ authorizeUpgrade hash: 0xdc8a01857a2e2897c388aaaeb691cbd6c142dfb32ef69ee2cea46525df51153f
π³οΈ Blake2-256 hash: 0xb9bd0af05545604dc69436a52fe8b2f5bef7451a60a211be772ee3a7adc5e114
π¦ IPFS: https://www.ipfs.io/ipfs/QmWhJWPVmEANDuwumGBE2HUvQmRCuMZi2pWomBwan6mB6W
ποΈ Runtime size: 0.932 MB (977,135 bytes)
π Compressed: Yes, 79.59%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: collectives-westend-1005000 (collectives-westend-0.tx5.au1)
π³οΈ system.setCode hash: 0x98b3ffa24fa7c1d0a74639ad39218aef304f49922cf72d5bdfda102020fbe65a
π³οΈ authorizeUpgrade hash: 0x76a992fada765f98bedbad8c5ad10a2ac83c04ebd27ca83aab13d43d2ea3280a
π³οΈ Blake2-256 hash: 0xc255fc27faba1245dc0e625f62f40a58aabc84a7ae25a39a97d5da11207e7e90
π¦ IPFS: https://www.ipfs.io/ipfs/QmVesx4r6QUaXyJxVM4JfMJ3jpDLt9KUczPBKFtBQZiEfQ
ποΈ Runtime size: 0.502 MB (526,908 bytes)
π Compressed: Yes, 76.56%
β¨ Reserved meta: OK - [6D, 65, 74, 61]
π Metadata version: V14
π₯ Core version: glutton-westend-1005000 (glutton-westend-0.tx1.au1)
π³οΈ system.setCode hash: 0xeab87499ae1ca392aa76185393a9edd079795198ca3ed4298b33f2803530f0ea
π³οΈ authorizeUpgrade hash: 0xcce2792a394e32265769598e0c73ad560b47c494533d383ed49d6885c9f35406
π³οΈ Blake2-256 hash: 0x72bbe8efd163898655e8cf77af0637248d0b6a05b8f1830865970abec86dd078
π¦ IPFS: https://www.ipfs.io/ipfs/QmeHtEjFUu8ex3gVSKZdScev1G3yeE7K4oF5rXtf8Hzy3h
sc-network
(@altonen) [Node]delayed_best_block
flag added (@michalkucharczyk) [Node]lazy_static
removed, light parser for address URI added (@michalkucharczyk) [Node]no such file or directory
error (@mrcnski) [Node]NativeElseWasmExecutor
is no longer used (@michalkucharczyk) [Node]gossip-support
(@rphmeier) [Node]ring-context
generic over domain size (@davxy) [Node]pallet_xcm::transfer_assets()
call/extrinsic (@acatangiu) [Pallets]MaxUnbonding
to metadata (@rossbulat) [Pallets]EraInfo
to manipulate exposure in fast-unstake tests (@Ank4n) [Pallets, Tests]dmp-queue
pallet from Rococo Asset Hub and Bridge Hub (@liamaharon) [Frame]chill_other
takes stash instead of controller (@rossbulat) [Pallets]AllPalletsWithoutSystemReversed
(@skunert) [Frame]frame_system::LastRuntimeUpgrade
after running try-runtime migrations
(@liamaharon) [Frame]dmp_queue pallet
from Westend SP runtimes (@liamaharon) [Frame]remove_member
(@bkchr) [Frame]PalletXcmExtrinsicsBenchmark
(@joepetrowski) [Benchmarks]ChainApiBackend
added + polkadot-debug image version fixed (@michalkucharczyk) [Tests]SafeMode
and TxPause
Pallets (@wilwade) [Documentation]pov-recovery
race condition/Improve zombienet test (@skunert) [Testing]QueueConfigData
(@serban300) [XCM]RewardDestination::Controller
(@rossbulat) [XCM]__private
(@bkchr) [Runtime api]ExportXcm::validate
implementation for BridgeHubs (@bkontur) [Bridges]force_default_xcm_version
for testnet system parachains (@bkontur) [Cumulus]RuntimeApi
dependency on system parachain runtime code (@seadanda) [System parachains]on-chain-release-build
feature for Collectives Westend (@liamaharon) [System parachains]