3

Very early on in this specification it says that "XCM is designed around four 'A's:"

One if which is "Absolute: XCM messages are guaranteed to be delivered and interpreted accurately, in order and in a timely fashion."

What i find most curious is how the delivery and order of these messages are guaranteed. Or wether these are actually assumptions as its only "designed around" the four A's instead of "functions according to". Any lead on where to looks is appreciated.

felix

source: https://github.com/paritytech/xcm-format

edit:

Here is a great resource: https://wiki.polkadot.network/docs/learn-xcm

A channel must be opened and i assume it will be FIFO and there is a queue to ensure it. Alot of basic XCM questions can be answered here.

1
  • Great question. I am trying to wire IBC protocol with trait ExportXcm. ` in order and in a timely fashion` are very unclear. Just as real example which requires an answer. Feb 14, 2023 at 22:52

2 Answers 2

6
+25

I try to answer your question with the code of XCM delivery process via HRMP.

Your focus is on "in order", so we pay attention to whether the order of the messages changes, please correct me if I am wrong.

  1. When you send an XCM via HRMP, it will be inserted into OutboundXcmpMessages, no change in order.

  2. Then take messages from OutboundXcmpMessages to HrmpOutboundMessages, no change in order.

  3. Then give the CollationInfo which contains the XCM messages to relaychain, no change in order.

  4. Then the receiver chain received XCM messages from InherentData, no change in order.

  5. Then these messages are sorted by blockNumber and paraId. Please note this sort is stable, it does not change the order of messages which in the same block sent by the same chain.

  6. Then these messages will be inserted into InboundXcmpMessages and then be dispatched in this order, no change in order.

6
  • 1
    This answers HRMP specifically, so not XCM and XCVM in general. Parity works on bridges and lite channels. So may be author asked specifically about HRMP or HRPM can be example of ordering. Feb 15, 2023 at 10:23
  • 1
    XCM works with VMP, HRMP, XCVM, etc. It is meaningless to only talk about XCM or XCVM.
    – Guantong
    Feb 15, 2023 at 13:59
  • Lite channels and bridges. You may look into ExportXcm. How bridges will enforce absolutes? I have several ideas, but would better want absolutes relaxed or RFCed so that can put XCM on top of arbitrary bridge. So that may be not what quetion is aboud so. Feb 15, 2023 at 17:10
  • 4
    It is accurate to say XCM is "designed around" these 4 As, as XCM is a language independent from the data transport layer. It is "designed around" Absoluteness in the sense that it can only be expected to function properly when used atop a transport and execution layer which provides that guarantee.
    – rob
    Feb 17, 2023 at 4:00
  • Worth adding to xcm-format spec. So it feels that strict follow of these absolutes leads to slowness or queue stoppage. And one XCM message can Export/SendXcm over many transports at once, so not sure how far absolutes can reach. Feb 17, 2023 at 12:17
0

My current interpretation of this Absolute next.

Setup best infrastructure possible with safest configuration which make XCM messages slower and higher cost, but best robustness.

Optimization can be done later.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.