Setup permissionless lanes for AssetHubs - heads/state-roots store#8324
Setup permissionless lanes for AssetHubs - heads/state-roots store#8324bkontur wants to merge 17 commits intobko-permlanes-on-ahsfrom
Conversation
WIP: expect_descend_origin_with_messaging_pallet_instance
WIP: squash to store
…for AssetHubs WIP: merge to stores to AHs
|
/cmd fmt |
Co-authored-by: Serban Iorga <[email protected]>
@serban300 I've updated the description with more details, diagram and usage information. Please check the attached diagram for more context. The proofs ( Basically, we're doing all of this to propagate the |
…ermlanes-on-ahs-1-heads-store
|
All GitHub workflows were cancelled due to failure one of the required jobs. |
Relates to: #6675
Relates to: #6116
This PR introduces the
pallet-bridge-proof-root-storeand deploys it on the AssetHubs. This pallet stores arbitrary key-value data and can be invoked via XCMTransact(e.g.,para_id/HeadDataalong with astate_rootsent from BridgeHubs).It is used to store synced AssetHubRococo/Westend headers with their
state_rooton the opposite AssetHubWestend/Rococo. The headers are synced (syncing implementation: #8326) from BridgeHubWestend, and the storedstate_roots are used to verify AssetHubRococo message proofs on AssetHubWestend (and vice versa).Note1: Without this new pallet, we could potentially still use
pallet-bridge-parachains, but it's somewhat heavy due to its three storage items (ParasInfo,ImportedParaHeads, andImportedParaHashes). Replicating all that data doesn’t make much sense. If we go that route, we might as well addpallet-bridge-grandpaand full finality to AssetHub - which we don’t want.Note 2: This pallet will most likely remain on AssetHub regardless of the syncing mechanism (XCM, multiple proofs, RC-based proofs, etc.). See more reasoning here: #8326.
Usage
Pallet configuration on the AH: (stores synced parachain finality mapping: bridged block hash vs state root)
The pallet is used for
AssetHubWestendHeadersas abp_header_chain::HeaderChainimplementation forpallet-bridge-messages:Syncing hash/state root from the local BridgeHub: This is a simple solution using XCM, implemented here: #8326. An unpaid XCM
Transactcall is used to invokeAssetHubWestendProofRootStore::note_new_roots(...), whererootsis a list of tuples(block_hash, state_root)representing the bridged AssetHub blocks.High-Level Context Diagram