密码极客 | 国内最权威的区块链技术创投社群

polkadot波卡链:验证人节点云部署教程

VOBCVOBC 2019-05-10 5,028 次 收藏0

Polkadot有异构多链框架的愿景,框架连接多个平行链,在一个区块链x系统上实现Dapp和智能合约,以便在其他链上无缝地交易数据和资产。

我做的第一个练习是将Polkadot Verification Node部署为dockerized cloud实例。我称之为“Polkadot框架的Hello World”。在Polkadot“Krumme Lenke测试网络”(这反映了项目的POC-2状态)的连接和同步验证器节点中,对现有150万个块进行数小时的同步后。

在下面的屏幕截图中,您可以看到我的节点“clb-polkadancer”,它与24个对等节点相连,每5秒钟处理一个新的区块,并将其添加到其本地区块链(遥测用户界面)。

请注意,本文介绍了Docker上的polkadot验证器节点的实例化。要将其转换为完全受信任的polkadot验证人节点,该节点积极参与股权证明(POS)协商过程-需要额外的步骤,并将在另一篇博客文章中介绍。

验证人是维护一个polkadot网络的四个基本角色之一。其他三个角色是;

  • 收集人
  • 提名者
  • 渔民

白皮书中描述了4个角色及其相互作用,如下所示:

 

验证人的作用取决于是否有足够高的保证金存入,尽管我们允许其他担保方指定一个或多个验证人成为代理人,因此,验证人的部分保证金可能不一定由验证人本身拥有,而是由这些提名人拥有。

那么验证人的主要任务是什么呢?

验证器必须运行具有高可用性和带宽的中继链客户端实现。在每个区块,节点必须准备接受在指定的链上批准新区块的角色。此过程涉及接收,验证和重新发布候选块。

有两个新概念引入了“中继链”和“平行链”,并且是polkadot中的核心概念。让我们试着用白皮书的总结来快速解释它们:

polkadot提供了一个基础的“中继链”,在此基础上,可以并行承载大量可验证的、全局一致的动态数据结构。我们称这些数据结构为平行链。

因此,我们的验证器节点是中继链的一部分,接收区块,如果块属于我们的托管平行链,将它们验证打包并完全同步的平行链数据库中。如果块属于不在我们范围内的平行链,那么

验证器节点将指定一个任务,提议给另外的平行链的第三方,称为collator

 

 

如果您希望被提名为批准的验证节点,您必须确保以7x24的方式运行节点,以便与全局平行链的发展保持同步。否则,渔民会发现这种不良行为并给予惩罚,可能会把你踢出共识验证者的角色。

如下图所示,大约每5秒处理一个新块,传播时间为502毫秒。您的节点必须准备好及时处理和传播此类请求。

 

 

准备验证器Dockerfile

我所有的云项目(无论是基于Java的Bot还是基于Meteor Node.js的前端)我都在Docker容器中运行。这使我能够标准化和自动化部署和运行时配置和调优。

Polkadot已经提供了自己的Docker Image“chevdor / polkadot”,它基于“phusion / baseimage:0.10.1”,它映射到最新的Ubuntu版本18.04。

Jelastic PaaS提供的不是Ubuntu 18.04,因此我将Dockerfile更改为基于Ubuntu 16.04版本,并通过名为“talfco / clb-polkadot”的Docker Hub支持;

配置Validator Docker实例

在Hidora PaaS中,我创建了一个新的Docker Environment“polkadotDocker”,并从Docker Hub加载了我的clb-polkadot Docker镜像。

重新同步阶段的初始实例配置是4-5个cloudlet,它被转换为1.6 GHz  -  2.0 GHz之间的CPU,内存是512 MB到640 MB。

我将Polkadot数据库目录配置为在服务器本地文件系统上保留,以便在重新部署新的docker镜像后不会丢失我们的完整平行链数据库。

最后,我在入口点添加了-name'clb polkadancer'参数。

运行验证节点

我启动了实例,日志文件将显示同步的进度。

 

建立平行链DB的副本

作为第一步,Validator节点必须在本地节点上构建完整的parachain DB。

正如可以在下面的屏幕截图所示,链构建阶段 大约在14:30完成,几乎使用所有CPU。 完成后,CPU使用率降至200-250 MHz。 要建立大约500万个区块的完整平行链,需要6个小时的处理时间。 整体磁盘消耗约为5 GB。

加载了完整的平行链后,就可以重新配置实例了。 测试的第一个实例配置包括2个cloudlet,它们被转换为256 MB RAM和800 MHz的CPU。

Cloudlets调整

对运行时统计数据的评估表明,我们节点的RAM上限(对于2个Cloudlets 256 MB)始终是最高的,这会导致额外的动态Cloudlets收费,这是次优的。

最后:别忘了打开30333端口

在这个屏幕截图中可以看到,某些节点只与一半的平行链节点(24)连接。

本文系作者个人观点,转载请注明出处!
喜欢 0
支付宝扫码打赏
微信打赏

相关文章

更多

发布评论

共0条评论