波卡 XCMP 跨链消息传递最新进展

2020-08-20 15:39 栏目:经验之谈 来源:网络整理 查看()

本文是波尔卡多维基高级部分的跨链消息传输章节。XCMP是波尔卡跨链设计的核心之一,它使信息能够在波尔卡的每个平行链之间传输。

波尔卡世界社区正在一个接一个地翻译《博卡百科全书》的内容,这些内容将在波尔卡世界公共账户上连载。

跨链事务通过基于Merkle树的简单排队机制来解决,以确保准确性。中继链验证器的任务是将并行链的输出队列上的事务移动到目标并行链的输入队列。但是,只有关联的元数据作为哈希存储在中继链内存中。

在代码库和相关文档中,输入和输出队列有时分别被称为“入口”和“出口”消息。

XCMP概述

XCMP目前正在开发中,细节可能会改变。但是,总体架构和设计决策如下:

跨链消息不会传递到中继链。

跨链消息将被限制为最大字节数。

并行链可以拒绝来自其他并行链的消息,在这种情况下,调度并行链将知道这个块。

收集器节点负责在链之间路由消息。

收集器生成一个“退出”消息列表,并将从其他并行链接接收“进入”消息。

在每个块上,并行链被期望从所有其他并行链的某个子集路由消息。

当收集器生成一个新的块并将其交给验证器时,它将收集最新的条目队列信息并对其进行处理。

验证器将检查下一个并行链块的新候选是否包含对并行链的预期进入消息的处理。

XCMP队列必须首先通过打开两个并行链之间的通道来启动。该信道由发送方和接收方的并行链标识,这意味着它是单向信道。一对并行链之间最多可以有两个通道,一个用于向另一个链发送消息,另一个用于接收消息。通道的打开需要一个DOT存款,当通道关闭时,存款将被退回。

水平中继路由信息传输(HRMP)

当XCMP还在实施的时候,它的替代品是一个叫做HRMP的权宜之计(见下面的定义)。HRMP具有与XCMP相同的接口和功能,但是它需要更高的资源,因为它将所有消息存储在中继链存储中。当XCMP实施后,HRMP计划将被放弃和逐步淘汰,XCMP将取而代之。

注:临时协议是对不完整功能的临时替代。尽管XCMP本身仍在开发中,但HRMP是一个有效的替代品。

垂直消息传递

垂直消息传递有两种,即向上消息传递(UMP)和向下消息传递(DMP)。当消息来自并行链或线程并从并行链到达中继链时,使用UMP。当消息从中继链发送到并行链时,DMP被用来执行相反的操作。通过DMP传递的信息可能来自平行链。在这种情况下,第一个UMP用于将消息传递到中继链,而DMP用于将其向下移动到另一个并行链。

XCMP消息格式

有关xcmP消息格式的描述,请参见GitHub上的XCM格式存储库。https://github.com/paritytech/xcm-format

XCMP示例

存在于并行链A中的智能契约将消息路由到并行链B,在并行链B中调用另一个智能契约来转移链中的一些资产。

Charlie在parachain A上执行智能合同,旨在为Parachain B上的智能合同发布新的跨链消息.

副链A的收集器节点将把这个新的跨链消息连同目的地和时间戳一起放入其出站消息队列。

副链B的收集器节点通常ping所有其他收集器节点以请求新消息(按目标字段过滤)。当副链B的收集器进行下一次ping时,它将在副链A上看到这个新消息,并将其添加到自己的入站队列中,以便处理下一个块。

副链A的验证者也将读取出站队列并知道消息。副链B的验证者也会这样做。这样,他们就可以验证消息传输的发生。

当副链B的收集器正在构建其链中的下一个块时,它将处理入站队列中的新消息以及它可能已经发现/接收到的任何其他消息。

在处理过程中,消息将在副链B上执行智能合同,并按预期完成资产转移。

收集器现在将这个块交给验证者,验证者将验证消息是否已经被处理。如果消息被处理,并且块的所有其他方面都有效,则验证器将把副链B的这个块包括在中继链中。

资源

XCMP方案——Web3基金会研究维基上跨链的完整技术描述:https://research.web3.foundation/en/latest/polkadot/XCMP.html

消息传递概述-并行链中的消息传递方案概述实施指南:https://w3f . github . io/副链-实施者-指南/消息传递. html

xcm format-xcmp格式描述:https://github.com/paritytech/xcm-format

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发