售前客服二维码
文章均源于网络收集编辑侵删
提示:仅接受技术开发咨询!
摘要:
摘要:根据Polkadot github No.1900号合并-实施HRMP,本文首先介绍了与Polkadot跨链相关的背景知识和与HRMP相关的基本概念,然后分析了HRMP渠道沟通的基本流程,并与Polkadot跨链最终方案XCMP进行了对比分析。
背景:
Polkadot是由Relaychain副链组成的多链系统。
Parachain的背景是解决区块链:的可扩展性和灵活性
(1)通过积累多个副链的TPS,提高了整个多链系统的吞吐量。
(2)副链可以针对不同的业务场景进行定制。简单来说,Parachain就是实现Shard的一个例子。Relaychain作为Polkadot多链系统的骨干,为副链提供一致的安全保障和跨链消息路由机制。那么副链是如何跨链交流的呢?Hrmp(水平中继路由消息传递)是其当前的解决方案。
1.Relaychain和Parachain之间的拓扑边界
在上图中, 1继电器链副链a副链b
继电器链:四个验证器(继电器1、继电器2、继电器3、继电器4)
副链a: 1整理器1全节点1轻节点和2验证器(继电器1、继电器3)
副链b: 1整理器1全节点1轻节点和2个验证器(继电器2,继电器4)。排序器是连接在每个副链和Relaychain之间的一种特殊节点,即一部分连接到副链,另一部分连接到Relaychain。这样做至少有两个原因。
(1)它可以直接将副链块发送到Relaychain网络,然后由随机分配的验证器接收和验证。
(2)定序器作为Relaychain的Full或Light节点,与Relaychain保持同步,并能及时收到新的Relaychain块通知。该信息用于副链的共识和阻断机制。
二、HRMP的相关概念
根据Web3基金会的词汇表,与HRMP有关的概念如下:
上行消息传递)从副链到中继链的垂直消息传递机制。
向下消息传递.从中继链传递到副链的信息.
垂直消息传递:负责中继链和副链之间消息交换的一系列机制。
水平中继路由消息传递.一种利用中继链存储在副链(因此是水平的)之间传递消息的机制。早于XCMP .
跨链消息传递)一种水平消息传递(即.e .副链之间),它允许安全消息直接在副链之间传递,并且对中继链的资源要求极低,因此具有很高的可扩展性。
综上:
UMP是从帕拉钦到雷利亚钦的信息传递。
DMP是从爱尔兰到帕拉钦的信息传递。
VMP=人民运动联盟DMP
HRMP是副链间消息传输的过渡方案,将跨链消息存储在中继链上,严重占用了中继链的存储资源。
XCMP是副链间消息传输的最终方案,允许副链直接传输信息,只占用Relaychain的最小资源。
三.HRMP频道时序图
(1)副链a和副链B均向Relaychain提交注册。
(2) Parachain A向Relaychain发送请求,建立到Parachain B的消息通道(cap:允许接收的最大消息数和max:允许接收的最大字节数)。
(3)当router : init _ open _ channel被调用时,Relaychain通过DMP机制向副链B发送HrmpNewChannelOpenRequest消息。
(4)在接收到HrmpNewChannelOpenRequest消息后,副链b回复Relaychain接受建立(para_a,para_b)消息信道的请求。
(5)调用路由器: accept _ open _ channel,建立通道,Relaychain通过DMP机制向副链A发送HrmpChannelAccepted消息。
(6)副链甲接收到人力资源通道接入消息后,将消息数据发送给副链乙重新连接
(7)路由器: queue _ outbound _ HRMP将副链A的消息出口队列数据传输到副链b的消息入口队列
(8) Router:prune_hrmp查询并返回来自副链B的消息入口队列的消息数据(水印为Relaychain块号,表示所有小于此高度的传入消息均已处理)
(9)副链甲向副链乙发送注销副链乙消息通道的请求.
(10)当router: close _ channel被调用时,Relaychain通过DMP机制向副链B发送HrmpChannelClosing消息。
(11)删除频道元数据。
四.HRMP vs XCMP
我们来对比一下Web3基金会定义的XCMP,假设消息是按照Gossip算法发送的。
(1)副链之间有相同的节点
图为基于八卦算法的消息传输情况,假设由副链A网络中的排序器节点发起,新生成抛物线锁
跨链消息将直接从副链A网传输到副链B网。
(2)副链之间没有相同的节点
该图显示了在FallBack模式下消息传输的情况,它们之间没有公共的整体节点
我们假设Parachain A向parachain c发送跨链消息。
当副链C的验证器通知跨链消息还没有传递给副链C时,他们会向副链A的验证器请求自己的副链退出队列中的跨链消息,然后在收到相应的响应后,根据Gossip算法将跨链消息传递给副链C网络。
当跨链消息被添加到它们的消息退出队列时,跨链消息被保存在它们的并行链中的排序器节点和完整节点上。当并行链的块头包含在中继链中时,并行链的验证器也将保存这些跨链消息。
为了保证跨链消息的可用性,要求所有验证器保存跨链消息的擦除代码,擦除代码由发送跨链消息的并行链中的验证器生成和分发。只要验证器至少保存三分之二,跨链消息就可以恢复。如果少于三分之二,验证者将受到经济处罚。为了保证跨链消息的可用性。
综上所述,在XCMP机制中,Relaychain只保留跨链消息的hash,而跨链消息以擦除码的形式保存在发送跨链消息的并行链中的Collator、FullNode和Validator上。
V.摘要
从语义上讲,HRMP模仿XCMP的业务接口,在Relaychain上存储跨链消息,使事情变得简单。同时,它需要更高的资源并且是昂贵的。
XCMP具有灵活性和可扩展性,但难以实现,方案还在不断演进。当XCMP实施后,HRMP自然会被抛弃。
参考链接:
波尔卡多的信息传递方案
副链实施指南
实施HRMP
网络3的研究
积云概述
欢迎学习Substrate:
https://substrate.dev/
关注底物:的进展
https://github.com/paritytech/substrate
关注波尔卡多进度:
https://github.com/paritytech/polkadot
文章均源于网络收集编辑侵删
提示:仅接受技术开发咨询!