浅谈波卡平行链消息传递机制 HRMP

2020-11-14 12:54 栏目:经验之谈 来源:网络整理 查看()

摘要:

摘要:根据Polkadot github No.1900号合并-实施HRMP,本文首先介绍了与Polkadot跨链相关的背景知识和与HRMP相关的基本概念,然后分析了HRMP渠道沟通的基本流程,并与Polkadot跨链最终方案XCMP进行了对比分析。

背景:

Polkadot是由Relaychain副链组成的多链系统。

Parachain的背景是解决区块链:的可扩展性和灵活性

(1)通过积累多个副链的TPS,提高了整个多链系统的吞吐量。

(2)副链可以针对不同的业务场景进行定制。简单来说,Parachain就是实现Shard的一个例子。Relaychain作为Polkadot多链系统的骨干,为副链提供一致的安全保障和跨链消息路由机制。那么副链是如何跨链交流的呢?Hrmp(水平中继路由消息传递)是其当前的解决方案。

1.Relaychain和Parachain之间的拓扑边界

浅谈波卡平行链消息传递机制 HRMP

在上图中, 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的相关概念

浅谈波卡平行链消息传递机制 HRMP

根据Web3基金会的词汇表,与HRMP有关的概念如下:

上行消息传递)从副链到中继链的垂直消息传递机制。

向下消息传递.从中继链传递到副链的信息.

垂直消息传递:负责中继链和副链之间消息交换的一系列机制。

水平中继路由消息传递.一种利用中继链存储在副链(因此是水平的)之间传递消息的机制。早于XCMP .

跨链消息传递)一种水平消息传递(即.e .副链之间),它允许安全消息直接在副链之间传递,并且对中继链的资源要求极低,因此具有很高的可扩展性。

综上:

UMP是从帕拉钦到雷利亚钦的信息传递。

DMP是从爱尔兰到帕拉钦的信息传递。

VMP=人民运动联盟DMP

HRMP是副链间消息传输的过渡方案,将跨链消息存储在中继链上,严重占用了中继链的存储资源。

XCMP是副链间消息传输的最终方案,允许副链直接传输信息,只占用Relaychain的最小资源。

三.HRMP频道时序图

浅谈波卡平行链消息传递机制 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)副链之间有相同的节点

浅谈波卡平行链消息传递机制 HRMP

图为基于八卦算法的消息传输情况,假设由副链A网络中的排序器节点发起,新生成抛物线锁

跨链消息将直接从副链A网传输到副链B网。

(2)副链之间没有相同的节点

浅谈波卡平行链消息传递机制 HRMP

该图显示了在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

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

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

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

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