-
Notifications
You must be signed in to change notification settings - Fork 131
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
Think of more sophisticated algorithm than blocking XCM channel between sending chain and bridge hub #2315
Comments
Just thoughts:
|
well, yes, actually with HRMP which uses recipient/sender as e.g. for handling our actual
so it seems, that we should add also target pallet instance for sending, like:
e.g. 53 is pallet_bridge_messages instance for Kusama->Polkadot bridging here so e.g. for ethereum we will have different pallet:
but I dont know yet how |
@bkontur The problem is not in splitting messages stream into several substreams when they reach the Source.BH. It is that in the current dynamic fees implementation, any bridge (aka lane if we omit the Eth bridge) may suspend the channel with the Source.AH (sending chain), effectively halting all other bridges that are using the same XCMP channel:
So in the picture above e.g. if relayer with I've been thinking we may live with that, because logically we may look at the channel between Source.AH and Target.AH as a single channel (with-Polkadot bridge), which splits at the end. So we can't actually do anything here. I even left the big comment here: https://github.com/paritytech/parity-bridges-common/blob/master/modules/xcm-bridge-hub-router/src/lib.rs#L134-L163 But if we talk about multiple remote consensus systems, this analogy doesn't work anymore. Why the with-Polkadot bridge should affect the with-Ethereum bridge. So we probably need to introduce some multiplexing protocol in v2 instead of physically suspending the channel between sending chain and its sibling BH. |
I guess, thats what I was talking about, but probably wrong way :D I was thinking about something like this: if if but this assumes that between AssetHub and BridgeHub exists several independent queues:
instead of one XCMP channel like now maybe I have wrong expectation, that new like to open dedicated channels:
I really need to check |
Yes, the single HRMP channel is a problem |
Ok, I'm proposing the following solutions. For v2:
For v1 - let's do 1-5. We can trust that the asset hub respect our rules. |
Also - can we (easily) enable free execution of just some single call ( |
Overall the strategy sounds very good. Just 1 question:
I don't think the |
yes, exactly that I wanted to say, that we just need SA of BH on AH for I think 1-5 looks ok, and yes, I prepared also the same question for 7. |
xcm is fire and forget, but we could use |
@bkontur Ok, cool, thank you. Do you know if it is possible/easy to configure XCM in a way that only such XCM program will be executed for free? Or we need some new barrier for that?
@bkontur @serban300 I was thinking of some window before closing the bridge. We'll think details later |
afaik, we need new barrier, I can do that, on my way to asset transfer I created at least two hacky Barriers :D, so no problem :D :D |
No, it's fine - I'll make myself.Thought that maybe there's already some and you're our XCM magician, which knows about it |
For v1 it is resolved by #2318 |
#2312 has backported the
pallet-xcm-bridge-hub
router 1:1 from v1 version (#2294). But @bkontur has raised a valid concern here:#2313 (comment). E.g. if the same chain is bridging with two different consensus systems, is it fine to block both bridges if at least one lane in one of bridges is blocked. With single remote consensus, it is maybe fine, because logically they're using the single channel across the pipeline - it is a bridge specific that messages are delivered over multiple lanes. But if we are bridging with other consensus system, then both bridges will stall until we resolve a single lane issue. It doesn't looks good to me.OTOH for the sending chain, the channel for all outbound messages is the same - it is the channel to the sibling/child bridge hub. So maybe it is fine?
This needs some more thinking, so I'm filing the separate issue.
The text was updated successfully, but these errors were encountered: