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 83 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, and add the pending message with the fee attached into PendingOrder storage. Code here for detail. The off-chain relayer should check if relaying the message with the fee attached is profitable.

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