摘要: 本文根据 Polkadot github 第 1900 号合并--Implement HRMP,先介绍了 Polkadot 跨链相关的背景知识、HRMP 相关的基本概念,然后分析了 HRMP channel 通信的基本过程, 并与 Polkadot 跨链最终方案 XCMP 进行了对比分析。 背景: Polkadot 是一个 Relaychain+Parachain 组合的多链系统。 Parachain 的提出背景是为了解决区块链可扩展性 (Scalability) 和灵活性 (Flexibility): (1)通过累加多个 Parachain 的 TPS,提高整个多链系统的吞吐量。(2)针对不同的业务场景,Parachain 可进行专门定制。简单说, Parachain 就是一个实现分片 (Shard) 的例子。而 Relaychain 做为 Polkadot 多链系统的中枢, 则为 Parachain 提供了一致性安全保证及跨链消息路由机制。那么 Parachains 之间如何进行跨链通信呢? HRMP(Horizontally Relay-routed Message Passing - 水平中继路由消息传递)便是其当前的解决方案。一、 Relaychain 和 Parachain 拓扑边界 上图中: 1 Relaychain + Parachain A + Parachain B 二、 HRMP 相关概念 根据 Web3 基金会的术语表,和 HRMP 相关的概念如下: UMP: (Upward Message Passing) A vertical message passing mechanism from a Parachain to the relay chain。DMP: (Downward Message Passing)。Message passing from the relay-chain to a Parachain。VMP: (Vertical Message Passing) A family of mechanisms that are responsible for message exchange between the relay chain and Parachains。HRMP: (Horizontally Relay-routed Message Passing)。A mechanism for message passing between Parachains (hence horizontal) that leverages the relay-chain storage。Predates XCMP。XCMP (Cross-Chain Message Passing) A type of horizontal message passing (i。e。between Parachains) that allows secure message passing directly between Parachains and has minimal resource requirements from the relay chain, thus highly scalable。总结一下: UMP 是 Parachain 到 Relaychain 的消息传递。DMP 是 Relaychain 到 Parachain 的消息传递。VMP = UMP + DMPHRMP 是 Parachain 之间消息传递的过渡方案,它把跨链消息存在了 Relaychain 上,严重占用 Relaychain 的存储资源。XCMP 是 Parachain 之间消息传递的终极方案, 允许 Parachain 之间直接传递信息且只占用 Relaychain 最小的资源。三、HRMP Channel 时序图 (1) Parachain A 和 Parachain B 都向 Relaychain 提交注册。(2) Parachain A 向 Relaychain 发起建立到 Parachain B 的消息通道的请求 (cap: 当前允许接收的最大消息数, max: 当前允许接收消息的最大字节数)。(3) Router::init_open_channel 被调用的同时, Relaychain 通过 DMP 机制向 Parachain B 发送 HrmpNewChannelOpenRequest 消息。(4) Parachain B 收到 HrmpNewChannelOpenRequest 消息后, 向 Relaychain 回复接受建立 (para_a, para_b) 的消息通道的请求。(5) Router::accept_open_channel 被调用的同时, 通道被建立, Relaychain 通过 DMP 机制向 Parachain A 发送 HrmpChannelAccepted 消息。(6) Parachain A 收到 HrmpChannelAccepted 消息后, 向 Relaychain 发送到 Parachain B 的消息 data(7) Router::queue_outbound_hrmp 将 Parachain A 的消息出口队列 data 转移到 Parachain B 的消息入口队列(8) Router::prune_hrmp 从 Parachain B 的消息入口队列查询并返回消息 data (watermark 是 Relaychain blocknumber, 表示小于这个高度的传入消息都已被处理)(9) Parachain A 向 Relaychain 发起注销到 Parachain B 的消息通道的请求。(10) Router::close_channel 被调用的同时, Relaychain 通过 DMP 机制向 Parachain B 发送 HrmpChannelClosing 消息。(11) 通道元数据被删除。 四、HRMP vs XCMP 我们对比一下 Web3 基金会定义的 XCMP, 假定按照 Gossip 算法发送消息。 (1) Parachain 之间有相同节点 图中显示了基于 Gossip 算法传递消息的情况,假定由最新产生 ParaBlock 的 Parachain A 网络中的 Collator 节点发起 跨链消息将直接从 Parachain A 网络传递到 Parachain B 网络。 (2) Parachain 之间没有相同节点 图中显示了 FallBack 方式传递消息的情况,他们之间没有共同的全节点 我们假设 Parachain A 向 Parachain C 发送跨链消息。 当 Parachain C 的 Validator 通知跨链消息没有被传递到 Parachain C 时,它们将会向 Parachain A 的 Validator 请求他们 Parachain 出口队列中的跨链消息,收到相应的回应后,再按照 Gossip 算法将跨链消息传递到 Parachain C 网络。 当跨链消息被加入到他们的消息出口队列时, 跨链消息被保存在他们平行链中的 Collator 节点和Full 节点上。当平行链的区块头被纳入中继链上时, 平行链的 Validators 也会保存这些跨链消息。 为了保证跨链消息的可用性,要求所有的 Validator 保存跨链消息的纠删码,纠删码由发送跨链消息的平行链中的 valiadators 生成和分发。只要 Validators 至少保存了三分之二, 跨链消息就能复原。如果低于三分之二, Validators 将会受到经济惩罚。以此来保证跨链消息的可用性。 综上, XCMP 机制中, Relaychain 只保留了跨链消息的 hash, 而跨链消息则以纠删码的方式保存在了发送跨链消息的平行链中的 Collator, FullNode 和 Validator 上。 五、 总结 从语义上讲, HRMP 模仿了 XCMP 的业务接口, 将跨链消息存储在 Relaychain 上使事情变得简单,同时对 Relaychain 资源要求较高,价格昂贵。 而 XCMP 比较灵活,扩展性高,但实现难度大,方案还在演进中。当 XCMP 实现后, HRMP 自然会被遗弃。 参考链接: Polkadot’s Messaging SchemeParachain Implementation GuideImplement HRMPResearch At Web3Cumulus Overview欢迎学习 Substrate: https://substrate.dev/ 关注 Substrate 进展: https://github.com/paritytech/substrate 关注 Polkadot 进展: https://github.com/paritytech/polkadot 更多内容: 视频图解 XCMP:波卡平行链消息是如何跨链传递的? 波卡 XCMP 跨链消息传递最新进展|波卡 Wiki Polkadot 的跨链消息传递方案(XCMP) 话题|波卡的跨链信息传递 (XCMP) 意味着什么? 扫码关注公众号,回复 “1” 加入波卡群 关注 PolkaWorld 发现Web 3.0 时代新机遇 —- 编译者/作者:PolkaWorld 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
浅谈波卡平行链消息传递机制 HRMP
2020-11-17 PolkaWorld 来源:区块链网络
LOADING...
相关阅读:
- ATIS链上升级打造数字化共识生态2020-11-17
- BTC破16000美元,DeFi锁仓量上一个高度,跨链挖矿在路上2020-11-17
- 2从Paribu到加密货币投资者的好消息?Coinkolik2020-11-16
- PNetwork通过pNetwork到达EOS2020-11-16
- 高性能公链NGK开启新经济模式谋局DeFi2020-11-16