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

实验环境

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

一条中继链

实验目的

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

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

下图例子

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

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

OpenHRMP

开通HRMPchannel的步骤:

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

接收方平行链接受请求。

互操作性协议Connext Labs完成750万美元融资:6月14日消息,互操作性协议Connext Labs以2.5亿美元的估值筹集750万美元,Polychain Capital、Polygon Ventures、Coinbase Ventures、Ethereal Ventures、1kx、Hashed和Scalar Capital等参投。该轮融资使Connext的总融资额达到2320万美元。新资金将用于设立Connext基金会,该基金会将负责向Connext建立的计划发放发展补助金和资金。

Connext表示正在“构建Web3的HTTP”,形成跨不同区块链网络的通信层,以便应用程序可以同时与多个网络上的资金和数据进行交互。[2023/6/14 21:36:29]

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

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

DeFi收益平台Texture完成500万美元融资:金色财经报道,DeFi收益平台Texture完成500万美元融资,P2P Capital 和 Sino Global领投。Wintermute、Semantic Ventures 和 Jane Street Capital等参投,本次融资以稳定币USDC筹集,据悉,Texture是一个运行在Solana链上的DeFi平台,已进入内测阶段,目标在年底前全面推出。[2022/11/4 12:17:57]

链ASender2008

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

这里有三个参数

Recipient接收者的ParaId

proposeMaxCapacity也是个限制的值

proposeMaxMessageSizexcm消息的大小限制

xToken闪电贷攻击事件导致损失450万美元,将关闭xSNX产品并构建补偿计划:8月30日,DeFi质押平台xToken遭受攻击后发布后续调查报告,此次攻击系xSNX合约漏洞被利用,并称本次持有人的损失约为450万美元,将停止提供xSNX产品。xToken称,能够调用「callFunction」函数是漏洞的根源,该函数应该只能从dydx的SoloMarginflashloan合约中调用,但错误的require语句允许该函数可公开调用。xSNX将在本周进行合约升级,将合约中的所有资产兑换为ETH,更新后用户可赎回。此外,团队表示正在努力构建一个基于XTK的补偿计划。律动此前报道,8月29日,PeckShield「派盾」预警,xToken遭到闪电贷攻击,目前损失金额不详,请用户注意风控。[2021/8/30 22:46:13]

其中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:???????????????}????????????}??????????}????????}??????}????]??})

-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:?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

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

大币网

[0:0ms0-4:354ms