PAR:平行链上线技术系列五—平行链通过 orml-xcm 打开 hrmp

实验环境

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

一条中继链

实验目的

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

前提准备

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

下图例子

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

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

MKR是7月份Coindesk市场指数中涨幅最大的代币,上涨47%:金色财经报道,MakerDAO的MKR是7月份Coindesk市场指数(CMI)指标中涨幅最大的代币,上涨47%。Ripple Labs的原生代币XRP紧随其后,7月上涨了46.6%,因为美国法官裁定在交易所出售XRP代币不构成投资合约,BTC和以太币在7月份均下跌4%。

7月表现最差的资产包括比特币现金(BCH),下跌20%,以及莱特币(LTC),下跌18%。[2023/8/2 16:12:53]

OpenHRMP

开通HRMPchannel的步骤:

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

接收方平行链接受请求。

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

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

链ASender2008

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

Nansen:2023 Q1 NFT交易额达 45 亿美元:金色财经报道,区块链分析公司 Nansen 披露数据显示,2023 年一季度 NFT 交易额达到 45 亿美元,较 2022 年四季度的 19 亿美元增长了一倍多。交易 NFT 的独立钱包数量在 2023 年一季度达到 1390 万个,较上一季的 1120 万个增长了 24.5%。数据表明,新 NFT 用户数量并未出现较大增长,交易额激增可能与 BLUR 代币空投有关,5 月 NFT 交易额已回落至 2022 年看跌水平,每周交易量仅约为 90,000 ETH。(decrypt)[2023/5/9 14:50:37]

这里有三个参数

Recipient接收者的ParaId

proposeMaxCapacity也是个限制的值

proposeMaxMessageSizexcm消息的大小限制

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

数据:当前以太坊通缩速率约为每年55亿美元:金色财经报道,根据 The Block 统计数据,根据当前以太坊价格与燃烧速率,以太坊通缩速率约为每年 55 亿美元。此前报道,以太坊主网上海升级目标日期为 4 月 12 日,该升级将启用质押的 ETH 提款。[2023/4/11 13:57:28]

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

DeBank工程师:Uniswap已使用Permit 2,用户需认真检查签名内容以防资产损失:金色财经报道,DeBank工程师galenyuan.eth发推表示,Uniswap网页已经在使用新的代币授权标准Permit 2了,这意味着你的资产已经被放在这个潘多拉的魔盒中,不要签名任何看不懂的签名(包括文本签名),魔盒一旦打开很可能一笔签名就可以转走你所有资产。[2023/2/7 11:51:36]

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

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

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

链BRecipient2009

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

Binance将于12月1日14时对BTC网络进行钱包维护:11月30日消息,据官方消息,Binance将于北京时间12月1日14时对比特币网络(BTC)进行钱包维护,大约需要一个小时时间。钱包维护期间,BTC交易将不受影响。比特币网络(BTC)的存取款将从12月1日13:55开始暂停。Binance将在维护完成后重新开放充提服务,不再另行通知。[2022/11/30 21:12:37]

其中参数中的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-1:40ms