Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Snowbridge v2 - Outbound Queue #6706

Open
wants to merge 74 commits into
base: master
Choose a base branch
from

Conversation

yrong
Copy link
Contributor

@yrong yrong commented Nov 29, 2024

Context

This PR is for implement the design in SnowbridgeV2, essentially moving from ordered messaging system to an unordered one.

It focus more on outbound changes, inbound changes will be addressed in another PR.

The point is that we want to make V2 work side by side with V1, so add new routes/pallets specific for V2 and leave legacy codes untouched is important.

This PR is also based on XCM V5 with new instructions like AliasOrigin, InitiateTransfer in place.

Initial PR yrong#4 has been internally reviewed, companion changes required for other components of the bridge including:

Workflow

  1. on AH we add a custom exporter returns a lower fee(without the execution cost on Ethereum including), essentially predict the route by content of XCM, more details in Predicate route table by Xcm #6074 and thanks for the review from @bkontur

  2. On BH also add a new exporter to handle V2 specific xcm, convert the xcm to a Message structure which will be executed on Ethereum.

  3. In OutboundQueue store the message into a merkle tree as V1 before, add the pending message into PendingOrder storage. Code here for detail.

  4. In OutboundQueue add a new extrinsic submit_delivery_proof in which we verify the Message has been delivered to Ethereum, only after that add the fee to RewardLeger which can be redeemed by the relayer later, more details in Relayer rewards paid to specified location account #6578

Review notes

Simulated test is the entry point how to build XCM for V2, also a good candidate to dig deep into the process.

cargo test -p bridge-hub-westend-integration-tests --lib tests::snowbridge_v2_outbound -- --nocapture

@yrong yrong marked this pull request as ready for review December 6, 2024 05:12
@paritytech-review-bot paritytech-review-bot bot requested a review from a team December 6, 2024 05:13
@yrong yrong force-pushed the outbound-queue-v2 branch from 5823b11 to b67f89a Compare December 13, 2024 05:29
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.

1 participant