http://www.7klian.com

一文相识XCMP:Polkadot链间动静传输协议

1. 跨链动静是跨平行链之间的动静,动静原文不上中继链。可是今朝XCMP还没有完全实现,此刻Polkadot用的是Horizontal Relay-routed Message Passing (HRMP),HRMP将所有的动静存在中继链,将来会用XCMP代替HRMP。

4. 任意两条平行链之间通报动静必需开一个通道(Channel),通道是单向的,所以双向通信必需开2个。开一个通道需要抵押DOT,,通道封锁后会退回DOT。

6. (如图中6)然后收集人(Collator)将这个区块提交给验证人(Validator),验证人(Validator)会验证动静M(以及其他动静)是否真的被处理惩罚了;假如这条动静被验证确实处理惩罚了,而且这个区块没有其他不正当的处所,验证者就会把该块确认(include)进中继链中。

3. (如图中3.1和3.2)链B的收集人在正常环境下会轮询(routinely ping)其他所有的平行链的收集者节点以查察是否有本身的动静(以链B为目标地的动静)。假如在新一轮询问中发明有以本身为目标地的动静,那么其会将这条动静(好比这里的动静M)放到本身的进口行列中,以待在发生下一个区块的时候处理惩罚该动静;

1. 快速:动静能快速发至目标链;

2. 有序:动静能按序达到目标链;

3. 验证人需要对收集人出的块举办跨链动静的检讨看看跨链动静是否真的被处理惩罚过了。因此动静的一些元数据照旧会上中继链的。

这个例子较量简略,只是一次对XCMP的管中窥豹,并且还留下了一些坑,如:链B是如何知道链A给本身发了动静的?跨链动静真的是链B本身去拿的吗?这些问题在接下去的内容中会澄清。

XCMP动静的分发(distribution)其实也是属于Polkadot网络的一部门,XCMP不只要实现吸收链获取发送链发送的跨链动静的,并且要实现高效获取,只管低就逮络的整体通信开销。

「概述」中的简例是吸收链本身去拿,并且是收集人找收集人拿,不属于以上3种环境之一。为什么会如此呢?

楼嵩
来自致力于「构建互联网络,买通代价孤岛」的BitXHub团队

研究偏向:Web3+

Polkadot的官网举了一个简朴的例子:假设平行链A上陈设的一个合约要发一条跨链挪用的动静给平行链B,从而挪用位于链B上的合约完成资产转移,其整体流程如下:

3. 可验证:能验证达到的动静确实是发送链发送的、能验证该动静在吸收链已经被处理惩罚;

更多出色敬请等候《Polkadot XCMP(下)》

按照Polkadot本身的说法,XCMP操作基于Merkle树的简朴行列机制确保跨链生意业务的保真度(fidelity)。中继链上的验证人认真把平行链出口行列中的生意业务转移到方针链的进口行列中,可是中继链并不会存这个跨链生意业务(可能说跨链动静)的原文,而只会存一些少量的动静元数据。

3. 假如以上条件都不满意,则吸收链的验证人(Validator)会发明没有收到跨链动静。因此吸收链Validator会主动找发送链Validator要这个动静;然后验证人节点需要在本链的网络中gossip这个动静,使得其他节点都得到这条动静。

4. (如图中4)别的,链A的验证人(Validator)也会通过读取链A的出口行列从而知道这条动静;链B的验证人(Validator)也是。验证人也需要知道这些动静,因为之后(见步调6)它们城市对这条动静举办验证(好比这里的动静M);

2. 某条平行链的收集人结构新区块时会把以本身为目标地、还未被处理惩罚的跨链动静都处理惩罚下。

4. 无漏掉:接管链公正地吸收每条动静,发送链不会无限期期待其动静被吸收链吸收和处理惩罚;

2. (如图中2)链A的收集人(Collator)节点会将这条动静M连同其目标地(destination)、时间戳(timestamp)放到A的出口行列中;

如果吸收链通过中继链知道了发送链有一条发给本身的动静,那么动静详细如何通报过来,就要看XCMP动静的路由方法。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。