平行链上线技术系列五:平行链通过orml-xcm打开hrmp_PAR:ALL

实验环境

两条平行链-链A(2008)和链B(2009)

一条中继链

实验目的

通过orml-xcm打开链A和链B之间的hrmpchannel

平行链代理账户需要一定的中继链token,所以需要在中级链通过xcmPallet.limitedReserveTransferAssets()向指定的平行链发送代币

下图例子

平行链代理账户,这是通过paraid生成的账户,他是确定的账户。

para-id=2115的平行链代理账户是:5Ec4AhNzgnZ7jXzsdUAEbGBWu2GNfwppYZdf6P1JqNq6BntW

OpenHRMP

开通HRMPchannel的步骤:

发送方平行链发送一个初始化开放通道请求。

接收方平行链接受请求。

现实资产代币化协议Watr赢得第27轮波卡平行链竞拍:9月19日消息,现实资产代币化协议Watr赢得第27轮波卡平行链竞拍。Watr是现实资产代币化协议,可以为碳信用、农业商品、金属和能源等资产进行代币化,并支持融资和交易等。[2022/9/20 7:07:12]

两条链需要互相交替进行操作,因为hrmp是单向的,如果需要进行跨链资产转账就需要打开双向的hrmp通道。

下面通过链A为Sender,链B为Recipient,以打开链A->链B的Hrmpchannel为例

链ASender2008

1.在中继链构造hrmp.hrmpInitOpenChannel()的结构体,并获取encodedcalldata。

这里有三个参数

Recipient接收者的ParaId

proposeMaxCapacity也是个限制的值

proposeMaxMessageSizexcm消息的大小限制

波卡42号提案进行投票,计划11月4日开启平行链注册和众贷:11月2日消息,将波卡Runtime升级至v9122的42社区提案目前正在投票中,如果该提案获得通过,将会在11月4日开启平行链注册和众贷。[2021/11/2 6:27:03]

其中proposeMaxCapacityproposeMaxMessageSize的值不能设置的太大,必须要比中继链规定的最大配比要小,要不然会出错。通过中继链ChainState下的configuration.activeConfig()方法查找这项约束。

2.回到平行链,通过sudo构造ormlXcm.sendAsSovereign()

ormlXcm.sendAsSovereign(??dest:?XcmVersionedMultiLocation??{????V1:?{??????parents:?1??????interior:?Here????}??}????message:?XcmVersionedXcm??{????V2:???????}??????{????????BuyExecution:?{??????????fees:?{????????????id:?{??????????????Concrete:?{????????????????parents:?0????????????????interior:?Here??????????????}????????????}????????????fun:?{??????????????Fungible:?40,000,000,000????????????}??????????}??????????weightLimit:?Unlimited????????}??????}??????{????????Transact:?{??????????originType:?Native??????????requireWeightAtMost:?1,000,000,000??????????call:?{????????????encoded:???????????}????????}??????}??????{????????DepositAsset:?{??????????assets:?{????????????Wild:?All??????????}??????????maxAssets:?1??????????beneficiary:?{????????????parents:?0????????????interior:?{??????????????X1:?{????????????????Parachain:???????????????}????????????}??????????}????????}??????}????]??})

Rococo将过渡为去中心化的社区平行链测试平台:10月22日消息,Parity Technologies的生态建设负责人BenWei?表示,波卡平行链测试网Rococo此前一直专注于平行链共识功能的内部测试,现将转为去中心化的社区平行链测试平台。接下来的几周,Parity团队将分阶段在Rococo推出不同的功能,并将Rococo过渡到完全由社区维护的平行链测试平台。

Parity工程师已经开始开发一个平行链上线自动化模块,旨在允许每个平行链构建者在有限的时间范围内定期连接到Rococo,计划在11月初发布。[2021/10/22 20:49:57]

-hex-call>为上面我们构造的encodecalldata:0x1700d907000008000000e21f0000

为我们当前平行链的paraid:2008

交易成功之后,会在中继链执行encodecalldata的函数。

链BRecipient2009

Acala先行网Karura已为平行链拍卖开放众贷注册:据官方消息,Acala先行网Karura已为平行链拍卖开放众贷注册。Karura Network计划在Kusama Network上推出其DeFi Hub。用户需要锁定KSM 48周来获得KAR代币。所有KSM将在众贷结束后释放。[2021/5/24 22:37:49]

1.在中继链构造hrmp.hrmpAcceptOpenChannel()的结构体,并获取encodedcalldata。

其中参数中的sender为发送者的paraid,也就是对应链A的paraid

2.回到平行链,通过sudo构造ormlXcm.sendAsSovereign()

ormlXcm.sendAsSovereign(??dest:?XcmVersionedMultiLocation??{????V1:?{??????parents:?1??????interior:?Here????}??}????message:?XcmVersionedXcm??{????V2:???????}??????{????????BuyExecution:?{??????????fees:?{????????????id:?{??????????????Concrete:?{????????????????parents:?0????????????????interior:?Here??????????????}????????????}????????????fun:?{??????????????Fungible:?40,000,000,000????????????}??????????}??????????weightLimit:?Unlimited????????}??????}??????{????????Transact:?{??????????originType:?Native??????????requireWeightAtMost:?1,000,000,000??????????call:?{????????????encoded:???????????}????????}??????}??????{????????DepositAsset:?{??????????assets:?{????????????Wild:?All??????????}??????????maxAssets:?1??????????beneficiary:?{????????????parents:?0????????????interior:?{??????????????X1:?{????????????????Parachain:???????????????}????????????}??????????}????????}??????}????]??})

GavinWood:波卡平行链大概分为七个上线顺序:12月8日消息,波卡(Polkadot)创始人 Gavin Wood 在 Element 聊天室提到了关于平行链相关事宜的上线顺序。具体为:

1、上线 Rococo v1 并等待其稳定运行;

2、上线 Kusama 的 system(公共利益性质)平行链;

3、开启 Kusama 上的竞拍;

4、上线 Kusama 上竞拍成功的平行链;

5、在审计完成后,上线 Polkadot 的公共利益性质平行链;

6、开启 Polkadot 上的竞拍;

7、上线 Polkadot 上竞拍成功的平行链。[2020/12/8 14:36:58]

为上面我们构造的encodecalldata:0x1701d8070000

为我们当前平行链的paraid:2009

发起交易后,在中继链可以查看到执行成功的日志。

检查是否成功打开HRMPChannel

1.查看中继链存储hrmp.hrmpOpenChannelRequestList()

2.观察中继链页面中parachains的in/out内容

参考链接

OpenHRMPChannel:

https://wiki.acala.network/build/development-guide/composable-chains/open-hrmp-channel

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:0ms0-3:622ms