# 平行链上线技术系列三 -Rococo local and public test network **Published by:** [DAOrayaki](https://paragraph.com/@daoctor/) **Published on:** 2022-07-18 **URL:** https://paragraph.com/@daoctor/rococo-local-and-public-test-network ## Content 引言本文首先介绍在Rococo本地的测试流程,最后介绍rococo 线上测试parachain的流程Rococo local test network中测试parachainStart Relaychain(Local Rococo relaychain)准备 rococo-local-cfde.json 以下命令是在 polkadot 目录下操作的,这里切换分支到 v0.9.16,然后编译 cargo build --release 编译完成后,在polkadot目录下执行:启动parachain生成parachain的 chain spec如果需要修改paraId,可以修改rococo-local-parachain-plain.json文件 这里修改为: 2052生成修改后的paraId的chainspec文件生成wasm文件生成genesis state文件启动本地collator节点然后在打开本地的relaychain的polkadot-js的前端界面,注册parachain,上传Wasm和genesis state 参考:https://docs.substrate.io/tutorials/v3/cumulus/connect-parachain/ Rococo live test network中测试parachain 比如,上面我们已经注册了parachain 2052,那么我们就可以在rococo公开测试网上测试我们的Parachain了。 步骤: 1、在 rococo public test network 注册一个paraId2、通过这个ParaId(这里选择自己已经注册的一个Id,我这里选自己注册的2052)以及之前我们本地生成的genesis state和wasm文件来注册parathread3、当注册成为一个parathread后,我们可以看到parathread处于onboarding状态。此时,我们就可以申请成为平行链了,可以联系Parity官方的人进行操作,在element频道 4、如果官方的人将Parathread升级为parachain后,我们就可以开始本地启动平行链进行测试,是否能链接到rococo live且正常出块。 (1)首先,启动Live模式的parachain,这里有两种方式: 第一种:修改parachain链的chainspec文件,以命令行的方式进行指定Live启动 第二种:通过json文件的形式,由于我们之前已经在本地生成了rococo-local-parachain-2052-raw.json 这个文件,我们只需要修改其中的一些参数(目前很多项目方使用较为普遍的方式,而且操作简单)主要修改字段为: chainType:需要将Local修改为Live, relay_chain:修改为rococo para_id:需要与我们在rococo live上注册的parachainId保持一致 其他的字段看自己需要进行修改,也可不修改 这里值得一提的就是bootNodes字段,这个字段在自己首次本地启动的时候无需进行配置,但是如果你的平行链已经上线并且需要给其他用户加入的话,这里就需要进行配置引导节点。 (2)获取当前需要连接的rococo live的chain spec文件 笔者此时的rococo live的runtime版本为polkadot-v0.9.16,所以我们从polkadot上获取到rococo的chain spec文件 ,放在我们的parachain目录下 注意,我们的parachain live的runtime版本必须要和当前rococo live的版本一致 (3)一切准备就绪后(准备好parachain live的chain spec文件和rococo live 的chain spec文件),我们就可以启动我们本地的平行链,准备连接到rococo live进行parachain出块测试了 注意,下面的base path我们需要预留至少12G的空间(以当前时间为2022-02-20来计算的话),否则空间不够拉取rococo的区块在启动上述命令后,我们可以看到Log里会同步rococo的区块,整个过程大概耗时2小时左右,等待全部同步完毕后,我们的Parachain就会正常出块了~。 查看rococo test network可以看到:打开本地8844端口可以看到parachain已经可以正常出块了,这里我已经出到204个块.....至此,rococo live测试结束~ Rococo live 部署注意事项: 1、如果出现以下问题:这种是由于使用的rococo live的json文件和当前rococo live版本不一致导致的,比如使用的是polkadot-0.9.13的live文件,然而当前rococo live版本为polkadot-v0.9.16 2、同步中继链区块错误:这里是由于我们live Parachain的版本和rococ live不一致 3、在将pallet版本从polkadot-v0.9.13升级到polkadot-v0.9.16时,出现一些pallet宏功能无法使用问题 (1)pallet Struct的宏问题当前polkadot-v0.9.16版本中,Pallet结构体上需要加上#[pallet::without_storage_info] (2)pallet storage问题 当前polkadot-v0.9.16版本中,我们在使用StorageMap这个存储结构的时候,如果我们的存储结构中涉及到AccountId需要使用OptionQuery的方式,而非之前的ValueQuery,因为在官方移除了对于AccountId的default处理,所以我们就需要使用Option的方式处理空值None。对应的咱们的pallet就需要进行重构,并对None进行处理,杜绝Runtime出现这种异常。 4、在同步rococo live的区块时,出现以下错误,并且可以看到一直拉取不到最新的区块(本地同步的区块始终低于最新区块高度)这里是由于本地机器时间不同步,使用ntp同步即可通过 DAO,研究组织和媒体可以打破地域的限制,以社区的方式资助和生产内容。DAOrayaki将会通过DAO的形式,构建一个代表社区意志并由社区控制的功能齐全的去中心化媒体。欢迎通过文末方式提交与DAO、量子计算、星际移民、DA相关的内容,瓜分10000USDC赏金池!欢迎加入DAOrayaki社区,了解去中心化自治组织(DAO),探讨最新话题! 官方网站:https://daorayaki.org Media:https://media.daorayaki.org Discord server: https://discord.gg/wNUPmsGsa4 Medium: https://medium.com/@daorayaki Email: daorayaki@dorafactory.org Twitter: @daorayaki_ 微信助手:DAOrayaki-Media ## Publication Information - [DAOrayaki](https://paragraph.com/@daoctor/): Publication homepage - [All Posts](https://paragraph.com/@daoctor/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@daoctor): Subscribe to updates - [Twitter](https://twitter.com/daorayaki_): Follow on Twitter