平行链上线技术系列三:Rococo local and public test network-ODAILY_DAO:JUS

引言

本文首先介绍在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文件

Messari发布波卡Q1社区报告:13个平行链获得1.278亿DOT的质押量:5月17日消息,Messari发布Polkadot 2022年第1季度社区报告,要点如下:

- 经过五年的发展,Polkadot平行链已经投入使用;

- 在2022年第一季度结束时,13个平行链获得了1.278亿DOT的质押量(占总供应量的11%,价值29亿美金);

- 到2023年2月,还有28个平行链槽拍卖计划正在进行中(总数达到41个);

- Polkadot价格和用户账户在第一次平行链槽拍卖前后创下历史新高;然而,这两项指标自那以来一直在稳步下降;

- Polkadot有一个均匀分布的验证器集,99%的验证器有180-260万个DOT;

- Polkadot开发者仍然在加密行业技术领域中占据主要位置;

- 下一个主要里程碑是跨共识消息格式(Cross-Consensus Message Format,XCM)的实现、平行线程和性能升级。(PolkaWorld)[2022/5/17 3:22:04]

这里修改为:2052

Polkadot平行链拍卖预计于11月12日凌晨启动:11月11日消息,Polkadot平行链拍卖预计将于11月12日凌晨正式启动。目前已经有8个Crowdloan活动在Polkadot发起,其中Acala的支持最多,目前已经有1.26万个DOT支持Acala。(PolkaWorld)[2021/11/11 6:46:28]

生成修改后的paraId的chainspec文件

生成wasm文件

生成genesisstate文件

启动本地collator节点

BM:EOS可以整合为平行链:针对刚刚BM询问网友选择波卡而非EOS的原因,网友PenPaperCoffee称,Polkadot有平行链(parachain)的概念,EOS的问题在于所有衍生品都是完全独立的。BM对此回复称,我的理解是EOS可以整合为平行链。[2020/10/29]

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

Rococolivetestnetwork中测试parachain

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

步骤:

1.在rococopublictestnetwork注册一个paraId

波卡创始人:Kusama平行链拍卖会先于波卡平行链拍卖进行:据官方消息,有社区成员询问波卡平行链插槽拍卖什么时候开始?对此波卡创始人Gavin Wood今日回复称,Kusama 平行链拍卖会先于波卡平行链拍卖进行。在我们准备好在 Kusama / 波卡上真正托管平行链之前,先开始进行拍卖是没有意义的。有几个阻碍因素如下:1.平行链代码需要从 Rococo v0 升级到 v1。目前这项工作正在进行中,可能还需要几个星期。v1 版本是未来一些重要功能(包括可用性和有效性、xcmp 和平行线程等)的基础。2.Cumulus?也需要升级,以配合 parachains v1 和 xcmp-lite,并加以稳定(这也是 Rococo 的一个重要的稳定性测试场所)。3.平行链的最终安全性(通过可用性和有效性)需要完全实施并(对于 Polkadot )进行审计。4.拍卖模块也需要(对于 Polkadot)进行审计(这需要 1-2 周的时间,但不太可能成为瓶颈)。所以关于插槽的拍卖,还没有固定的日期,因为在技术基础工作完成之前开始进行拍卖是没有意义的。不过每当完成了重要的里程碑的时候,我们会持续更新进展。[2020/9/23]

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

波卡发布中继测试网Rococo,包含三个平行链测试网:8月4日消息,波卡Polkadot(DOT)发布新的中继测试网Rococo,该测试网包括Tick平行链1测试网、Trick平行链2测试网和Track平行链3测试网三部分。目前波卡的测试网还有Westend、Arcadia、Berlin、FlamingFir和Mandala。[2020/8/4]

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:46ms0-3:771ms