实验环境
两条平行链-链A(2008)和链B(2009)
一条中继链
实验目的
通过orml-xcm打开链A和链B之间的hrmpchannel
前提准备
平行链代理账户需要一定的中继链token,所以需要在中级链通过xcmPallet.limitedReserveTransferAssets()向指定的平行链发送代币
下图例子
平行链代理账户,这是通过paraid生成的账户,他是确定的账户。
Centrifuge 赢得 Polkadot 的第 9 个平行链插槽:金色财经报道,去中心化资产融资协议Centrifuge赢得了 Polkadot 的第 9 个平行链插槽,与 Polkadot 第二组平行链拍卖的其他平行链一样,预计将于 3 月 11 日推出。
Centrifuge 用于将非数字原生的现实世界资产连接到去中心化金融中。它旨在允许用户在不使用中介和银行等的情况下为房地产融资并赚取特许权使用费。(cryptopotato)[2022/1/29 9:20:58]
para-id=2115的平行链代理账户是:5Ec4AhNzgnZ7jXzsdUAEbGBWu2GNfwppYZdf6P1JqNq6BntW
OpenHRMP
开通HRMPchannel的步骤:
发送方平行链发送一个初始化开放通道请求。
接收方平行链接受请求。
Genshiro将出售NFT,从而为Kusama平行链插槽竞拍提供资金:Equilibrium先行网络Genshiro将出售NFT作品,从而为Kusama平行链插槽竞拍提供资金。该NFT将从6月15日开始在Rarible上出售。[2021/6/11 23:30:30]
两条链需要互相交替进行操作,因为hrmp是单向的,如果需要进行跨链资产转账就需要打开双向的hrmp通道。
下面通过链A为Sender,链B为Recipient,以打开链A->链B的Hrmpchannel为例
链ASender2008
1.在中继链构造hrmp.hrmpInitOpenChannel()的结构体,并获取encodedcalldata。
Kraken正增加对Kusama平行链拍卖的支持:金色财经报道,在Kusama进行的第一轮拍卖之前,加密货币交易所Kraken正在增加对平行链拍卖的支持。Kraken发言人周二表示,众筹期现已开始,用户可以将KSM代币贡献给他们最喜欢的项目。Kusama平行链拍卖本身将于6月15日开始。[2021/6/9 23:22:53]
这里有三个参数
Recipient接收者的ParaId
proposeMaxCapacity也是个限制的值
proposeMaxMessageSizexcm消息的大小限制
其中proposeMaxCapacityproposeMaxMessageSize的值不能设置的太大,必须要比中继链规定的最大配比要小,要不然会出错。通过中继链ChainState下的configuration.activeConfig()方法查找这项约束。
波卡创始人:添加Kusama首条平行链的投票已启动:金色财经报道,波卡创始人兼Web3基金会主席Gavin Wood发推文称,第110号提案现在可以在Kusama上进行投票,如果通过,这将使第一条平行链添加到Kusama。[2021/5/18 22:12:55]
2.回到平行链,通过sudo构造ormlXcm.sendAsSovereign()
ormlXcm.sendAsSovereign(dest:XcmVersionedMultiLocation{V1:{parents:1interior:Here}}message:XcmVersionedXcm{V2:}{BuyExecution:{fees:{id:{Concrete:{parents:0interior:Here}}fun:{Fungible:40,000,000,000}}weightLimit:Unlimited}}{Transact:{originType:NativerequireWeightAtMost:1,000,000,000call:{encoded:}}}{DepositAsset:{assets:{Wild:All}maxAssets:1beneficiary:{parents:0interior:{X1:{Parachain:}}}}}]})
波卡周报:将通过公投方式推出公益平行链:本周波卡重要事件包括:1.平行链将通过链上治理推出。
2.将通过公投的方式来决定为公共利益平行链注册插槽。公益利益链又划分为系统平行链和公共功能平行链。其中,潜在的系统链包括用于余额、用于 Staking 和理事会的选举、治理和身份的平行链。潜在公共功能链包括桥、通用的资产链和 DOT 计价的智能合约平台。其中通用资产链是为稳定币和央行数字货币(Central Bank Digital Currencies)提供一个稳定、永久的平台。(PolkaWorld)[2021/2/28 18:00:51]
-hex-call>为上面我们构造的encodecalldata:0x1700d907000008000000e21f0000
为我们当前平行链的paraid:2008
交易成功之后,会在中继链执行encodecalldata的函数。
链BRecipient2009
1.在中继链构造hrmp.hrmpAcceptOpenChannel()的结构体,并获取encodedcalldata。
其中参数中的sender为发送者的paraid,也就是对应链A的paraid
2.回到平行链,通过sudo构造ormlXcm.sendAsSovereign()
ormlXcm.sendAsSovereign(dest:XcmVersionedMultiLocation{V1:{parents:1interior:Here}}message:XcmVersionedXcm{V2:}{BuyExecution:{fees:{id:{Concrete:{parents:0interior:Here}}fun:{Fungible:40,000,000,000}}weightLimit:Unlimited}}{Transact:{originType:NativerequireWeightAtMost:1,000,000,000call:{encoded:}}}{DepositAsset:{assets:{Wild:All}maxAssets:1beneficiary:{parents:0interior:{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
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。