Skip to content

Conversation

@bkontur
Copy link
Contributor

@bkontur bkontur commented Mar 17, 2025

Closes: paritytech/polkadot-sdk#7578
Relates: paritytech/polkadot-sdk#7541
Relates: paritytech/polkadot-sdk#7566

This PR introduces all relevant changes and settings for RC and system parachains related to the migration of OpenGov to Polkadot AssetHub. The counterpart for Kusama AssetHub can be found here: #776 #877.

TODO

  • check/setup governance origin/root/plurality propagation from migrated AssetHub governance to relaychain (before/during/after AHM)
  • check/setup governance origin/root/plurality propagation from migrated AssetHub governance to system parachains (before/during/after AHM)
  • add integration tests that ensure governance can authorize_upgrade relay/system chains
  • Add LocalPalletOrSignedOriginToLocation to the AH
  • All system parachains needs to accept StakingAdmin from AH and RC because of CollatorSelectionUpdateOrigin
    • Except AssetHub needs to accept StakingAdmin from local OpenGov AH and RC
  • Add the test that AH's OpenGov RuntimeOrigin:root is propagated to the relaychain as root (should work because of EnsureXcmOrigin)

bkontur and others added 4 commits March 27, 2025 09:47
…pl (#9)

* [Governance tests] can_authorize_upgrade_for_system_chains initial impl

* Update integration-tests/emulated/tests/governance/polkadot/src/open_gov_on_relay.rs

* [Governance tests] Add more chains & extract common logic to utility funcs

---------

Co-authored-by: Branislav Kontur <[email protected]>
* [Governance tests] can_authorize_upgrade_for_system_chains initial impl

* Update integration-tests/emulated/tests/governance/polkadot/src/open_gov_on_relay.rs

* [Governance tests] Add more chains & extract common logic to utility funcs

* [Governance tests] Introduce Asset Hub authorize upgrade itself scenario

* [Governance tests] assethub_can_authorize_upgrade_for_polkadot scenario

* [Governance tests] Refactor + assethub_can_authorize_upgrade_for_system_chains

* [Governance tests] Comments changes

* Update integration-tests/emulated/tests/governance/polkadot/src/lib.rs

Co-authored-by: Branislav Kontur <[email protected]>

* Apply suggestions from code review

---------

Co-authored-by: Branislav Kontur <[email protected]>
@bkontur
Copy link
Contributor Author

bkontur commented Mar 27, 2025

@karolk91 very nice, tests fail exactly where we expected:

RUST_LOG=xcm=trace cargo test -p governance-polkadot-integration-tests assethub_can_authorize_upgrade_for_relay_chain
2025-03-27T08:52:49.591959Z TRACE xcm::process_instruction: Processing instruction instruction=UnpaidExecution { weight_limit: Unlimited, check_origin: None }
2025-03-27T08:52:49.591967Z TRACE xcm::process_instruction: Processing instruction instruction=Transact { origin_kind: Superuser, require_weight_at_most: Weight { ref_time: 5000000000, proof_size: 500000 }, call: "0x00090101010101010101010101010101010101010101010101010101010101010101" }
2025-03-27T08:52:49.591979Z TRACE xcm::process_instruction::transact: Processing call call="0x00090101010101010101010101010101010101010101010101010101010101010101"
2025-03-27T08:52:49.591989Z TRACE xcm::convert_origin: Converting origin origin=Location { parents: 0, interior: X1([Parachain(1000)]) } kind=Superuser

...

2025-03-27T08:52:49.592041Z TRACE xcm::convert_origin: Converting origin failed
2025-03-27T08:52:49.592046Z TRACE xcm::process_instruction::transact: Failed to convert origin to a local origin. origin=Location { parents: 0, interior: X1([Parachain(1000)]) } origin_kind=Superuser
2025-03-27T08:52:49.592056Z TRACE xcm::execute: !!! ERROR: BadOrigin

You could continue, with:

  • fix the failing tests for Polkadot with *SystemParachainAsSuperuser-like solution
  • copy those tests for Kusama
    • find some existing Kusama referenda for upgrading Kusama+system parachains
    • create governance-kusama-integration-tests
    • stuff, which can be reused (dispatch_whitelisted_call_with_preimage, dispatch_note_preimage_call) move to the integration-tests-helpers

@bkontur bkontur force-pushed the bko-ahm-governance-root branch from d1c1358 to 66d4cea Compare March 27, 2025 09:08
@bkontur bkontur moved this to In progress in Plaza: AHM Mar 28, 2025
karolk91 and others added 2 commits April 10, 2025 09:51
* [AHM Gov] AssetHub as Superuser on Polkadot relay - utils & config

* [Governance tests] LocationAsSuperuser - shared utils & chains configuration

* [Governance tests] Formatting - cargo fmt

* [AHM Gov] Replace custom ContainsAssetHub with Equals

* Fix Cargo.toml(s) formatting with taplo

* Use Equals instead of custom struct for tests

* Update pallets/common/src/lib.rs

* Rustdocs for LocationAsSuperuser

* Update pallets/common/src/lib.rs

---------

Co-authored-by: Branislav Kontur <[email protected]>
github-merge-queue bot pushed a commit to paritytech/polkadot-sdk that referenced this pull request Apr 10, 2025
…uced (#8210)

Relates to: polkadot-fellows/runtimes#651
Already used by: polkadot-fellows/runtimes#626

# Description

This PR introduces a `LocationAsSuperuser` struct that implements
`ConvertOrigin` to allow some `Location` chosen by the XCM configuration
to act as Root on the local chain.

Implementation is generic over `Location` but was created for purposes
of allowing AssetHub system chain (by other system chains and relay
chains) to execute Root level extrinsics like `authorize_upgrade` on
them.

## TODO
* [ ] backport to stable2412
* [ ] backport to stable2503

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Adrian Catangiu <[email protected]>
Co-authored-by: Branislav Kontur <[email protected]>
paritytech-release-backport-bot bot pushed a commit to paritytech/polkadot-sdk that referenced this pull request Apr 10, 2025
…uced (#8210)

Relates to: polkadot-fellows/runtimes#651
Already used by: polkadot-fellows/runtimes#626

# Description

This PR introduces a `LocationAsSuperuser` struct that implements
`ConvertOrigin` to allow some `Location` chosen by the XCM configuration
to act as Root on the local chain.

Implementation is generic over `Location` but was created for purposes
of allowing AssetHub system chain (by other system chains and relay
chains) to execute Root level extrinsics like `authorize_upgrade` on
them.

## TODO
* [ ] backport to stable2412
* [ ] backport to stable2503

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Adrian Catangiu <[email protected]>
Co-authored-by: Branislav Kontur <[email protected]>
(cherry picked from commit 7755066)
paritytech-release-backport-bot bot pushed a commit to paritytech/polkadot-sdk that referenced this pull request Apr 10, 2025
…uced (#8210)

Relates to: polkadot-fellows/runtimes#651
Already used by: polkadot-fellows/runtimes#626

# Description

This PR introduces a `LocationAsSuperuser` struct that implements
`ConvertOrigin` to allow some `Location` chosen by the XCM configuration
to act as Root on the local chain.

Implementation is generic over `Location` but was created for purposes
of allowing AssetHub system chain (by other system chains and relay
chains) to execute Root level extrinsics like `authorize_upgrade` on
them.

## TODO
* [ ] backport to stable2412
* [ ] backport to stable2503

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Adrian Catangiu <[email protected]>
Co-authored-by: Branislav Kontur <[email protected]>
(cherry picked from commit 7755066)
EgorPopelyaev added a commit to EgorPopelyaev/polkadot-sdk that referenced this pull request Apr 24, 2025
* Snowbridge - Deny ExportMessage from everywhere except for root of AH (#8037)

Follow up of #7402 , for the comments in
https://github.com/paritytech/polkadot-sdk/pull/6838#issuecomment-2677270666.

Related PR
- https://github.com/paritytech/polkadot-sdk/pull/7169 
- https://github.com/paritytech/polkadot-sdk/pull/7200

The initial idea and review came from @bkontur—many thanks! I'll also
add a companion PR in https://github.com/polkadot-fellows/runtimes if
this one gets merged.

* Cumulus Zombienet: Fix readme + provide a script (#8034)

Make the life easier for users who want to reproduce these tests
locally.

* [CI/CD] Fix failing backports to release branches if something was changed in the .github/workflows folder (#8042)

This PR fixes the problem with the backports, when something was changed
in the workflow files or in `.github` folder in general.
Initially, those PR's were failing due to lack of permissions:
<img width="1280" alt="Screenshot 2025-03-26 at 10 42 38"
src="https://github.com/user-attachments/assets/0c934256-87e6-4f28-8d6d-75d3634c053a"
/>

* Migrate `pallet-whitelist` to umbrella crate (#6514)

Part of https://github.com/paritytech/polkadot-sdk/issues/6504

polkadot address: 15rM9idTv1izwNFqPabfcT4jkqHDsEvHSa5fASAUZwZcS4Yw

---------

Co-authored-by: Giuseppe Re <[email protected]>

* Expose rpc_rate_limit* cli options to parachains (#7994)

Expose rpc_rate_limit* cli options to parachains

---------

Co-authored-by: Bastian Köcher <[email protected]>

* XCM: Some weight fixes for `InitiateTransfer` (#7835)

- Added some base weight for `InitiateTransfer` no matter what.
- Short circuit on `AllCounted(0)` to not have to go through all
fungibles.
- Change `assets` to `BoundedVec`

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Adrian Catangiu <[email protected]>

* Updated readme and shell script bash version (#8045)

# Description

Replaced the NPM instructions to install @polkadot/api-cli with Yarn
instructions, and added MacOS instructions for bash and JQ install. Also
changed the shell scripts to use the environment's default version of
bash instead of /bin/bash.

## Integration

None needed

## Review Notes

Trying to run run-test.sh with the old api-cli causes an obtuse
divide-by-zero error in the setup of the bridge.
The shell scripts were changed to allow more flexibility with the bash
version; Mac's official version of bash does not support certain
commands used in the scripts, so the user must install a new version of
bash (e.g. with Brew) whose path will not be /bin/bash.

* [AHM] Revert v17 migration of pallet-staking in Westend (#8059)

closes part of https://github.com/paritytech/polkadot-sdk/issues/8061.

++ remove all epmb files.

Note: Polkadot and Kusama are below this version (v15) and would not be
affected.

* Add expensive scenario for asset exchange (#7952)

This PR introduces a proper implementation for
`worst_case_asset_exchange()` in the `AssetHubWestend` benchmarking
setup, ensuring accurate weight calculations and preparing for
integration tests. It addresses #7943 partially.

### **Key Changes**  
- **Implemented `worst_case_asset_exchange()`** with a realistic
high-cost asset exchange scenario.
- **Generated accurate weight benchmarks** for `exchange_asset`.  
- **Replaced placeholder weight implementation** (`Weight::MAX`) with
real benchmarked values.
- **Added integration tests** to validate correctness and performance.  

### **Integration Notes**  
- These changes ensure the benchmarking pipeline correctly reflects real
execution costs.
- The next steps involve verifying benchmark results, backporting to
`stable2503`, and deploying on `AssetHubWestend`.

### **Review Notes**  
- [x] **Check `worst_case_asset_exchange()` logic**—does it properly
model the most expensive execution path?
- [x] **Verify weight integration**—are the benchmarked weights
correctly applied?
- [x] **Ensure tests cover edge cases**—do the
[tests](https://github.com/paritytech/polkadot-sdk/issues/7943#issuecomment-2731941120)
properly handle all edge cases?

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Branislav Kontur <[email protected]>
Co-authored-by: Francisco Aguirre <[email protected]>

* Validator disabling in session enhancements (#7663)

On top of [7581](https://github.com/paritytech/polkadot-sdk/pull/7581).

Adds the missing testing cases and adresses some overdue review feedback
post merge.

- [x] Clean up disabling interface
- [x] Review disabling severity defaults in the refactor
- [x] Verify and test disabling duration (should be era long)
- [x] Add always sorted try-runtime test for DisabledValidators.
- [x] expose severities
- [x] better debuggin/tracing
- [x] Make migration more robust
- [x] Ensure we dont disable for past era slashes (+test)
- [x] Move disabling strategy tests from staking to session (left some
there as it also tests the offence pipeline)
- [ ] more?

* Make the default 85% usage of the PoV (#8040)

Increased the default PoV usage to 85% and also added a cli argument as
a backup option in the `unlikely` case that overshooting might be more
than, so that parachain collator can use it to unblock themselves

Fixes: https://github.com/paritytech/polkadot-sdk/issues/8009

---------

Signed-off-by: Alexandru Gheorghe <[email protected]>
Co-authored-by: Sebastian Kunert <[email protected]>
Co-authored-by: s0me0ne-unkn0wn <[email protected]>
Co-authored-by: Bastian Köcher <[email protected]>

* Cleanup Elastic Scaling Checks for FeatureIndex::ElasticScalingMVP (#7286)

## Description
This PR addresses [issue
#6352](https://github.com/paritytech/polkadot-sdk/issues/6352), which
proposes cleaning up the codebase by assuming that the
FeatureIndex::ElasticScalingMVP feature is always enabled.

## Integration
- Removed the traces of the `elastic_scaling_mvp` scaling limitation
(provisioner)
- Removed the traces of `inject_core_index` scaling limitation (backing)

## Review Notes
- The inject_core_index flag is used to support elastic scaling. When
true, the core index is injected into the BackedCandidate, enabling
dynamic core allocation and deallocation.
- I removed this check in the backing file since we assume elastic
scaling is enabled.
```
node_features
    .get(FeatureIndex::ElasticScalingMVP as usize)
    .map(|b| *b)
    .unwrap_or(false);
```
- I removed this check in the provisioner file since we assume elastic
scaling is enabled.
```
request_node_features() 
```
```
if !elastic_scaling_mvp && core_count > 1 {
			continue
		}
```

---------

Co-authored-by: Alin Dima <[email protected]>

* [XCM] allow signed account to be aliased between system chains (#7983)

Fixes https://github.com/polkadot-fellows/runtimes/issues/635

# New alias filter defined

The PR introduces a new Alias filter that allows account `X` on a system
chain to alias itself on another chain where the filter is installed.

This allows UX improvements like configuring other chains to allow
signed account on AH to operate over XCM on another chain using the same
signed account on the remote chain (rather than use a sovereign
account).

E.g. ALICE sets her identity on People chain directly from AH (where her
funds are). Sets identity for account ALICE on People using a
cross-chain action initiated from AH using account ALICE (on AH).

# Aliasing configuration for system chains

- Asset Hub: does not allow same account aliasing: there is no real
world demand for it, the direction is usually reversed, users already
have accounts on AH and want to use them cross-chain on other chains.
Without real world demand, it's better to keep AH permissions as tight
as possible.
- Bridge Hub: does not allow same account aliasing: there is no real
world demand for it, only low-level power users (like relayers) directly
interact with Bridge Hub. They don't need aliasing to operate
cross-chain they can operate locally.
- Collectives: allows account A on a sibling system chain to alias into
the local account A.
- Coretime: allows account A on a sibling system chain to alias into the
local account A.
- People: allows account A on a sibling system chain to alias into the
local account A.

# Practical example showcased

`Alice` on AssetHub can set identity for `Alice` on People over XCM.

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Bridges: Add initial primitives for AssetHub bridging (#8063)

This resolves TODO no. 1:
https://github.com/paritytech/parity-bridges-common/issues/3136#issue-2913441160

To add cli support to substrate-relay as described in above issue, 
necessary changes from
[this](https://github.com/paritytech/polkadot-sdk/pull/6675) PR are
added by this PR.

Specifically below changes and any other supportive changes.

```
// bridges/chains/chain-asset-hub-rococo/src/lib.rs
impl Chain for AssetHubRococo {..}
impl Parachain for AssetHubRococo {..}
```

```
// bridges/chains/chain-asset-hub-westend/src/lib.rs
impl Chain for AssetHubWestend {..}
impl Parachain for AssetHubWestend {..}
```

---------

Co-authored-by: Branislav Kontur <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Remove primitives (#8057)

# Description

Removes the bridge-related primitives for Polkadot and Kusama from
/bridges/chains, to be moved into parity-bridges-common and
polkadot-fellows/runtimes, per [this
issue](https://github.com/polkadot-fellows/runtimes/pull/627). Also
tweaks the readme and scripts to be more platform-agnostic.
**NB**: This will require those who run the bridge zombienet tests to
rename the zombienet binary from `zombienet-linux-x64` to just
`zombienet`.

## Integration

This update breaks parity-bridges-common's dependency on these
primitives, which are re-added to parity-bridge-common in [this
PR](https://github.com/paritytech/parity-bridges-common/pull/3145).

* Update zombienet version to `1.3.127` (#8071)

Includes fixes for ci failures like
https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/8414908.

cc: @skunert

* Voting hook (#7703)

# Description
This is a continuation of the following
[PR](https://github.com/paritytech/polkadot-sdk/pull/5735#discussion_r1967297490)

---------

Co-authored-by: Bastian Köcher <[email protected]>

* frame-system: Don't underflow the sufficients (#8062)

Closes: https://github.com/paritytech/polkadot-sdk/issues/8044

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* [Staking] Extrinsic `migrate_currency` handles any scenario where an old staking lock exists (#7933)

closes #7931.

## Context
The `Currency::lock` to `fungible::hold` migration for pallet-staking is
async. This means a staker can interact with their stake before
migration occurs. In such cases, only the new hold amount gets updated,
while the old lock remains in place without any change. To fully migrate
and release the old lock, the permissionless `migrate_currency`
extrinsic can be used.

## The bug
Because the migration is async, the ledger amount and the old lock can
become out of sync. The current implementation only allows the extrinsic
to execute when `lock_amount == ledger.total`, which is too restrictive
and blocks valid migrations.

## The fix
`Staking::migrate_currency` is updated to handle any scenario where an
old staking lock still exists. If a lock is found, it will be cleared,
and the corresponding hold amount will be properly updated to reflect
the total staked balance.


## Migration stats from rerunning all migration as a remote test: 
Westend: `success: 73023, err: 0, total force withdrawn stake:
340726297547707, no_migration_needed: 53`
Kusama: `success: 26096, err: 0, total force withdrawn stake:
893395700711867, no_migration_needed: 0`
Polkadot: `success: 56044, err: 0, total force withdrawn stake:
157489603546239, no_migration_needed: 0`

---------

Co-authored-by: kianenigma <[email protected]>

* Optimize origin checks (#8000)

Optimize origin checks, avoid cloning and conversion when not needed.

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Snowbridge - Various minor improvements (#8020)

- **Renames event in the Outbound Queue v2**: Resolves
[SNO-1430](https://linear.app/snowfork/issue/SNO-1430)
- **Remove unnecessary PaidFees event in Inbound Queue:** Resolves
[SNO-1437](https://linear.app/snowfork/issue/SNO-1437)
- **Remove unused types from Inbound Queue v2 pallet config:** Resolves
[SNO-1436](http://linear.app/snowfork/issue/SNO-1436)
- **Zero relayer reward in Inbound Queue should not be registered for a
reward:** Resolves
[SNO-1435](https://linear.app/snowfork/issue/SNO-1435)
- **Moves Snowbridge System Frontend Pallet index from `80` to `36` on
AH**:
https://github.com/paritytech/polkadot-sdk/pull/7402#discussion_r2012104826
- **Add message rejected event to outbound queue:** Resolves
[SNO-1428](https://linear.app/snowfork/issue/SNO-1428) Closes
https://github.com/paritytech/polkadot-sdk/issues/7972
- **Removes unused method from Outbound Queue v2:** Resolves
[SNO-1431](https://linear.app/snowfork/issue/SNO-1431)
- **Fixes bug introduced in V2 related to commands on Ethereum's
indexes:** Introduced in
https://github.com/paritytech/polkadot-sdk/pull/7402, the command IDs
need to match on the [contract
side](https://github.com/Snowfork/snowbridge/blob/b2eb7a4e0e8f9ef6182ff378733453a9513cb76b/contracts/src/Types.sol#L78).
This ensures that when we upgrade BH with the new code, it will remain
compatible with the existing contracts on Ethereum that don't know
anything about V2.
- **Benchmarks `submit_delivery_receipt` in the Outbound Queue v2**
- **Allow transact without transfer of any asset**

---------

Co-authored-by: Ron <[email protected]>

* link-checker: Remove broken URL to claim statement. (#8070)

This time for real, lets get link-checker green once again.

https://statement.polkadot.network/regular.html does not exist anymore.

Its really shitty that we are now only showing a multihash, but the url
is useless anyway. I also don't know what exactly was shown there.

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* fix(substrate/client): cast `MAJOR_SYNC_BLOCKS` to usize (#8094)

Rustc started complaining from some versions onward when calling `into`
on `MAJOR_SYNC_BLOCKS`.

Not sure what's the version from which it fails, but it does. I'm on
1.85.1, it did fail on 1.82 as well.

---------

Co-authored-by: Iulian Barbu <[email protected]>

* Cleanup unused crates (#8006)

Follow up to #7999

RustRover warns several dependencies are unused.
I tried to remove them, and it can pass compile and tests on my local
machine (macOS and Ubuntu 24.04), but `udeps` doesn't find these.

I've no confidence. Let's see what CI says.

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* network: remove handling of validation protocol versions 1 and 2 (#7449)

## Issue
[[#7410] Remove validation protocol versions 1 and
2](https://github.com/paritytech/polkadot-sdk/issues/7410)

## What was done?
- [X] Remove `ValidationVersion` `V1` and `V2`;
- [X] Clean up `ApprovalDistributionMessage`;
- [X] Clean up `BitfieldDistributionMessage`;
- [X] Clean up `StatementDistributionMessage`;
- [X] Add PRdoc.

## What is left to do?
- Clean up the `Versioned` enum:
- Separate collation from validation (not sure if it's possible, but if
it is, it will require significant changes);
- Remove definitions of old versions of messages whose handling was
removed in this PR (should not be difficult, probably 1-2 days of work).
- Remove the `v2` folder from `statement-distribution` since there is no
longer a legacy variant (should be easy, will just require updating
imports where it is used).

* Migrate `pallet-tx-pause` to umbrella crate (#6630)

Part of https://github.com/paritytech/polkadot-sdk/issues/6504

polkadot address: 15rM9idTv1izwNFqPabfcT4jkqHDsEvHSa5fASAUZwZcS4Yw

---------

Co-authored-by: bennethxyz <[email protected]>
Co-authored-by: Giuseppe Re <[email protected]>

* Stabilize V2 archive RPC methods (#8104)

# Description

This PR Stabilizes the V2 archive RPCs, and should merge following the
[correpsonding
PR](https://github.com/paritytech/json-rpc-interface-spec/pull/167) in
the spec repository merging.

## Integration

Downstream projects can now rely on the `archive_*` RPC methods on being
stable. Anybody using the prior `archive_unstable_*` RPCs in recent
times should be able to upgrade by simply renaming `archive_unstable` to
`archive_v1` for any RPC calls, given that the actual interface hasn't
changed since December 2024.

<!--

* [ ] My PR follows the [labeling requirements](

https://github.com/paritytech/polkadot-sdk/blob/master/docs/contributor/CONTRIBUTING.md#Process
) of this project (at minimum one label for `T` required)
* External contributors: ask maintainers to put the right label on your
PR.
* [ ] I have made corresponding changes to the documentation (if
applicable)
* [ ] I have added tests that prove my fix is effective or that my
feature works (if applicable)

You can remove the "Checklist" section once all have been checked. Thank
you for your contribution!

-->

* runtime: assume elastic scaling MVP is always enabled (#7986)

The runtime part of
https://github.com/paritytech/polkadot-sdk/issues/6352.

The node-side part is handled by
https://github.com/paritytech/polkadot-sdk/pull/7286 (which should be
merged first)

* rpc v2 archive: more verbose error types in API (#8109)

Builds on #8104

---------

Co-authored-by: James Wilson <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Introduce ark-vrf (#7669)

Superseeds `bandersnatch_vrfs` with
[ark-vrf](https://crates.io/crates/ark-vrf)

- Same crypto as JAM
- With a spec: github.com/davxy/bandersnatch-vrf-spec
- Published on crates.io

https://github.com/paritytech/polkadot-sdk/pull/7670 follow up

NOTE: this crypto is under experimental feat

---------

Signed-off-by: Oliver Tale-Yazdi <[email protected]>
Co-authored-by: Sebastian Kunert <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Oliver Tale-Yazdi <[email protected]>

* pallet-revive-fixtures: Support relative path for `CARGO_TARGET_DIR` (#8023)

By default this path should only be relative, while absolute is also
supported. At least from what the documentation plus internet is saying.
Right now the build script doesn't support a relative path, which is
fixed by this pr :)

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* pallet-xcm: add support to authorize aliases (#6336)

Add calls to pallet-xcm for adding and removing authorization for a
certain `aliaser` location to alias into the caller `origin`.

`pallet-xcm` also exposes an `AuthorizedAliases` filter implementation
usable with `xcm_executor::Config::Aliasers` filter to easily allow
runtimes to plug in the explicitly authorized aliases using the calls
above.

Usually useful to allow your local account to be aliased into from a
remote location also under your control (like your account on another
chain).

For example, `Alice` on `Para42` can do _something_ on Asset Hub without
having to transfer fees from `Para42`, but instead use her local Asset
Hub account:
```rust
// called by Alice on Para42
pallet_xcm::send(
	Location::new(1, Parachain(1000)),
	Xcm(vec![
		AliasOrigin(AliceOnAH),
		WithdrawAsset(fees),
		PayFees(fees),
		DoWhatever
	])
);
```

Part of [Empowered cross-chain
origins](https://github.com/paritytech/polkadot-sdk/issues/6054).

Fixes [XCM: Arbitrary Origin Aliases
#722](https://github.com/paritytech/polkadot-sdk/issues/722)

---------

Co-authored-by: command-bot <>
Co-authored-by: Francisco Aguirre <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Set PoV size limit to 10 Mb (#5884)

Okay, enough theory, let's kick it off. Closes #5334.

**UPDATE: All the concerns below are irrelevant now as 10 Mb PoVs have
been enacted on Polkadot.**

What are the implications from my point of view right now:

### After this PR is merged

All the new chains (including test ones) started from genesis will
support 10 Mb PoVs.

If some parachain updates to the SDK version containing this value and
then upgrades its runtime, the runtime will allow for 10 Mb PoVs while
the relay chain still has a 5 Mb limit. I don't think it's a problem
because the collator building a block will be limited by the PoV size
limit stored in the persistent validation data (or even half of that
limit if the `full-pov-size` feature is not enabled). That may lead to
overshooting some per-dispatch-class limits but not the absolute PoV
size limits, which is safe. Still, a malicious collator can build a
block that the relay chain will reject. I'm not 100% sure if we need to
take care of such a thing as a "malicious collator". If that's a
concern, the possibility of temporarily using another constant for
parachains is discussible.

### After this change is propagated to the fellowship runtimes

After a new relay chain runtime version with this value is released and
the runtime upgrade is performed, it will theoretically allow for a 10
Mb PoV size, but the on-chain limit will still remain at 5 Mb.

### After governance changes the `max_pov_size` config value

Everything supports 10 Mb PoVs now.

@acatangiu please comment on implications for bridges, I see it's used
in bridges code, but not sure if any special treatment is needed.

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Add chat channels to README (#8105)

This adds links to the Telegram, Discord and Matrix Polkadot SDK Dev
chat channels to the README

---------

Co-authored-by: Bastian Köcher <[email protected]>

* `pallet-xmcp-queue`: Fix broken and ignored test (#8011)

Now it works with debug asserts as well, by simply catching the panic ;)
This way the test will run by CI and not get outdated anymore.

Co-authored-by: Adrian Catangiu <[email protected]>

* Add missing prdocs (#8140)

Prdocs for:
- #7598
- #7620 
- #7627
- more?

---------

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Improve documentation around development environment configuration (#8143)

Update the development environment configuration:
- fixing the configuration for `neovim` around `cargo-remote`, where
`check` override was incorrectly set under `cargo`
- adding a note about  `neovim`/ `rustaceanvim` vs `rust-analyzer`
- adding a  basoc configuration for `Zed`
- adding a note for `Cursor`

* Bridges: Add missing initial primitives for AssetHub bridging (#8138)

This adds missing initial primitives to add CLI support for AssetHub
Bridging
earlier PR - https://github.com/paritytech/polkadot-sdk/pull/8063
source PR - https://github.com/paritytech/polkadot-sdk/pull/6675

It adds constants required to make this
[PR](https://github.com/paritytech/parity-bridges-common/issues/3136#issue-2913441160)
build.

- [x] Make
[PR](https://github.com/paritytech/parity-bridges-common/issues/3136)
build successful with these changes before merging

---------

Co-authored-by: Branislav Kontur <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Introduce `SelectCore` digest in Cumulus (#8153)

Right now the select core information are only send as an `UMPSignal` to
the relay chain. For a node to calculate the core of a block, it is
first required execute the block to call `selected_core` runtime api.

This pull requests solves this by putting the selected core into a
digest. Thus, the node can directly fetch it from the header.

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* refactor: separate validation and collation protocols (#8134)

## Details
In the previous PR #7449, I removed the handling of validation protocol
versions 1 and 2. However, I did not remove the message definitions
themselves, as both the validation and collation protocols were using
the common enum `Versioned<V1, V2, V3 = V2>`, which prevented me from
removing the message definitions for validation protocol versions 1 and
2.

The goal of this PR is to separate validation from collation by no
longer using a common `Versioned` enum and to remove validation protocol
messages that are no longer used.

## TODO
- [X] Separate versioned enums for Validation and Collation;
- [X] Update all occurrences where these enums are used;
- [X] Remove `StatementFetchingRequest/Response`, as it was part of the
already removed legacy StatementDistribution protocol;
- [X] Add PRdoc.

* Ban bandersnatch git dependency (#8136)

Changes:
- **Ban bandersnatch crate git dep**
- **Updated Mermaid with patch
https://github.com/glueball/simple-mermaid/pull/2**
- **inherit workspace dep**
- **Ban mermaid git dep**
- **Script nits**

---------

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* `xcm-emulator` improved callback triggering (`on_initialize`, `on_finalize`, `on_idle`, `OnSystemEvent`). (#8083)

This PR fixes several issues related to `xcm-emulator`:  
- Corrects parent head propagation to the `PersistedValidationData` and
`OnSystemEvent` callback.
- Triggers `on_initialize` for all pallets, not just `ParachainSystem`.
- Triggers `on_finalize` for all pallets, not just `ParachainSystem`.  
- Triggers `on_idle` for all parachain pallets.

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Bump openssl from 0.10.70 to 0.10.72 (#8166)

Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.70
to 0.10.72.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/sfackler/rust-openssl/releases">openssl's
releases</a>.</em></p>
<blockquote>
<h2>openssl-v0.10.72</h2>
<h2>What's Changed</h2>
<ul>
<li>make set_rsa_oaep_md visible to boringssl config by <a
href="https://github.com/frncs-rss"><code>@​frncs-rss</code></a> in <a
href="https://github.com/sfackler/rust-openssl/pull/2372">sfackler/rust-openssl#2372</a></li>
<li>Fix typo in openssl-sys build script by <a
href="https://github.com/rushilmehra"><code>@​rushilmehra</code></a> in
<a
href="https://github.com/sfackler/rust-openssl/pull/2375">sfackler/rust-openssl#2375</a></li>
<li>Unify the two BoringSSL codepaths a bit and simplify init by <a
href="https://github.com/davidben"><code>@​davidben</code></a> in <a
href="https://github.com/sfackler/rust-openssl/pull/2377">sfackler/rust-openssl#2377</a></li>
<li>pkey_ctx: Fix link to the corresponding OpenSSL function by <a
href="https://github.com/Jakuje"><code>@​Jakuje</code></a> in <a
href="https://github.com/sfackler/rust-openssl/pull/2378">sfackler/rust-openssl#2378</a></li>
<li>fix test on MSRV by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://github.com/sfackler/rust-openssl/pull/2383">sfackler/rust-openssl#2383</a></li>
<li>Add support for AWS-LC to openssl and openssl-sys crates by <a
href="https://github.com/skmcgrail"><code>@​skmcgrail</code></a> in <a
href="https://github.com/sfackler/rust-openssl/pull/1805">sfackler/rust-openssl#1805</a></li>
<li>Enable additional capabilities for AWS-LC by <a
href="https://github.com/skmcgrail"><code>@​skmcgrail</code></a> in <a
href="https://github.com/sfackler/rust-openssl/pull/2386">sfackler/rust-openssl#2386</a></li>
<li>Use --experimental with bindgen-cli with aws-lc build by <a
href="https://github.com/skmcgrail"><code>@​skmcgrail</code></a> in <a
href="https://github.com/sfackler/rust-openssl/pull/2389">sfackler/rust-openssl#2389</a></li>
<li>Fixed two UAFs and bumped versions for release by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://github.com/sfackler/rust-openssl/pull/2390">sfackler/rust-openssl#2390</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Jakuje"><code>@​Jakuje</code></a> made
their first contribution in <a
href="https://github.com/sfackler/rust-openssl/pull/2378">sfackler/rust-openssl#2378</a></li>
<li><a href="https://github.com/skmcgrail"><code>@​skmcgrail</code></a>
made their first contribution in <a
href="https://github.com/sfackler/rust-openssl/pull/1805">sfackler/rust-openssl#1805</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.71...openssl-v0.10.72">https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.71...openssl-v0.10.72</a></p>
<h2>openssl-v0.10.71</h2>
<h2>What's Changed</h2>
<ul>
<li>Expose rc2 ciphers on symm::Cipher by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://github.com/sfackler/rust-openssl/pull/2361">sfackler/rust-openssl#2361</a></li>
<li>add full Apache license file to openssl by <a
href="https://github.com/frncs-rss"><code>@​frncs-rss</code></a> in <a
href="https://github.com/sfackler/rust-openssl/pull/2366">sfackler/rust-openssl#2366</a></li>
<li>Release openssl v0.10.71 and openssl-sys v0.9.106 by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://github.com/sfackler/rust-openssl/pull/2369">sfackler/rust-openssl#2369</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/frncs-rss"><code>@​frncs-rss</code></a>
made their first contribution in <a
href="https://github.com/sfackler/rust-openssl/pull/2366">sfackler/rust-openssl#2366</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.70...openssl-v0.10.71">https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.70...openssl-v0.10.71</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/87085bd67896b7f92e6de35d081f607a334beae4"><code>87085bd</code></a>
Merge pull request <a
href="https://github.com/sfackler/rust-openssl/issues/2390">#2390</a>
from alex/uaf-fix</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/d1a12e21573e95727b2e38b8b65273cb389be7e4"><code>d1a12e2</code></a>
Fixed two UAFs and bumped versions for release</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/7c7b2e6c9f95e77e56ab37af70b16de75beff387"><code>7c7b2e6</code></a>
Merge pull request <a
href="https://github.com/sfackler/rust-openssl/issues/2389">#2389</a>
from skmcgrail/aws-lc-follow-up</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/34a477bff20cbe43492915338d3c12597430c345"><code>34a477b</code></a>
Use --experimental with bindgen-cli with aws-lc build</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/d4bf0710640e4725b8b237968040aef3e5f4ab9a"><code>d4bf071</code></a>
Merge pull request <a
href="https://github.com/sfackler/rust-openssl/issues/2386">#2386</a>
from skmcgrail/aws-lc-follow-up</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/a86bf670c4cba3ee5531838b52419356791d966e"><code>a86bf67</code></a>
Remove comment</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/705dbfb2ee3f2d7151ff313d840bf558435d4379"><code>705dbfb</code></a>
Fix test</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/e0df413d46a89303c42e15bf7d4566193b242466"><code>e0df413</code></a>
Skip final call for LibreSSL 4.1.0 for CCM mode</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/2f1164b5e838d3665dd10a9fac19e22174289ea3"><code>2f1164b</code></a>
Enable additional capabilities for AWS-LC</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/dde9ffb36071249ff98474eec853fd830aea44f5"><code>dde9ffb</code></a>
Merge pull request <a
href="https://github.com/sfackler/rust-openssl/issues/1805">#1805</a>
from skmcgrail/aws-lc-support-final</li>
<li>Additional commits viewable in <a
href="https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.70...openssl-v0.10.72">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openssl&package-manager=cargo&previous-version=0.10.70&new-version=0.10.72)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/paritytech/polkadot-sdk/network/alerts).

</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alexandru Vasile <[email protected]>

* rpc v2: move `archive MethodResult` to the archive mod (#8130)

Close https://github.com/paritytech/polkadot-sdk/issues/7982

Co-authored by @varun-doshi

---------

Co-authored-by: varun-doshi <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Bastian Köcher <[email protected]>

* Cleanup unused deps (#8161)

Following
https://github.com/paritytech/polkadot-sdk/issues/6906#issuecomment-2773919424

I had to examine it manually, and the result was half true.

Recent changes have also prevented me from running CI steps on my local
machine, so let's see what CI says.

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Branislav Kontur <[email protected]>

* expose current advertised xcm version (#8173)

Right now there is no "easy" way of knowing what is the currently
supported xcm version without looking at the code or the metadata. Since
pallet-xcm already has a constant to detect the latest advertised
version, there is no reason (I think) to not expose it as a constant

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Bastian Köcher <[email protected]>

* Bump tokio from 1.40.0 to 1.43.1 (#8178)

Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.40.0 to 1.43.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/tokio/releases">tokio's
releases</a>.</em></p>
<blockquote>
<h2>Tokio v1.43.0</h2>
<h1>1.43.0 (Jan 8th, 2025)</h1>
<h3>Added</h3>
<ul>
<li>net: add <code>UdpSocket::peek</code> methods (<a
href="https://github.com/tokio-rs/tokio/issues/7068">#7068</a>)</li>
<li>net: add support for Haiku OS (<a
href="https://github.com/tokio-rs/tokio/issues/7042">#7042</a>)</li>
<li>process: add <code>Command::into_std()</code> (<a
href="https://github.com/tokio-rs/tokio/issues/7014">#7014</a>)</li>
<li>signal: add <code>SignalKind::info</code> on illumos (<a
href="https://github.com/tokio-rs/tokio/issues/6995">#6995</a>)</li>
<li>signal: add support for realtime signals on illumos (<a
href="https://github.com/tokio-rs/tokio/issues/7029">#7029</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>io: don't call <code>set_len</code> before initializing vector in
<code>Blocking</code> (<a
href="https://github.com/tokio-rs/tokio/issues/7054">#7054</a>)</li>
<li>macros: suppress <code>clippy::needless_return</code> in
<code>#[tokio::main]</code> (<a
href="https://github.com/tokio-rs/tokio/issues/6874">#6874</a>)</li>
<li>runtime: fix thread parking on WebAssembly (<a
href="https://github.com/tokio-rs/tokio/issues/7041">#7041</a>)</li>
</ul>
<h3>Changes</h3>
<ul>
<li>chore: use unsync loads for <code>unsync_load</code> (<a
href="https://github.com/tokio-rs/tokio/issues/7073">#7073</a>)</li>
<li>io: use <code>Buf::put_bytes</code> in <code>Repeat</code> read impl
(<a
href="https://github.com/tokio-rs/tokio/issues/7055">#7055</a>)</li>
<li>task: drop the join waker of a task eagerly (<a
href="https://github.com/tokio-rs/tokio/issues/6986">#6986</a>)</li>
</ul>
<h3>Changes to unstable APIs</h3>
<ul>
<li>metrics: improve flexibility of H2Histogram Configuration (<a
href="https://github.com/tokio-rs/tokio/issues/6963">#6963</a>)</li>
<li>taskdump: add accessor methods for backtrace (<a
href="https://github.com/tokio-rs/tokio/issues/6975">#6975</a>)</li>
</ul>
<h3>Documented</h3>
<ul>
<li>io: clarify <code>ReadBuf::uninit</code> allows initialized buffers
as well (<a
href="https://github.com/tokio-rs/tokio/issues/7053">#7053</a>)</li>
<li>net: fix ambiguity in <code>TcpStream::try_write_vectored</code>
docs (<a
href="https://github.com/tokio-rs/tokio/issues/7067">#7067</a>)</li>
<li>runtime: fix <code>LocalRuntime</code> doc links (<a
href="https://github.com/tokio-rs/tokio/issues/7074">#7074</a>)</li>
<li>sync: extend documentation for
<code>watch::Receiver::wait_for</code> (<a
href="https://github.com/tokio-rs/tokio/issues/7038">#7038</a>)</li>
<li>sync: fix typos in <code>OnceCell</code> docs (<a
href="https://github.com/tokio-rs/tokio/issues/7047">#7047</a>)</li>
</ul>
<p><a
href="https://github.com/tokio-rs/tokio/issues/6874">#6874</a>:
<a
href="https://github.com/tokio-rs/tokio/pull/6874">tokio-rs/tokio#6874</a>
<a
href="https://github.com/tokio-rs/tokio/issues/6963">#6963</a>:
<a
href="https://github.com/tokio-rs/tokio/pull/6963">tokio-rs/tokio#6963</a>
<a
href="https://github.com/tokio-rs/tokio/issues/6975">#6975</a>:
<a
href="https://github.com/tokio-rs/tokio/pull/6975">tokio-rs/tokio#6975</a>
<a
href="https://github.com/tokio-rs/tokio/issues/6986">#6986</a>:
<a
href="https://github.com/tokio-rs/tokio/pull/6986">tokio-rs/tokio#6986</a>
<a
href="https://github.com/tokio-rs/tokio/issues/6995">#6995</a>:
<a
href="https://github.com/tokio-rs/tokio/pull/6995">tokio-rs/tokio#6995</a>
<a
href="https://github.com/tokio-rs/tokio/issues/7014">#7014</a>:
<a
href="https://github.com/tokio-rs/tokio/pull/7014">tokio-rs/tokio#7014</a>
<a
href="https://github.com/tokio-rs/tokio/issues/7029">#7029</a>:
<a
href="https://github.com/tokio-rs/tokio/pull/7029">tokio-rs/tokio#7029</a>
<a
href="https://github.com/tokio-rs/tokio/issues/7038">#7038</a>:
<a
href="https://github.com/tokio-rs/tokio/pull/7038">tokio-rs/tokio#7038</a>
<a
href="https://github.com/tokio-rs/tokio/issues/7041">#7041</a>:
<a
href="https://github.com/tokio-rs/tokio/pull/7041">tokio-rs/tokio#7041</a>
<a
href="https://github.com/tokio-rs/tokio/issues/7042">#7042</a>:
<a
href="https://github.com/tokio-rs/tokio/pull/7042">tokio-rs/tokio#7042</a>
<a
href="https://github.com/tokio-rs/tokio/issues/7047">#7047</a>:
<a
href="https://github.com/tokio-rs/tokio/pull/7047">tokio-rs/tokio#7047</a>
<a
href="https://github.com/tokio-rs/tokio/issues/7053">#7053</a>:
<a
href="https://github.com/tokio-rs/tokio/pull/7053">tokio-rs/tokio#7053</a>
<a
href="https://github.com/tokio-rs/tokio/issues/7054">#7054</a>:
<a
href="https://github.com/tokio-rs/tokio/pull/7054">tokio-rs/tokio#7054</a>
<a
href="https://github.com/tokio-rs/tokio/issues/7055">#7055</a>:
<a
href="https://github.com/tokio-rs/tokio/pull/7055">tokio-rs/tokio#7055</a></p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tokio-rs/tokio/commit/a7b658c35bd40f6811e557aeb97cbb361b612c56"><code>a7b658c</code></a>
chore: prepare Tokio v1.43.1 release</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/c1c8d1033d637d7027fdc137ec8008c5801cbc0d"><code>c1c8d10</code></a>
Merge remote-tracking branch 'origin/tokio-1.38.x' into
forward-port-1.38.x</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/aa303bc2051f7c21b48bb7bfcafe8fd4f39afd21"><code>aa303bc</code></a>
chore: prepare Tokio v1.38.2 release</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/7b6ccb515ff067151ed62db835f735e5653f8784"><code>7b6ccb5</code></a>
chore: backport CI fixes</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/4b174ce2c95fe1d1a217917db93fcc935e17e0da"><code>4b174ce</code></a>
sync: fix cloning value when receiving from broadcast channel</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/5f3296df77ad594779d1fe1a1583078ca9832daf"><code>5f3296d</code></a>
chore: prepare Tokio v1.43.0 (<a
href="https://github.com/tokio-rs/tokio/issues/7079">#7079</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/cc974a646bd3932c148e300a92fda387c23768dd"><code>cc974a6</code></a>
chore: prepare tokio-macros v2.5.0 (<a
href="https://github.com/tokio-rs/tokio/issues/7078">#7078</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/15495fd88305099d4ffa0a5583f6d8856d728ac3"><code>15495fd</code></a>
metrics: improve flexibility of H2Histogram Configuration (<a
href="https://github.com/tokio-rs/tokio/issues/6963">#6963</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/ad4183412a0c01a9a5b92de0c2dddb5471bc2563"><code>ad41834</code></a>
io: don't call <code>set_len</code> before initializing vector in
<code>Blocking</code> (<a
href="https://github.com/tokio-rs/tokio/issues/7054">#7054</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/bd3e8577377a2b684b50fc0cb50d98f03ad09703"><code>bd3e857</code></a>
runtime: move <code>is_join_waker_set</code> assertion in
<code>unset_waker</code> (<a
href="https://github.com/tokio-rs/tokio/issues/7072">#7072</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tokio-rs/tokio/compare/tokio-1.40.0...tokio-1.43.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tokio&package-manager=cargo&previous-version=1.40.0&new-version=1.43.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/paritytech/polkadot-sdk/network/alerts).

</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* benchmark: storage: Make read/write benchmarks more accurate (#7867)

There are a few problems with these read/write benchmarks which makes
them produce misleading results, especially when we enable the
trie-cache.

The problems are:
- Both benchmarks run without PoV recorder enabled, that is not accurate
for parachains because without the PoV recorder, you can directly access
the key from the value cache, while with the PoV recorder you still need
to do the walk through which uses the Node cache, e.g:
https://github.com/paritytech/trie/blob/master/trie-db/src/lookup.rs#L446.
To fix this I added I parameter enable-pov-recorder which is meant to be
used when generating the weights for parachains.
- Every write measures both the time to update the key and to compute
the storage root and commit all the changes, which is not accurate
because the storage root is computed only once at the end of the block.
For this I added a new argument --batch-size, which is used to determine
how many keys to update and performs the storage root computation only
once, it then calculate the per key write cost as `durations /
batch-size`.
- For reads when you run with the PoV recorder, there is also a benefit
from running with the same recorder rather than creating a different
recorder every read, so we again use the `batch-size` for than to obtain
the amortised cost of a read.
- bench warmup seemed to not warmup child keys even when
`include-child-trees`, so I fixed that as well

## Results on reference hardware, asset-hub-westend state
| Setup | Batch size| Amortized cost of a key write(**ns**) | Amortized
cost of a key read(**ns**)|
|--------|--------|--------|--------|
|Without TrieCache, Without PoV Recorder|1|88_521|46_981|
|Without TrieCache, With PoV Recorder|1|95_161|48_711|
|With TrieCache, Without PoV Recorder|1|66_008|528|
|With TrieCache, With PoV Recorder|1|73_145|12_142|
|Without TrieCache, Without PoV Recorder|1000|52_646|72_434|
|Without TrieCache, With PoV Recorder|1000|54_896|50_267|
|With TrieCache, Without PoV Recorder|1000|30_585|497|
|With TrieCache, With PoV Recorder|1000|33_765|6_928|
|Without TrieCache, Without PoV Recorder|10_000|48_945|52_730|
|Without TrieCache, With PoV Recorder|10_000|50_285|49_860|
|With TrieCache, Without PoV Recorder|10_000|25_903|484|
|With TrieCache, With PoV Recorder|10_000|28_417|7_153|
|Without TrieCache, Without PoV Recorder|100_000|31_359|45_839|
|Without TrieCache, With PoV Recorder|100_000|32_932|48_393|
|With TrieCache, Without PoV Recorder|100_000|20_255|493|
|*With TrieCache, With PoV Recorder*, to be used|100_000|21_998|6_908|

## Results on reference hardware asset-hub-polkadot state
| Setup | Batch size| Amortized cost of a key write(**ns**) | Amortized
cost of a key read(**ns**)|
|--------|--------|--------|--------|
|Without TrieCache, Without PoV Recorder|1|102_239|56_209|
|Without TrieCache, With PoV Recorder|1|106_659|54_256|
|With TrieCache, Without PoV Recorder|1|85_419|608|
|With TrieCache, With PoV Recorder|1|95_221|13_567|
|Without TrieCache, Without PoV Recorder|1000|61_574|53_767|
|Without TrieCache, With PoV Recorder|1000|64_770|66_162|
|With TrieCache, Without PoV Recorder|1000|35_879|597|
|With TrieCache, With PoV Recorder|1000|39_464|8_482|
|Without TrieCache, Without PoV Recorder|10_000|62_465|58_236|
|Without TrieCache, With PoV Recorder|10_000|65_082|95_118|
|With TrieCache, Without PoV Recorder|10_000|32_259|601|
|With TrieCache, With PoV Recorder|10_000|34_620|8_810|
|Without TrieCache, Without PoV Recorder|100_000|43_794|69_157|
|Without TrieCache, With PoV Recorder|100_000|45_060|66_343|
|With TrieCache, Without PoV Recorder|100_000|25_327|596|
|*With TrieCache, With PoV Recorder*, to be used|100_000|27_622|8_598|

## Results on my local machine with westend-assethub state.
| Setup | Batch size| Amortized cost of a key write(**ns**) | Amortized
cost of a key read(**ns**)|
|--------|--------|--------|--------|
|Without TrieCache, Without PoV Recorder|1| 55_443|27_510|
|Without TrieCache, With PoV Recorder|1|143_189|105_103|
|With TrieCache, Without PoV Recorder|1|37_519|370|
|With TrieCache, With PoV Recorder|1|42_569|7_309|
|Without TrieCache, Without PoV Recorder|1000| 29_364|25_150|
|Without TrieCache, With PoV Recorder|1000|33_221|107_349|
|With TrieCache, Without PoV Recorder|1000|18_355|370|
|With TrieCache, With PoV Recorder|1000|19_883|4_063|
|Without TrieCache, Without PoV Recorder|10_000| 28_336|27_765|
|Without TrieCache, With PoV Recorder|10_000|29_673|62_392|
|With TrieCache, Without PoV Recorder|10_000|15_102|370|
|With TrieCache, With PoV Recorder|10_000|16_461|4_124|
|Without TrieCache, Without PoV Recorder|100_000| 18_935|27_151|
|Without TrieCache, With PoV Recorder|100_000|19_681|48_393|
|With TrieCache, Without PoV Recorder|100_000|12_569|362|
|*With TrieCache, With PoV Recorder*, to be used|100_000|13_469|3_895|


Fixes: https://github.com/paritytech/polkadot-sdk/issues/7535

## Todo:
- [x] Run this benchmarks on reference hardware on configuration variant
closest to the production environment.

---------

Signed-off-by: Alexandru Gheorghe <[email protected]>
Co-authored-by: Bastian Köcher <[email protected]>

* Update to frame-metadata 21.0 (#8122)

This PR will update polkadot-sdk to use frame-metadata 21.0.0, for the
latest iteration of unstable V16 metadata. Hopefully this is the final
change before we do a PR to stabilize v16 metadata at the end of April.

Also updates to `merkelized-metadata` 0.5.0 which supports this version.

* chore: idiomatic rust cleanup (#8163)

Description

This PR performs a series of non-functional refactors across multiple
files to improve code readability and consistency.

Key changes include:
• Replacing verbose pattern matches with shorter .ok(), .err(), or
.ok_or()? alternatives.
• Using div_ceil() instead of manual (x + 1) / 2 calculations for better
clarity.
	•	Removing redundant .clone().take() patterns to simplify logic.
• Applying consistent and idiomatic Rust expressions throughout the
codebase.

These changes do not affect runtime functionality, but improve
maintainability and align the code with modern Rust practices.

Integration

No integration steps are required. These are non-functional refactors
that do not alter the runtime behavior or public APIs. Downstream
projects should experience no impact.

Review Notes

All changes are cosmetic or idiomatic improvements:
	•	Each change was tested to ensure it preserves the original behavior.
	•	Focus was on readability, simplicity, and reducing redundancy.
	•	No logic paths were altered; only how those paths are expressed.

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Oliver Tale-Yazdi <[email protected]>
Co-authored-by: Dónal Murray <[email protected]>

* collator protocol revamp: add new empty collator protocol subsystem for validator side (#8144)

Add a new (empty) variant for the validator side of the collator
protocol subsystem
Forms the basis for the collator protocol revamp follow-up work.

* [Backport]  Regular version bumps  and prdocs reordering from stable2503 back to master (#8186)

This PR backports regular bumps of
- regular bumps of spec_version
- regular bumps of NODE_VERSION
- prdocs reordering

---------

Co-authored-by: ParityReleases <[email protected]>

* `DeprecationInfo` propagate `#[allow(deprecated)]` attribute into the generated code. (#6312)

# Description

Propagate `#[allow(deprecated)]` attribute into the generated code, so
that code is not littered with useless warnings while `DeprecationInfo`
is still propagated in `MetadataIR`

see an example of warnings being too noisy: #6169

## Review Notes

The change itself is just propagating attribute code after specific
steps during macro expansion.

---------

Co-authored-by: command-bot <>
Co-authored-by: Bastian Köcher <[email protected]>
Co-authored-by: Guillaume Thiolliere <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* ci: mark build jobs as required (#8193)

PR creates a final build jobs that checks other build jobs to pass.
After the PR is merged I'll mark the `All builds passed` job as
`Required` and remove `Required` from gitlab jobs.

cc https://github.com/paritytech/ci_cd/issues/1041

* [AHM] Replace Validator FullIdentification from `Exposure` to `Existence` (#7936)

closes https://github.com/paritytech/polkadot-sdk/issues/6344.
related https://github.com/paritytech/substrate/pull/14048.

---

## Overview
Post-AHM, RC will no longer have validator exposure information, as all
of it will move to AH alongside `pallet-staking`. Currently, we use
`Exposure` to identify a validator when an offence report is received.
After this change, we’ll only need to check whether the validator exists
in the session.

Also, the storage map `pallet-offences::Reports` depends on the
`Exposure` type and is heavily bloated (and never cleared). There was
[some work](https://github.com/paritytech/substrate/pull/14048) to clean
it up, but it was never completed. Replacing `Exposure` with `Existence`
would make the old storage undecodable, and migrating it would be a
pain. The `pallet-offences` storage layout needs to be redesigned, and I
didn’t want to make any rushed decisions there that could lead to
long-term issues.

Instead, this PR introduces a new type, `ExistenceOrLegacyExposure`,
with a custom encoder/decoder that can handle both the legacy `Exposure`
and the new `Existence` type.

It also introduces `ExistenceOf` and `ExistenceOrLegacyExposureOf`,
which replaces `ExposureOf`. With this change, runtimes can be
configured to identify a validator based solely on their presence,
without needing full exposure data.

This is useful when configuring historical sessions. For example:
```
impl pallet_session::historical::Config for Runtime {
	type FullIdentification = pallet_staking::Existence;
	type FullIdentificationOf = pallet_staking::ExistenceOf<Runtime>;
}
```

## Backward Compatibility

For existing runtimes that still depend on the Exposure type in
pallet-offences — typically configured like this:

```
impl pallet_offences::Config for Runtime {
        ...
	type IdentificationTuple = pallet_session::historical::IdentificationTuple<Self>;
}
```

Where `IdentificationTuple` is defined as:
```
pub type IdentificationTuple<T> =
	(<T as pallet_session::Config>::ValidatorId, <T as Config>::FullIdentification);

```

You should now use `ExistenceOrLegacyExposureOf`. This type includes a
custom encoder/decoder that supports both the legacy `Exposure` and the
new `Existence` types.

This compatibility layer is essential to ensure the `Offences::Reports`
storage map can still decode older entries.


## TODO
- [x] TryStateCheck to see existing offence report decodes correctly.

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Remove `#[no_mangle]` from the panic handler (#8198)

Fixes https://github.com/paritytech/polkadot-sdk/issues/8190

Remove useless `#[no_mangle]` from the panic handler which screws up the
panic handling machinery on recent versions of Rust.

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Moved chain-bridge-hub-cumulus to chain-cumulus (#8107)

# Description

Moved the internal folder of bp-bridge-hub-cumulus as per the last task
of [this
issue](https://github.com/paritytech/parity-bridges-common/issues/2950)
and refactored some constants into parachains-common. No implementation
changes (external package name remains bp-bridge-hub-cumulus).

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Moved Rococo and Westend primitives (#8177)

# Description

Moved the Rococo and Westend bridge- and asset- hub bridge primitives
into cumulus/parachains/runtimes/rococo(westend)/bridge-primitives, as
well as chain-rococo and chain-westend into polkadot/runtime as per the
third task of [this
issue](https://github.com/paritytech/parity-bridges-common/issues/2950)

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* cumulus: `ParachainBlockData` support multiple blocks (#6137)

This pull request adds support to `ParachainBlockData` to support
multiple blocks at once. This basically means that cumulus based
Parachains could start packaging multiple blocks into one `PoV`. From
the relay chain POV nothing changes and these `PoV`s appear like any
other `PoV`. Internally this `PoV` then executes the blocks
sequentially. However, all these blocks together can use the same amount
of resources like a single `PoV`. This pull request is basically a
preparation to support running parachains with a faster block time than
the relay chain.

This changes the encoding of `ParachainBlockData`. However, encoding and
decoding is made in a backwards and forwards compatible way. This means
that there is no dependency between the collator and runtime upgrade.

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Michal Kucharczyk <[email protected]>

* Moved Rococo and Westend primitives (#8177)

# Description

Moved the Rococo and Westend bridge- and asset- hub bridge primitives
into cumulus/parachains/runtimes/rococo(westend)/bridge-primitives, as
well as chain-rococo and chain-westend into polkadot/runtime as per the
third task of [this
issue](https://github.com/paritytech/parity-bridges-common/issues/2950)

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Omni Node: Enable OCW http (#8208)

This enables the HTTP support for the OCW.


Closes: https://github.com/paritytech/polkadot-sdk/issues/8203

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* [xcm-builder][origin_conversion] LocationAsSuperuser converter introduced (#8210)

Relates to: https://github.com/polkadot-fellows/runtimes/issues/651
Already used by: https://github.com/polkadot-fellows/runtimes/pull/626

# Description

This PR introduces a `LocationAsSuperuser` struct that implements
`ConvertOrigin` to allow some `Location` chosen by the XCM configuration
to act as Root on the local chain.

Implementation is generic over `Location` but was created for purposes
of allowing AssetHub system chain (by other system chains and relay
chains) to execute Root level extrinsics like `authorize_upgrade` on
them.

## TODO
* [ ] backport to stable2412
* [ ] backport to stable2503

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Adrian Catangiu <[email protected]>
Co-authored-by: Branislav Kontur <[email protected]>

* Snowbridge - Fix penpal runtime and more tests transfer PNA (#8038)

For testing multi-hops transfer of PNA from Penpal to Ethereum, the
runtime configurations on Penpal have been revamped, including:

- Allow to teleport native asset from/to AH
- Allow to use native asset to pay fees
- Allow unpaid execution from relay chain for sudo calls

It's required for https://github.com/Snowfork/snowbridge/pull/1419 to
setup a local test environment to transfer PNA from third-party
parachains. It demonstrates that a one-click tranfer from a Parachain to
Ethereum is possible. In this case, the first hop-from Penpal to AH, is
teleport-based, while the next hop-from AH to Ethereum, is
reserved-based.

---------

Co-authored-by: Adrian Catangiu <[email protected]>

* [CI/CD] Fix polkadot, polkadot-parachain and general bin docker images (#8211)

This PR replaces `parity/base-bin ` with the `paritytech/base-bin` image
in the docker files for `polkadot`, `polkadot-parachain` and general
one. And fixes few typos in the CI flows

Closes: https://github.com/paritytech/release-engineering/issues/256

* impl ApprovedPeer UMP signal (#7955)

https://github.com/paritytech/polkadot-sdk/issues/7731

TODO:
- [x] Merge [this](https://github.com/paritytech/polkadot-sdk/pull/7986)
beforehand. It'll add some simplifications in the runtime (especially
for tests)
- [x] add more runtime tests
- [x] PRDoc

* tx/broadcast: Use client info for fetching the best block (#8162)

This PR modifies the tx broadcast logic. Previously, we relied on the
import notification stream to fetch the latest available block. In this
revision, we use the available information of the `client.info()` to
prefix the import notification stream.

The change is needed because chains could be started with `InstantSeal`,
which would not produce blocks until they encounter transactions.

Closes: https://github.com/paritytech/polkadot-sdk/issues/8157

cc @paritytech/subxt-team

---------

Signed-off-by: Alexandru Vasile <[email protected]>
Co-authored-by: Bastian Köcher <[email protected]>

* [pallet-revive] fix bn128 benchmark (#8212)

Update bn128 benchmarks

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Migrate pipeline to gha (#8068)

Migrate pipeline from gitlab to gha.

---------

Co-authored-by: Alexander Samusev <[email protected]>

* add poke_deposit extrinsic to pallet-society (#7833)

# Description

* This PR adds a new extrinsic `poke_deposit` to `pallet-society`. This
extrinsic will be used to re-adjust the deposits made in the pallet to
create a bid after AHM.
* Part of #5591 

## Review Notes

* Added a new extrinsic `poke_deposit` in `pallet-society`.
* Added a new event `DepositPoked` to be emitted upon a successful call
of the extrinsic.
* Although the immediate use of the extrinsic will be to give back some
of the deposit after the AH-migration, the extrinsic is written such
that it can work if the deposit decreases or increases (both).
* The call to the extrinsic would be `free` if an actual adjustment is
made to the deposit and `paid` otherwise.
* Added tests to test all scenarios.
* Added benchmark

## TO-DOs
* [x] Run CI cmd bot to benchmark

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Allow /cmd run with --clean flag (#8220)

/cmd with the `--clean` flag should clean up the old comments but still
run the job

* Use `TryFrom` impls instead of `as` operator in `polkadot-runtime-parachains` (#8118)

# Description

- changed conversions based on `as` operator to `usize::try_from` in
`polkadot-runtime-parachains`

## Integration

N/A

## Review Notes

N/A

---------

Signed-off-by: Iulian Barbu <[email protected]>
Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Bastian Köcher <[email protected]>
Co-authored-by: Bastian Köcher <[email protected]>
Co-authored-by: teor <[email protected]>
Co-authored-by: Guillaume Thiolliere <[email protected]>

* Refactor the host <-> runtime interface machinery (#7375)

Keep calm and stand still, it's a hijacking of PR #3689 by @koute. The
original description follows; please refer to the original PR for the
past discussions.

--- 8< --- cut here --- 8< ---

This PR refactors the way the host functions are defined.

Previously the way a given type was marshalled through the host <->
runtime boundary was hardcoded for every type by the virtue of it
implementing the relevant conversion tra…
karolk91 and others added 8 commits June 10, 2025 12:53
* [AHM Gov] AssetHub as Superuser on Polkadot relay - utils & config

* [Governance tests] LocationAsSuperuser - shared utils & chains configuration

* [Governance tests] Formatting - cargo fmt

* [AHM Gov] Replace custom ContainsAssetHub with Equals

* Fix Cargo.toml(s) formatting with taplo

* Use Equals instead of custom struct for tests

* Update pallets/common/src/lib.rs

* Rustdocs for LocationAsSuperuser

* Governance tests on Kusama

---------

Co-authored-by: Branislav Kontur <[email protected]>
* Introduce assert_whitelisted impl and usage

* Remove misleading comments
@bkontur bkontur mentioned this pull request Jun 20, 2025
16 tasks
@bkontur bkontur mentioned this pull request Sep 4, 2025
2 tasks
@bkontur bkontur changed the title [AHM] OpenGov for Polkadot AH (very draft) [AHM] OpenGov for Polkadot AH tweaks Sep 4, 2025
@bkontur bkontur merged commit bd4be6d into polkadot-fellows:oty-dev-asset-hub-migration-2506 Sep 5, 2025
4 of 10 checks passed
@github-project-automation github-project-automation bot moved this from In progress to Done in Plaza: AHM Sep 5, 2025
@bkontur bkontur deleted the bko-ahm-governance-root branch September 5, 2025 12:37
fellowship-merge-bot bot added a commit that referenced this pull request Sep 24, 2025
A high-level look of the migration is this:

<img width="1204" height="745" alt="Screenshot 2025-09-17 at 18 23 57"
src="https://github.com/user-attachments/assets/1fb39ef8-5efa-4db2-81db-6dd775af3a39"
/>

You can see the main components being the `pallet_rc_migrator` and
`pallet_ah_migrator`. The RC migrator pallet takes data out of the RC
storage and enqueues it for AH through XCM::Transact calls to the AH
migrator pallet.
Each pallet on the RC side has a migrator module that handles the
removal of the old data and creation of the messages for AH. AH then
processes these messages through the MQ pallet and acknowledges back to
RC that they were processed (not shown in the graphic).

There is rate-limiting code in place to prevent it from overloading the
DMP queue or Asset Hub.

## For Reviewers

The review comments are being addressed in
#915.
We need eyes on the Core part that is described below.

## Core STM

The main stage transitions look like this. The only manual part is the
scheduling call by the fellowship that kicks off the procedure:

* `Pending` wait for Fellowship to call `schedule_migration(when)` ->
Scheduled
* `Scheduled` waiting for scheduled block -> `WaitingForAH`
* `WaitingForAH` AH replies that it is ready -> `WarmUp`
* `WarmUp`  waiting for warm-up end -> `Starting`
* `Starting` doing some startup initialization -> `DataMigration`
* `DataMigration` MAIN PART **all pallet migrations finish** ->
`CoolOff`
* `CoolOff` waiting for cool-off to end -> `SignalMigrationFinish`
* `SignalMigrationFinish` send signal to AH that we are done ->
`MigrationDone`
* `MigrationDone` finished, unlock all Pallets.

### State Machine

The core State Machine lives in the `RcMigrator` pallet in its
`on_initialize`:


https://github.com/polkadot-fellows/runtimes/blob/8ef1cc739d756b109dc93eaf3b9da00e3dcf1383/pallets/rc-migrator/src/lib.rs#L1338-L1342

On each block the Rc Migrator checks the current state and possibly
progresses to the next one. It will only do a single state transition
per block to reduce complexity of the code. Generally, there are three
states per pallet (called
[*stages*](https://github.com/polkadot-fellows/runtimes/blob/8ef1cc739d756b109dc93eaf3b9da00e3dcf1383/pallets/rc-migrator/src/lib.rs#L190-L389)
in the code). Some pallets have more then three, but it is generally
still a multiple of three and always follows the pattern of
`PalletInit`, `PalletOngoing { cursor }`, `PalletDone`:


https://github.com/polkadot-fellows/runtimes/blob/8ef1cc739d756b109dc93eaf3b9da00e3dcf1383/pallets/rc-migrator/src/lib.rs#L239-L244

Each pallet then has one migrator struct (eg. `MultisigMigrator<T>`)
that migrates the storage items from the Relay side. It lives in the
module of its name `rc-migrator/src/multisig.rs` respectively.
Taking Multisigs as an example; you can find two functions in the
migrator struct: `migrate_many` and `migrate_single`. The former one is
from the [`PalletMigration`
trait](https://github.com/polkadot-fellows/runtimes/blob/715dbb4455a127066d0118ce7a096c72200e1126/pallets/rc-migrator/src/types.rs#L209-L221).
The `migrate_single` function is done by convention to keep the code
readable. The `migrate_many` does the following:
- Weight accounting for the RC side: Normal weight tracking to not have
overtime RC blocks
- Weight accounting for the AH side: Ensuring to not send messages that
would take up too much weight on AH processing
- Ensure that DMP messages are sensibly sized by using the
`XcmBatchAndMeter`
- Taking the data out from the Relay chain (deleting it)
- Including the data into a DMP message and sending it towards AH

### AH Side

The main logic on Asset Hub lives in the `AhMigrator` pallet. It
contains at least one extrinsic per pallet to receive the incoming data
from the RC. We are using extrinsics since RC is wrapping the data into
XCM::Transacts:


https://github.com/polkadot-fellows/runtimes/blob/9a20b12e22b019c1c0b15b9af897567a559e424c/pallets/ah-migrator/src/lib.rs#L650-L653

This calls into the [`multisig`
module](https://github.com/polkadot-fellows/runtimes/blob/6b603ca47e5c49b3a898be3f8f6b078c424f42a0/pallets/ah-migrator/src/multisig.rs#L37)
to integrate the data into the storage. Per convention we are emitting
events for each item and the whole batch.
The main task of the AH side is to integrate the data. In the example of
the multisig it is special since we do not migrate the multisig, but
only the reserved account which will be unreserved on AH.

## Messaging Logic

The messaging is ACK based. The Relay sends message to Asset Hub up to a
specified limit (50). The limit can be adjusted on the fly through a
dedicated dispatchable call, restricted to Admin and Manager roles. The
limit may be overstepped by the configured batch-size (10), so in total
there should never be more than 60 DMPs queued. Each DMP is set to at
most
[50KB](https://github.com/polkadot-fellows/runtimes/blob/8ef1cc739d756b109dc93eaf3b9da00e3dcf1383/pallets/rc-migrator/src/lib.rs#L131).

The Relay Chain migrator creates a query for each XCM data message using
the XCM query–response primitives and attaches a response status request
from Asset Hub to the message. The XCM executor on Asset Hub then sends
back the response status for every message with such a request.

The Relay migrator stores each data message sent to Asset Hub until it
receives confirmation of successful processing. It also provides a
dispatchable call, available only to Admin and Manager roles, to resend
any unconfirmed messages.

A bug that prevented certain messages from being accounted for during a
particulat pallet migration caused the Westend AHM stall. The system was
queuing too many DMPs, which forced WAH to author an overweight block
while attempting to process them all at once.

## Call Filtering

Pallet calls are filtered during the migration for three reasons:
- prevent malicious users from spamming the chain with cheap TX and
slowing down the migration
- prevent users from sending many UMPs out of AH to clog up the UMP
queue
- prevent interference with pallets that are being migrated to avoid
messing up their storage invariants

Both RC and AH provide call filters for `Before`, `During` and `After`
the migration. As you can see, most things are disabled during the
migration on both chains. After the migration, Relay chain keeps pretty
much everything disabled since it was now enabled on AH:
- Before: RC everything enabled, AH all new pallets disabled (staking,
gov etc)
- During: RC mostly everything disabled, AH mostly everything disabled
- After: RC mostly everything disabled (staking, gov etc), AH everything
enabled (staking, gov etc)

This is implemented  by returning three bools, one for each phase:  

https://github.com/polkadot-fellows/runtimes/blob/88f4aaf62236fbee9cfb9183e44333bac45b1371/system-parachains/asset-hubs/asset-hub-polkadot/src/ah_migration/call_filter.rs#L81-L83

## Testing and Dry-Runs

https://github.com/paritytech/ahm-dryrun is the repository for testing
infrastructure for AHM. As of now, the following is being tested there
(as a part of "[AHM Flow (all
steps)](https://github.com/paritytech/ahm-dryrun/actions/workflows/zombie-bite.yml)"
nightly action):
* Dry-running a migration on a fork of Kusama
* Re-running the rust unit tests introduced in this branch
* Re-running a subset of the same tests, re-written in TS
* Re-running PET tests.

Each action produces a table with the summary of the test results: 

<img width="682" height="357" alt="Screenshot 2025-09-19 at 09 03 20"
src="https://github.com/user-attachments/assets/69c1e37d-6f8f-4b57-b97f-75781a1e1a3a"
/>

And 4 snapshot files (2 real databases, 2 try-runtime snapshots) which
can be used to re-run any of the tests, or run the pre/post migration
chain, locally.

<img width="1347" height="476" alt="Screenshot 2025-09-19 at 09 03 40"
src="https://github.com/user-attachments/assets/127cbf76-b2fb-467f-8fef-3e93a9a709f6"
/>


<details><summary>Full Changelog</summary>
<p>

- **[AHM] OpenGov for Kusama AH (#877)**
- **Relay Chain Accounts to Asset Hub Migration (#515)**
- **Test Relay<->AH migration through DMP messages (#528)**
- **[AHM] Improve account migration (#532)**
- **[AHM] Add multisig migration (#534)**
- **[AHM] Proxy migration (#542)**
- **[AHM] Cleanup and add Preimage doc (#543)**
- **[AHM] Improve accounts migration (#550)**
- **[AHM] Preimage migration (#545)**
- **[AHM] Add Polkadot call filtering (#559)**
- **[AHM] Nomination pools (#562)**
- **[AHM] referenda pallet (#558)**
- **[AHM] Cleanup (#565)**
- **[AHM] Scheduler Pallet (#569)**
- **[AHM] Fast unstake and Bags list (#563)**
- **[AHM] Pallet claims (#570)**
- **[AHM] Conviction Voting Pallet (#578)**
- **[AHM] Pallet Indices (#577)**
- **[AHM] pause scheduler during migration (#580)**
- **[AHM] Asset rate pallet migration (#581)**
- **[AHM] Bounties data migration (#585)**
- **[AHM] Vesting (#575)**
- **[AHM] fix the rc-migrator call filter (#598)**
- **[AHM] Sovereign Account Translation (#594)**
- **[AHM] Crowdloans (#592)**
- **[AHM] Set up AH migration testing framework for single pallets
(#597)**
- **[AHM] Stage management (#584)**
- **[AHM] Do not pause inherents 🙈 (#609)**
- **[AHM] Relay Chain accounts' reserves (#602)**
- **[AHM] Benchmarks (#589)**
- **[AHM] Pallet testing framework (#612)**
- **[AHM] fix xcm weight at most (#617)**
- **[AHM] Improve weight accounting for accounts migration  (#618)**
- **[AHM] AH acks messages from RC (#620)**
- **[AHM] Pure Proxy Investigation (#621)**
- **[AHM] Remove migrated items for pallet preimage and improve testing
(#619)**
- **[AHM] Referenda metadata (#633)**
- **[AHM] Fix accounts migration failures (#628)**
- **[AHM] refactor events and enable scheduled migration start (#634)**
- **[AHM] Migrating DOT total issuance tracking from RC to AH (#607)**
- **[AHM] Comment faulty checks out (#640)**
- **Account migrator refactor (#639)**
- **[AHM] Rebase (#641)**
- **[AHM] Run AHM test in CI (#642)**
- **[AHM] Vesting test (#615)**
- **[AHM] bags_list and conviction_voting tests  (#632)**
- **[AHM] Treasury pallet migration (#624)**
- **[AHM] Fix tests for pallet preimage (#643)**
- **[AHM] Test Coverage Report (#650)**
- **[AHM] deactivate/reactivate total issuance & weights (#648)**
- **[AHM] add sudo behind feature flag (#657)**
- **[AHM] fast_unstake tests (#658)**
- **[AHM] asset_rate test (#660)**
- **[AHM] Pallet treasury tests (#664)**
- **[AHM] Improve account balances integration tests (#655)**
- **[AHM] Integrate AH migrator weights to RC (#665)**
- **Testing for bounties migration (#669)**
- **[AHM] Westend port adapters (#652)**
- **[AHM] fix checking account and total issuance migration (#636)**
- **[AHM] Bump polkadot relay and AH versions (#667)**
- **[AHM] Fix tests for pallet treasury (#671)**
- **[AHM] Claims and Crowdloan tests (#622)**
- **[AHM] Benchmarks (#663)**
- **[AHM] Add Asset Hub CallFilter (#670)**
- **[AHM] Westend staking migration (#689)**
- **[AHM] Referenda migration storage checks (#672)**
- **[AHM] AH benchmarks cleanup (#690)**
- **[AHM] Westend Async Staking Migration (#691)**
- **[AHM] Relay Chain migrator benchmarks (#692)**
- **[AHM] Asset Hub ops pallet benchmarks (#693)**
- **[AHM] Xcm send weights and Batch helper types (#694)**
- **Finish staking Westend (#695)**
- **[AHM] Account provider/consumer references (#702)**
- **[AHM] Fix westend builds (#704)**
- **[AHM] Generate weights (#706)**
- **[AHM] Proxy fixes and more tests (#707)**
- **[AHM] Docs and simpler events (#699)**
- **[AHM] Test call decoding (#710)**
- **[AHM] Emulated test for migration with async backing (#717)**
- **[AHM] Increase test coverage (#720)**
- **[AHM] Add referenda checks to Westend migration (#713)**
- **[AHM] Nom_pools test (#677)**
- **[AHM] Scheduler storage item checks (#680)**
- **[AHM] Update Polkadot Snapshot (#725)**
- **[AHM] Pallet multisig tests (#666)**
- **[AHM] Adapt XCM configuration to account for changes before and
after migration (#722)**
- **[AHM] document checking account migration (#716)**
- **[AHM] Dependency fixes for integration tests and the Polkadot
runtime (#751)**
- **[AHM] Remove empty conviction voting filter (#750)**
- **[AHM] Missing TODOs and `AccountState` type update (#742)**
- **[AHM] DMP prioritization on AH (#772)**
- **[AHM] Disable #[pallet::hooks] for migrating pallets during
migration (#784)**
- **[AHM] AH messages prioritization on RC (#787)**
- **[AHM] Cache test snapshots and include more tests into CI job
(#788)**
- **[AHM] Cleanup Westend feature (#789)**
- **[AHM] Introducing the Cool-Off stage (#786)**
- **[AHM]  Flow Control System (#780)**
- **[AHM] Migrate pallet delegated-staking to AH (#791)**
- **[AHM] Merge master into dev branch (#793)**
- **[AHM] Disable indirect XCMs from RC to AH and vice versa during
migration (#774)**
- **Rebase**
- **bring back RelayTreasuryLocation to make old tests compiole**
- **[AHM] Missing `RootLocation` for WaivedLocation for AHP (#798)**
- **[AHM] Missing `SecretaryEntities` for AHP (#797)**
- **[AHM] Migration idempotency (#808)**
- **[AHM] Block number providers for migrating pallets (#809)**
- **[AHM] Copy latest ah-ops pallet from the SDK (#810)**
- **[AHM / ah-migrator]: Implement RC->AH account translation `mocked`
migration across all involved pallets (#807)**
- **[AHM] Complete account balances tests (#674)**
- **[AHM] Address TODOs (#815)**
- **[AHM] Async staking config (#812)**
- **[AHM] Optional migration manager account id (#818)**
- **[AHM] Type safe Hold and Freeze-Reason translation (#819)**
- **[AHM] Create new response query on resend and tests (#816)**
- **PolkadotAssetHub: Enable Async Backing (#763)**
- **Ensure no era planned when migration starts (#728)**
- **[AHM] with async backing (#822)**
- **[AHM] Staking migration (#821)**
- **identify with only validator account**
- **[AHM] Tests work for Paseo (#827)**
- **[AHM] Child bounties (#613)**
- **[AHM] Cleanup and linter fixes (#828)**
- **[AHM] Fix snowbridge test - wrong import of
`RelayTreasuryPalletAccount` (instead of AH, it should be BH) (#831)**
- **[AHM] Account Translation mapping (#829)**
- **Fast unstake: remove alias**
- **fmt**
- **[AHM] Max migrated items per block (#834)**
- **[AHM] Record migration timings (#835)**
- **[AHM] Remove storage aliases and cleanup (#832)**
- **[AHM] fix Kusama bags list pallet benchmarks (#836)**
- **[AHM] Unprocessed msg buffer size 50 (#839)**
- **[AHM] Post migration cool off stage (#841)**
- **[AHM] Multisig test and storage_alias cleanup (#842)**
- **[AHM] Remove fast-unstake and test fixes (#846)**
- **Run try-state check for all pallets post AHM rust tests (#833)**
- **[AHM] Preserve on RC manager' account (#843)**
- **[AHM] Filter staking calls before migration starts (#847)**
- **[AHM] State Decode Tests (#848)**
- **[AHM] Send xcm extrinsic within migrator pallets (#851)**
- **Merge and cleanup merge commit**
- #845
- #852
- #862
- #875
- #872
- #877
- #626
- #879
- #885
- #886
- #882
- #883
- #854
- #888
- #895
- #892
- #896
- #889

</p>
</details> 

// only to let all CIs to execute for now
- [ ] Does not require a CHANGELOG entry

---------

Signed-off-by: Oliver Tale-Yazdi <[email protected]>
Signed-off-by: Adrian Catangiu <[email protected]>
Signed-off-by: Andrei Sandu <[email protected]>
Signed-off-by: Alexandru Vasile <[email protected]>
Co-authored-by: Muharem <[email protected]>
Co-authored-by: Dónal Murray <[email protected]>
Co-authored-by: Adrian Catangiu <[email protected]>
Co-authored-by: Giuseppe Re <[email protected]>
Co-authored-by: Andrii <[email protected]>
Co-authored-by: Bastian Köcher <[email protected]>
Co-authored-by: Yuri Volkov <[email protected]>
Co-authored-by: s0me0ne-unkn0wn <[email protected]>
Co-authored-by: Kian Paimani <[email protected]>
Co-authored-by: Branislav Kontur <[email protected]>
Co-authored-by: GitHub Action <[email protected]>
Co-authored-by: Francisco Aguirre <[email protected]>
Co-authored-by: fellowship-merge-bot[bot] <151052383+fellowship-merge-bot[bot]@users.noreply.github.com>
Co-authored-by: Pablo Andrés Dorado Suárez <[email protected]>
Co-authored-by: ordian <[email protected]>
Co-authored-by: Alistair Singh <[email protected]>
Co-authored-by: Sergej Sakac <[email protected]>
Co-authored-by: Bastian Köcher <[email protected]>
Co-authored-by: Serban Iorga <[email protected]>
Co-authored-by: Xiliang Chen <[email protected]>
Co-authored-by: Nikolai Kozlov <[email protected]>
Co-authored-by: nkprt <[email protected]>
Co-authored-by: Eugenio Paluello <[email protected]>
Co-authored-by: Javier Viola <[email protected]>
Co-authored-by: polka.dom <[email protected]>
Co-authored-by: Dónal Murray <[email protected]>
Co-authored-by: Karol Kokoszka <[email protected]>
Co-authored-by: joe petrowski <[email protected]>
Co-authored-by: Clara van Staden <[email protected]>
Co-authored-by: Ankan <[email protected]>
Co-authored-by: clangenb <[email protected]>
Co-authored-by: Andrei Sandu <[email protected]>
Co-authored-by: Andrei Sandu <[email protected]>
Co-authored-by: Alexandre Baldé <[email protected]>
Co-authored-by: Maksym H <[email protected]>
Co-authored-by: Alin Dima <[email protected]>
Co-authored-by: Alexander Theißen <[email protected]>
Co-authored-by: Christian Langenbacher <[email protected]>
Co-authored-by: Ankan <[email protected]>
Co-authored-by: Karol Kokoszka <[email protected]>
Co-authored-by: brenzi <[email protected]>
Co-authored-by: Doordashcon <[email protected]>
Co-authored-by: eskimor <[email protected]>
Co-authored-by: Robert <[email protected]>
Co-authored-by: Raymond Cheung <[email protected]>
Co-authored-by: Maciej <[email protected]>
Co-authored-by: Paolo La Camera <[email protected]>
Co-authored-by: kianenigma <[email protected]>
Co-authored-by: Alexandru Vasile <[email protected]>
Co-authored-by: Alexander Cyon <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants