Skip to content

Polkadot v1.10.0

Compare
Choose a tag to compare
@EgorPopelyaev EgorPopelyaev released this 09 Apr 13:13
· 2 commits to release-polkadot-v1.10.0 since this release
7049c3c

This release contains the changes from polkadot-v1.9.0 to polkadot-v1.10.0.

Changelog

Changelog for Node Dev

[#3521]: Collator side changes for elastic scaling

Parachain teams wishing to utilize the benefits of elastic scaling will need to upgrade their collator code to include these changes.

[#3302]: Collator protocol changes for elastic scaling

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.

[#3950]: Add ClaimQueue wrapper

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

[#3795]: Enable collators to build on multiple cores

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.

[#3580]: Expose 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).

[#3854]: Export unified 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.

[#3479]: Elastic scaling: runtime dependency tracking and enactment

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.

Changelog for Runtime Dev

[#3817]: Parachain Runtime API Implementations into mod apis Refactoring

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.
  • Introduction of apis.rs centralizes runtime API implementations, promoting a cleaner and more navigable project structure.
  • The main runtime library file, 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:

  • Improved Project Structure: Centralizing API implementations offers a more organized and understandable project layout.
  • Enhanced Readability: The refactoring efforts aim to declutter lib.rs, facilitating easier comprehension for new contributors.

[#3722]: Fix kusama 0 backing rewards when entering active set

This PR fixes getting 0 backing rewards the first session when a node enters the active set.

[#3607]: XCM fee payment API

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.

[#3761]: Snowbridge: Synchronize from Snowfork repository

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.

[#3792]: [pallet-xcm] fix transport fees for remote reserve transfers

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.

[#3808]: Fix spelling mistakes in source code

Public crate changes:

  • The public trait RuntimeParameterStore in substrate/frame/support had the associated type renamed from AggregratedKeyValue to AggregatedKeyValue.
  • The public trait AggregratedKeyValue in substrate/frame/support was similarly renamed to AggregatedKeyValue.
  • The public methods 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.
  • The public functions read_trie_first_descendant_value and read_child_trie_first_descendant_value in substrate/primitives/trie had the spelling of descedant changed to descendant.

[#3714]: Handle legacy lease swaps on coretime

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.

[#3740]: Removed pallet::getter usage from Beefy and MMR pallets

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

[#3927]: pallet-xcm: deprecate transfer extrinsics without weight limit

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.

[#3738]: Removed 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.

[#3190]: Fix algorithmic complexity of the on-demand scheduler.

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.

[#3654]: Remove 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.

[#3718]: Deprecate scheduler traits v1 and v2

Add #[deprecated] attribute to scheduler traits v1 and v2 to deprecate old versions

[#3471]: removed pallet::getter from cumulus pallets

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

[#3754]: Migrates Westend to Runtime V2

This PR migrates Westend from construct_runtime to Runtime V2 as introduced in #1378

[#3350]: removed pallet::getter from Pallet AURA

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

[#3749]: pallet-xcm: deprecate execute and send in favor of execute_blob and send_blob

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.

[#3835]: migrations: prevent accidentally using inner unversioned migration instead of 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
    }
}

[#3616]: Benchmarking pallet V2 syntax extension: pov_mode attribute

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() {
  ..
}

[#3844]: Add the ability for MessageQueue to process enqueued messages on idle

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

[#3696]: Add HRMP notification handlers to the xcm-executor

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.

Changelog for Node Operator

[#3302]: Collator protocol changes for elastic scaling

Validators are required to upgrade to this version before collators in order to support the elastic scaling of parachains.

[#3808]: Fix spelling mistakes in source code

Some spelling mistakes in log output, error messages and tracing (prometheus/grafana) have been fixed.

[#3961]: Added support for coretime-kusama/polkadot and people-kusama/polkadot

The support for running coretime-kusama and people-kusama collators with polkadot-parachain-bin have been added.

Changelog for Runtime User

[#3341]: Fix schedule_code_upgrade when called by the owner/root

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

[#3849]: Unrequest a pre-image when it failed to execute

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.

[#3438]: Pools: Make PermissionlessWithdraw the default claim permission

Makes permissionless withdrawing the default claim permission, giving any network participant access to claim pool rewards on member's behalf, by default.

[#3706]: Extrinsic to restore corrupted staking ledgers

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 #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:

  • Adds Call::restore_ledger extrinsic to recover a corrupted ledger;
  • Adds trait frame_support::traits::currency::InspectLockableCurrency to allow external pallets to read current locks given an account and lock ID;
  • Implements the InspectLockableCurrency in the pallet-balances.
  • Adds staking locks try-runtime checks (#3751)

[#3850]: Detect incorrect pre-image length when submitting a referenda

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.

[#3749]: pallet-xcm: deprecate execute and send in favor of execute_blob and send_blob

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.

[#3246]: Try State Hook for Beefy.

Invariants for storage items in the beefy pallet. Enforces the following Invariants:

  1. Authorities should not exceed the MaxAuthorities capacity.
  2. NextAuthorities should not exceed the MaxAuthorities capacity.
  3. ValidatorSetId must be present in SetIdSession.

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

Westend AssetHub

πŸ‹οΈ 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

Westend BridgeHub

πŸ‹οΈ 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

Westend Collectives

πŸ‹οΈ 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

Westend Coretime

πŸ‹οΈ 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

Westend Glutton

πŸ‹οΈ 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

Westend People

πŸ‹οΈ 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

Rococo

πŸ‹οΈ 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

Rococo AssetHub

πŸ‹οΈ 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

Rococo BridgeHub

πŸ‹οΈ 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

Rococo Contracts

πŸ‹οΈ 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

Rococo Coretime

πŸ‹οΈ 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

Rococo People

πŸ‹οΈ 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