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

latest releases: polkadot-stable2409-rc1, v1.16.0-rc1, polkadot-stable2407-2...
6 months ago

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

Changelog

Changelog for Node Dev

[#3187]: Retrying an execution on failed runtime construction

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.

[#3233]: provisioner: allow multiple cores assigned to the same para

Enable supplying multiple backable candidates to the paras_inherent pallet for the same paraid.

[#3447]: Use generic hash for runtime wasm in resolve_state_version_from_wasm

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.

Changelog for Node Operator

[#3523]: Fix crash of synced parachain node run with --sync=warp

Fix crash of SyncingEngine when an already synced parachain node is run with --sync=warp (issue #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

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

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

[#3510]: Fix multi-collator parachain transition to async backing

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.

[#3504]: add prometheus label "is_rate_limited" to rpc calls

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.

Changelog for Runtime Dev

[#3491]: Remove Deprecated OldWeight

Removed deprecated sp_weights::OldWeight type. Use [weight_v2::Weight] instead.

[#3002]: PoV Reclaim Runtime Side

Adds a mechanism to reclaim proof size weight.

  1. Introduces a new SignedExtension that reclaims the difference
    between benchmarked proof size weight and actual consumed proof size weight.
  2. Introduces a manual mechanism, StorageWeightReclaimer, to reclaim excess storage weight for situations
    that require manual weight management. The most prominent case is the on_idle hook.
  3. Adds the 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.

[#3378]: Remove deprecated GenesisConfig

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

[#1554]: Runtime Upgrade ref docs and Single Block Migration example pallet

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.

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

[#1781]: Multi-Block-Migrations, poll hook and new System Callbacks

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

[#3377]: Permissioned contract deployment

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.

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

[#2393]: [XCMP] Use the number of 'ready' pages in XCMP suspend logic

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.

[#3505]: Removes 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.

[#3460]: Repot all templates

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

[#3643]: Fix weight refund for 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.

[#3665]: Revert "FRAME Create TransactionExtension as a replacement for SignedExtension (#2280)"

This PR reverts the PR which introduced TransactionExtension to replace SignedExtension.

[#3371]: removed pallet::getter from example pallets

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

[#3574]: Generate test functions for each benchmark with benchmarking v2

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.

[#3453]: [pallet-nomination-pools]: 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.

[#3606]: [pallet_contracts] mark lock/unlock_delegate_dependency as stable

Lock and unlock delegate dependency are stable now, so we can mark them as such.

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

[#3411]: add Encointer as trusted teleporter for Westend

add Encointer as trusted teleporter for Westend with ParaId 1003

[#3454]: Introduce storage attr macro #[disable_try_decode_storage] and set it on System::Events and ParachainSystem::HostConfiguration

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 #2560.
Applied the attribute to ParachainSystem::HostConfiguration to resolve periodic issues with it.

[#1378]: Construct Runtime V2 - An outer macro approach to define the runtime

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.

  1. #[runtime::runtime] attached to a struct defines the main runtime
  2. #[runtime::derive] attached to the runtime struct defines the types generated by the runtime
  3. #[runtime::pallet_index] must be attached to a pallet to define its index
  4. #[runtime::disable_call] can be optionally attached to a pallet to disable its calls
  5. #[runtime::disable_unsigned] can be optionally attached to a pallet to disable unsigned calls
  6. A pallet instance can be defined as TemplateModule: 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.

[#3636]: [pallet_broker] Fix Linear::adapt_price behavior at zero

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

[#3540]: [pallet-contracts] Only allow non-deterministic code to be uploaded with Determinism::Relaxed

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.

[#3403]: Add 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.

[#3412]: [FRAME] Add genesis test and remove some checks

The construct_runtime macro now generates a test to assert that all GenesisConfigs 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.

[#3324]: Fix weight calculation and event emission in pallet-membership

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.

[#3513]: Fix call enum's metadata regression

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.

Changelog for Runtime User

[#3403]: Add 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.

[#3639]: Prevents staking controllers from becoming stashes of different ledgers; Ensures that no ledger in bad state is mutated.

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:

  • Checks if stash is already a controller when calling Call::bond and fails if that's the case;
  • Ensures that all fetching ledgers from storage are done through the StakingLedger API;
  • Ensures that a 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.
  • Prevents stashes which are controllers or another ledger from calling set_controller, since that may lead to a bad state.
  • Adds further try-state runtime checks that check if there are ledgers in a bad state based on their bonded metadata.

[#3513]: Fix call enum's metadata regression

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.

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

Westend AssetHub

🏋️ 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

Westend BridgeHub

🏋️ 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

Westend Collectives

🏋️ 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

Westend Coretime

🏋️ 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

Westend Glutton

🏋️ 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

Westend People

🏋️ 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

Rococo

🏋️ 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

Rococo AssetHub

🏋️ 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

Rococo BridgeHub

🏋️ 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

Rococo Contracts

🏋️ 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

Rococo Coretime

🏋️ 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

Rococo People

🏋️ 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

Don't miss a new polkadot-sdk release

NewReleases is sending notifications on new releases.