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

实验环境

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

一条中继链

实验目的

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

前提准备

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

下图例子

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

ETHDenver联创:未来将在世界各地设立分支活动:3月6日消息,ETHDenver联合创始人John Paller在ETHDenver闭幕日透露明年会议的吉祥物是“SporkWhale”,这体现了社区所有权。

同时,明年的会议在规模和范围上都将有所增长,正在与各个国家和地区讨论在世界各地设立分支活动,而ETHDenver将成为“超级碗”。[2023/3/6 12:44:10]

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

OpenHRMP

开通HRMPchannel的步骤:

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

接收方平行链接受请求。

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

以太坊ZK协处理器Axiom推出演示应用程序:1月31日消息,以太坊ZK协处理器(coprocessor)Axiom旨在提供智能合约对所有链上数据的去信任访问,使得开发人员可以访问历史链上数据,并通过向Axiom进行查询来对其执行经过验证的计算,以通过零知识证明增强区块链共识。

Axiom在以太坊主网上启动4个演示应用程序,使用户能够证明账户年限、证明Uniswap v2 TWAP值、访问RanDAO随机性等,同时也开源其演示背后的ZK电路和智能合约。[2023/1/31 11:38:17]

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

链ASender2008

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

移动游戏开发商Aeria Canada Studio将把其手游迁移到Web3:金色财经报道,移动游戏开发商Aeria Canada Studio与游戏初创公司Ready Games合作,将把其移动游戏迁移到Web3,游戏将进行改造以包含NFT,并在重新发布之前使用Ready Games的Web3基础设施进行装饰。首先是Rescue Robots:Sniper Survival,它在谷歌应用商店的下载量超过500万次。Beta测试预计将于12月1日开始,完整的全球版本定于1月发布。

Ready Games表示,将创建一个交易游戏资产的二级市场,同时允许玩家在通过Rescue Robots的过程中寻求不同的升级路径。(The Block)[2022/11/30 21:10:47]

这里有三个参数

Recipient接收者的ParaId

proposeMaxCapacity也是个限制的值

安全团队:Grim Finance攻击者中间地址向Tornado Cash转入1800枚ETH:金色财经报道,据派盾(PeckShield)监测,Grim Finance攻击者的中间地址(0x9882238)向Tornado Cash转入1800枚ETH(约330万美元)。2021年12月,Grim Finance遭到重入攻击,该攻击窃取了价值约3000万美元的加密资产。[2022/8/19 12:36:08]

proposeMaxMessageSizexcm消息的大小限制

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

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

-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

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

链链资讯

TRXAptos:为什么加密货币需要保险?-ODAILY

保险是全球经济的引擎之一。该行业被大多数人使用,但很少有人给予应有的信誉,它是我们所知道的业务的基础,将灾难性失败或不可预见事件的风险转移到一个单独的市场.

[0:5ms0-7:308ms