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

实验环境

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

一条中继链

实验目的

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

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

下图例子

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

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

OpenHRMP

开通HRMPchannel的步骤:

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

接收方平行链接受请求。

Gavin Wood:波卡平行链可能超过100条,生态中可能还会出现第三条中继链:近日,Polkadot创始人Gavin Wood在The Defiant播客中聊到“同为分片,波卡和以太坊2.0的区别”等话题。

Gavin称,我觉得两者在产品层面上的主要区别就是,在Polkadot中,你可以租到整个分片,而以太坊(2.0)则一直在试图坚持以太坊模型,只不过让这个模型变得更具可扩展性,扩展性基本是来自拥有更多的工作流,让一些智能合约运行在这个分片上,一些智能合约运行在另一个分片上。而Polkadot的想法产生于‘如果这些分片不一定非要是智能合约呢?如果它们可以是任何的链会怎样呢?如果说它们中的一个只专注于域名注册,另一个只专注于DeFi,另一个只专注于NFT呢?’这样做会不会有什么优势呢?

对于我来说,答案当然是有优势,因为有很多高吞吐量的应用,有时候你知道你肯定需要为这一个应用处理很多的交易,比如DeFi,那么专业化就很有必要,因为你对性能的要求极高,但同时你又有机会去做实验,你可以在不同的链上尝试不同的想法,不会拘泥于一个智能合约的模型,你甚至可以有多种不同的做智能合约的方式。其实现在也有不同的链在推动不同的智能合约模型,有的可能是非图灵完备,有的有存储手续费有的没有。我认为实验是让区块链伟大的地方,Polkadot可以同时进行100来个实验,这是让我很激动的一点。

针对波卡生态是否会有其他中继链,Gavin表示,可能还会有另外一两个,其中一个他看到的趋势是联盟类型的链,也就是专门为产业、企业、组织打造的链。他们可能想要联合起来并互相沟通,但是却不想成为某条公链的一部分,可能觉得没有必要加入另一条链的经济系统。对于这些链来说用Polkadot就更合适,因为Polkadot不会介入到所有交易中。所以理论上说,我们可能会看到一些中继链通过桥连接到Polkadot中继链,这些也可以被看作是广义上的Polkadot生态。(PolkaWorld)[2022/3/11 13:51:12]

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

Interlay赢得波卡第10次平行链插槽拍卖:2月25日消息,昨日晚间 9 点 44 分,波卡(Polkadot)网络第 10 次平行链插槽拍卖的蜡烛期结束。由于在整个蜡烛期内 Interlay 都处于领先状态,「摇骰子」结束之后,Interlay 在 2 月 24 日 23:35 以锁定 2,751,900 DOT 赢得波卡第 10 次平行链插槽 拍卖。关于波卡下一批插槽拍卖的安排,Web3 基金会的技术集成主管 Joe 发起一项议案与社区讨论,目前该议案已经通过并执行,该提案建议在接下来的 12 个月,也就是 4 个 LP 中,在每个 LP 进行 7 次 拍卖,即每 172,800 个区块(12 天)开始一个新的拍卖,两次 拍卖之间留有 73,800 个区块(大约 5 天 3 小时)的时间,一批中的前两名获胜者可以立即加入波卡网络,后面的五名获胜者将在下一个 LP 中接入波卡中继链。[2022/2/25 10:15:23]

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

Kusama开启第6次平行链拍卖,将持续到9月8日:官方消息,波卡先行网络Kusama表示,理事会通过议案346开启第6次平行链拍卖,本次拍卖持续到9月8日约北京时间16:00,目前有16个项目参与。[2021/9/1 22:53:03]

链ASender2008

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

这里有三个参数

Recipient接收者的ParaId

proposeMaxCapacity也是个限制的值

proposeMaxMessageSizexcm消息的大小限制

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

Web3 基金会公布波卡平行链上线流程:官方消息,Web3 基金会公布波卡(Polkadot)平行链的上线流程,当确信测试网平行链运行顺利且代码已完全经过审计和基准测试时,就会通过链上治理提交一份关于启用平行链和 Kusama 上的 Slot 拍卖的投票,之后将部署第一个公共平行链,并通过链上治理在 Polkadot 上开始 Slot 拍卖。目前的目标是,Polkadot 上有大约 100 个平行链 Slot 可用,平行链 Slot 租约将根据为期两周的蜡烛拍卖进行保障。一开始,大约每两周会举行一次拍卖。单独的平行链 Slot 最多只能租用两年(每 6 个月一次)。在租约结束时,Slot 将归还用于拍卖,而如果团队希望保留 Slot 的话需要再次参与竞标。随着平行链在 Polkadot 上的运行,该网络的发布将按照其最初的设想和设计正式完成。未来的升级,包括全功能的 XCMP 和平行线程,可以在代码完全开发、测试、基准测试和审计完成之后通过网络治理来启用。平行线程功能可能会在平行链上线几个月后再启用。[2021/2/23 17:43:04]

2.回到平行链,通过sudo构造ormlXcm.sendAsSovereign()

波卡联合创始人:平行链测试网Rococo V1已启动并运行:12月23日,波卡联合创始人Robert在PolkaWorld官方发文宣布,平行链测试网Rococo-V1已经启动并运行。平行链V1版本的代码库是为平行链共识准备的可生产代码,它与V0的不同之处在于包含了平行链的机制以及更健壮和可扩展的软件体系结构。平行链插槽(rococo v1版本)将在技术允许的情况下上线,并将按照先到先得的原则分配。像Rococo-V0一样,当出现向后不兼容的变化时,我们会定期重新启动Rococo-V1,以使我们作为开发团队能够快速地迭代与平行链相关的api,从而尽快推动Polkadot和Kusama网络上平行链功能的发布。我们要到明年年初(不早于1月4日),才会在社区开放平行链的注册。[2020/12/23 16:12:14]

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

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

金星链

USDTBER:CITEX平台早报-2022年7月21日

10:00数据BTC全网算力191.31EH/S当前挖矿难度29.15T理论收益0.00000434BTC/T/天ETH全网算力894.81TH/S当前挖矿难度11.87P理论收益0.

[0:15ms0-0:549ms