本文是波卡百科(Polkadot Wiki)进阶部分的跨链消息传递 XCMP 章节,XCMP 是波卡跨链设计的核心之一,让消息能在波卡各个平行链间传递。 PolkaWorld 社区正在陆续翻译波卡百科内容,并将连载在 PolkaWorld 公众号上。 跨链交易通过基于 Merkle 树的简单排队机制来解决,以确保准确性。中继链验证人的任务是将一个平行链的输出队列上的交易移动到目标平行链的输入队列中。但是,只有关联的元数据作为哈希存储在中继链存储器中。 输入(input )和输出(output)队列有时在代码库和相关文档中分别称为 “入口(ingress)” 和 “出口(egress)” 消息。
XCMP 概览XCMP 目前正在开发中,细节可能会有变化。但是,总体架构和设计决策如下:
水平中继路由信息传递 (HRMP)在 XCMP 仍在实现的过程中,它的替代品是一种称为 HRMP 的权宜之计(见下面的定义)。HRMP 具有与 XCMP 相同的接口和功能,但是对资源的要求更高,因为它将所有消息存储在中继链存储中。当 XCMP 实现时,HRMP 计划被弃用并逐步淘汰,XCMP 将取而代之。 注意:权宜之计协议是对未完全完成的功能的临时替代。虽然 XCMP 本身仍在开发中,但 HRMP 是一个有效的替代品。
垂直消息传递垂直消息传递(Vertical Message Passing)有两种,向上消息传递(UMP)和向下消息传递(DMP)。当消息来自平行链或平行线程并从该平行链到中继链时,使用 UMP。当一条消息从中继链发出并以平行链为目的地时,DMP 被用来进行相反的操作。通过 DMP 传递的消息可能来自平行链。在这种情况下,第一个 UMP 用于将消息传递到中继链,而 DMP 用于将其向下移动到另一个平行链。
XCMP 消息格式有关 XCMP 消息格式的描述,请参阅 GitHub 上的 xcm 格式存储库。https://github.com/paritytech/xcm-format
XCMP 示例存在于平行链 A 上的智能合约会将一条消息路由到平行链 B,在这个消息中,调用另一个智能合约,在该链中进行一些资产的转移。 Charlie 在 parachain A 上执行智能合约,目的是为 parachain B 上的智能合约发起一条新的跨链消息。 parachain A 的收集人节点将把这个新的跨链消息与目的地和时间戳一起放入其出站消息队列中。 parachain B 的收集人节点通常 ping 所有其他收集人节点去请求新消息(按 destination 字段过滤)。当 parachain B 的收集人进行下一次 ping 时,它将在 parachain A 上看到这个新消息,并将其添加到自己的入站队列中,以便处理到下一个块中。 parachain A 的验证人也将读取出站队列并知道消息。parachain B 的验证人也会这样做。这样他们就能够验证消息传输的发生。 当 parachain B 的收集人正在构建其链中的下一个块时,它将处理入站队列中的新消息以及它可能已经找到/接收到的任何其他消息。 在处理过程中,消息将在 parachain B 上执行智能合约,并按预期完成资产转移。 收集人现在将这个块交给验证人,验证人本身将验证该消息是否已被处理。如果消息被处理并且块的所有其他方面都有效,那么验证人将把 parachain B 的这个块包含到中继链中。
资源
|
12月13日,由WMA世界元宇宙发展联盟主办的第8届世界元宇宙大会在...详情
作者:Mia Bao, co-founder of thepass.to, chief partner of WH...详情
今年早些时候,黑客诱骗 Axie Infinity 的一名高级工程师申请了...详情
7月6日,元宇宙空间技术服务商构赛博宣布已于近日完成千万元人民...详情
请发表评论