实验环境
两条平行链-链A(2008)和链B(2009)
一条中继链
实验目的
通过orml-xcm打开链A和链B之间的hrmpchannel
平行链代理账户需要一定的中继链token,所以需要在中级链通过xcmPallet.limitedReserveTransferAssets()向指定的平行链发送代币
下图例子
平行链代理账户,这是通过paraid生成的账户,他是确定的账户。
para-id=2115的平行链代理账户是:5Ec4AhNzgnZ7jXzsdUAEbGBWu2GNfwppYZdf6P1JqNq6BntW
OpenHRMP
开通HRMPchannel的步骤:
发送方平行链发送一个初始化开放通道请求。
接收方平行链接受请求。
波卡DeFi平台Acala已完成平行链ID 2000的注册,预计4个小时后开启Crowdloan:11月5日消息,据Polkadot.js显示,波卡DeFi平台Acala已经完成平行链ID 2000的注册(平行链ID1000-1999为公益平行链),并预计在4个小时后开启Crowdloan,届时DOT持有者可开始为Acala Crowdloan贡献DOT。
据悉,Acala团队此前宣布本次将拿出ACA代币总量的17%(1.7亿ACA)竞拍波卡主网平行链插槽,并且在Acala官网与Polkawallet参与的用户还能1:1获得lcDOT,lcDOT是释放DOT竞拍流动性的产品,能让用户无需等待DOT两年锁定时间,在Acala上线后即可释放流动性。[2021/11/5 6:33:26]
两条链需要互相交替进行操作,因为hrmp是单向的,如果需要进行跨链资产转账就需要打开双向的hrmp通道。
下面通过链A为Sender,链B为Recipient,以打开链A->链B的Hrmpchannel为例
波卡创始人Gavin Wood:平行链将于12月在技术上达到可用状态:金色财经现场报道,10月26日,在万向区块链实验室主办的第七届区块链全球峰会活动上,波卡创始人 Gavin Wood 表示,非常自信平行链将于 12 月开始在技术上实现可行性,目前已经完成完整代码审计。另外,Gavin Wood 还分享了 Substrate 和 Polkadot 状态进展,第二次桥审计正在进行中,即将部署一个从测试网 Rococo 到桥测试网 Wococo 的桥,来测试可行性。[2021/10/26 20:57:50]
链ASender2008
1.在中继链构造hrmp.hrmpInitOpenChannel()的结构体,并获取encodedcalldata。
这里有三个参数
Recipient接收者的ParaId
proposeMaxCapacity也是个限制的值
proposeMaxMessageSizexcm消息的大小限制
Kusama第二次平行链插槽拍卖目前拍卖众筹已锁定约38.53万KSM:subscan数据显示,Kusama第二次平行链插槽拍卖将于5小时之后结束,截至今日11:40,本轮Kusama平行链卡槽拍卖众筹已锁定约385321KSM。当前锁定数量前三的分别是Moonriver 20.30万KSM、Shiden9.67万KSM以及Khala Network2.52万KSM。[2021/6/29 0:13:57]
其中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测试网验证节点可以自行选择检查平行链区块:波卡联合创始人Robert Habermeier表示,Rococo测试网拥有32个验证节点和15条平行链,持续12个小时没有节点的最终延迟大于4。这意味着验证节点可以自行选择检查平行链区块,恢复数据,并快速了解彼此的检查。[2021/4/4 19:45:11]
-hex-call>为上面我们构造的encodecalldata:0x1700d907000008000000e21f0000
为我们当前平行链的paraid:2008
交易成功之后,会在中继链执行encodecalldata的函数。
链BRecipient2009
1.在中继链构造hrmp.hrmpAcceptOpenChannel()的结构体,并获取encodedcalldata。
其中参数中的sender为发送者的paraid,也就是对应链A的paraid
波卡网络理事会成员Qinwen: 渐进式上线保证波卡平行链稀有性并减轻中继链负担:2月4日 15:00,波卡网络理事会成员Qinwen作客MXC抹茶社区,就“波卡平行链插槽拍卖在即,这些事实你必须知道”作出分享。
Qinwen 表示:“Polkadot是一个去中心化的网络。任何项目都可以为生态系统做出贡献,任何与Polkadot兼容的区块链都可以竞标插槽或作为平行线程进行连接。之前在Gavin的一些社区采访中也提到,平行链会先在 Kusama 网络上部署;对于创世期来说,不太可能有许多平行链, 上线是渐进式进行的,首批平行链将不会通过竞拍产生,而是系统级平行链,来减轻中继链的负担,增加更多的平行链。”[2021/2/4 18:54:50]
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:???????????????}????????????}??????????}????????}??????}????]??})
为上面我们构造的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
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。