平行链上线技术系列三:Rococo local and public test network_PAR:VIPchain

引言

本文首先介绍在Rococo本地的测试流程,最后介绍rococo线上测试parachain的流程

Rococolocaltestnetwork中测试parachain

StartRelaychain(LocalRococorelaychain)

准备?rococo-local-cfde.json

以下命令是在?polkadot?目录下操作的,这里切换分支到v0.9.16,然后编译cargobuild--release

编译完成后,在polkadot目录下执行:

启动parachain

生成parachain的chainspec

如果需要修改paraId,可以修改rococo-local-parachain-plain.json文件

Bifrost赢得Polkadot第18次平行链插槽竞拍,竞拍周期为2年:5月31日消息,据Polkadot链上显示,Bifrost于区块高度10535800(2022年05月31日00:41 UTC)成功赢得最新一轮Polkadot插槽竞拍,竞拍周期为2年(Lease Period 8~15)。据悉,Bifrost是首批成功竞拍Kusama平行链项目之一,并已在Kusama平行链上线 SLP、SALP等协议,最高积累超过$180M衍生品铸造量。据Bifrost公布路线图展示,Bifrost将同时运行Polkadot和Kusama平行链,进一步扩大衍生品协议采用范围,议会、国库等治理模块由Bifrost Kusama平行链迁移至Bifrost Polkadot平行链,并通过其唯一治理代币BNC实现Bifrost Polkadot平行链对Bifrost Kusama平行链的跨链治理。[2022/5/31 3:52:30]

这里修改为:2052

Crust Network赢得第19次Kusama平行链插槽拍卖:12月28日消息,Kusama第19次竞拍已结束,Crust Network以锁定30,026个KSM成功赢得Kusama的第21个插槽,接入Kusama中继链,以平行链的方式出块。据悉,第17个插槽后加入了Statemine和Encointer。[2021/12/28 8:09:24]

生成修改后的paraId的chainspec文件

生成wasm文件

生成genesisstate文件

启动本地collator节点

然后在打开本地的relaychain的polkadot-js的前端界面,注册parachain,上传Wasm和genesisstate参考:https://docs.substrate.io/tutorials/v3/cumulus/connect-parachain/

波卡周报:14.39%的KSM已锁在平行链插槽和Crowdloan中:据PolkaWorld发布的波卡周报,Polkadot网络的32号公投,将波卡的验证人从297增加到299。

提议将Polkadot升级到runtime 9090的Motion 106已通过理事会投票,并将被添加到外部队列中,成为33号公投,由社区进行全民投票。

Parity工程师Kian开始更新Polkadot如何改进staking机制来允许更多提名人加入,并降低最低提名的金额。

Polkadot理事会通过Motion105,该议案旨在资助一个印度的波卡孵化器。

Polkadot理事会正在投票波卡生态研究院的国库申请议案。[2021/9/6 23:02:31]

Rococolivetestnetwork中测试parachain

金色相对论?|?StaFi?Protocol李自鹏:Kusama的平行链拍卖本质上是为Polkadot做了一次先行版:金色财经报道,在今日举行的金色相对论中,针对“插槽拍卖的主网启动前最重要的里程碑,这个里程碑会带来什么联动效果?”等问题,StaFi?Protocol李自鹏表示,Kusama的平行链拍卖本质上是为Polkadot做了一次先行版,首先能够竞拍波卡卡槽肯定在项目背书、共享波卡资源上会有很大优势,但是成本也是也是明显的。我们在设计竞拍方案,但是还没有最终确定,因为卡槽拍卖规则、创世拍卖的DOT金额、开始时间等因素还有很大的不确定因素,所以我们会根据上述因素最新的进展来调整竞拍策略。 熟悉波卡PLO竞拍规则朋友都知道,是采用蜡烛拍卖方式确定价格,并且卡槽Slot的价格将采用蜡烛式拍卖规则确定。但区别于普通的蜡烛拍卖,波卡的平行链拍卖规则又做了一些调整:即波卡平行链拍卖有确定的时间,只是在拍卖时间正常结束后,再随机选择一个过去拍卖过程中出现的区块数作为拍卖结束的随机数,在此区块之前出价最高的竞拍人将获成为最终赢家。所以,中间还是有很多博弈策略的,所以我们需要先观察下Kusam上平行链卡槽拍卖的实际情况,来针对性调整波卡平行链卡槽的拍卖。[2020/12/11 14:56:15]

比如,上面我们已经注册了parachain2052,那么我们就可以在rococo公开测试网上测试我们的Parachain了。

Liam:目前的平行链还处于测试阶段,还要等待未来更多升级:9月3日消息,Stafi Cofounder?Liam在做客HyperPay焦点栏目时提及:波卡的中继链不但为接入其中的平行链提供了安全性,也保证了他们之间安全的信息传递。同时这些平行链可以同时工作,假如接入了10条平行链,那么这10条链可以同时工作互不影响,从而节省了计算时间。一些高度专业的平行链可以针对其专业领域有效实现数据存储和交易操作而不限定于区块链的脚本语言或虚拟机中。波卡平行链通过异步消息传递相互通信,仅仅在平心链相交的边界处支付手续费即可。目前的平行链还处于测试阶段,还需要等待未来的更多升级。[2020/9/3]

步骤:

1.在?rococopublictestnetwork?注册一个paraId

2.通过这个ParaId以及之前我们本地生成的genesisstate和wasm文件来注册parathread

3.当注册成为一个parathread后,我们可以看到parathread处于onboarding状态。此时,我们就可以申请成为平行链了,可以联系Parity官方的人进行操作,在element频道

4.如果官方的人将Parathread升级为parachain后,我们就可以开始本地启动平行链进行测试,是否能链接到rococolive且正常出块。

首先,启动Live模式的parachain,这里有两种方式:

第一种:修改parachain链的chainspec文件,以命令行的方式进行指定Live启动

第二种:通过json文件的形式,由于我们之前已经在本地生成了rococo-local-parachain-2052-raw.json?这个文件,我们只需要修改其中的一些参数

主要修改字段为:

chainType:需要将Local修改为Live,

relay_chain:修改为rococo

para_id:需要与我们在rococolive上注册的parachainId保持一致

其他的字段看自己需要进行修改,也可不修改

这里值得一提的就是bootNodes字段,这个字段在自己首次本地启动的时候无需进行配置,但是如果你的平行链已经上线并且需要给其他用户加入的话,这里就需要进行配置引导节点。

获取当前需要连接的rococolive的chainspec文件

笔者此时的rococolive的runtime版本为polkadot-v0.9.16,所以我们从polkadot上获取到rococo的chainspec文件,放在我们的parachain目录下

注意,我们的parachainlive的runtime版本必须要和当前rococolive的版本一致

一切准备就绪后,我们就可以启动我们本地的平行链,准备连接到rococolive进行parachain出块测试了

注意,下面的basepath我们需要预留至少12G的空间(以当前时间为2022-02-20来计算的话),否则空间不够拉取rococo的区块

在启动上述命令后,我们可以看到Log里会同步rococo的区块,整个过程大概耗时2小时左右,等待全部同步完毕后,我们的Parachain就会正常出块了~。

查看rococotestnetwork可以看到:

打开本地8844端口可以看到parachain已经可以正常出块了,这里我已经出到204个块.....

至此,rococolive测试结束~

Rococolive部署注意事项:

1.如果出现以下问题:

这种是由于使用的rococolive的json文件和当前rococolive版本不一致导致的,比如使用的是polkadot-0.9.13的live文件,然而当前rococolive版本为polkadot-v0.9.16

2.同步中继链区块错误:

这里是由于我们liveParachain的版本和rococlive不一致

3.在将pallet版本从polkadot-v0.9.13升级到polkadot-v0.9.16时,出现一些pallet宏功能无法使用问题

palletStruct的宏问题

当前polkadot-v0.9.16版本中,Pallet结构体上需要加上#

palletstorage问题

当前polkadot-v0.9.16版本中,我们在使用StorageMap这个存储结构的时候,如果我们的存储结构中涉及到AccountId需要使用OptionQuery的方式,而非之前的ValueQuery,因为在官方移除了对于AccountId的default处理,所以我们就需要使用Option的方式处理空值None。对应的咱们的pallet就需要进行重构,并对None进行处理,杜绝Runtime出现这种异常。

4.在同步rococolive的区块时,出现以下错误,并且可以看到一直拉取不到最新的区块

这里是由于本地机器时间不同步,使用ntp同步即可

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

水星链

[0:0ms0-0:663ms