本文的来源:PolkaWorld [1]
初步知识
在实时网络上运行验证节点需要承担很多责任!您不仅要对自己的权利负责,而且还要为现任被提名人的权益负责。如果由于某些操作错误而大刀阔斧,您的利益和声誉将受到威胁。但是,运行验证节点也会有很多好处。在获得更多好处的同时,您还为去中心化网络的安全做出了贡献。由于安全性对于验证节点的成功运行至关重要,因此,您可以查看相关信息“安全性验证节点” [2],以了解在构建基础结构时要考虑的因素。 Web3 Foundation还维护了有关安全验证器设置的参考文档[3] ,您可以自己部署它(单击此处[4]以查看视频操作过程)。随着您继续积累验证者,您可以使用此存储库作为起点进行适当的修改和自定义。如果需要帮助,请访问Riot上的Polkadot Validator Lounge [5] 。我们的团队和其他验证者将在此处提供帮助和答案,或者根据经验分享一些提示。
我需要几个DOT?
您至少可以在这里大致估算出需要多少DOT [6] 。验证节点的选择是通过Phragmen算法[7]进行的 。要选择进入验证者节点池,即成为验证节点,您需要**保证。保证的这一部分可以来自您自己,也可以来自被提名人[8] 。这意味着,作为**保证,您必须有足够的DOT存款来建立Stash和Controller帐户[9] ,以及一些额外的交易费用。 DOT的其余部分可能来自被提名人。 注意:您在验证节点上投资的任何DOT都可能被削减,这意味着不安全或不正确的设置可能直接导致DOT丢失!如果您不确定是否可以成功运行节点,建议将DOT提名给受信任的验证节点。
默认设置
要求
对于初学者来说,最常见的运行验证节点的方法是在Linux云服务器上运行它。您可以选择自己喜欢的VPS [10]供应商以及您想要使用的任何操作系统。我们将在本指南中使用Ubuntu 18.04 ,但其他平台的说明应相似。 Polkadot中的交易权重基于标准硬件。建议验证节点至少运行标准硬件,以确保它们可以及时处理所有块。以下不是**要求,但如果决定以低于此速度的速度运行,则可能会遇到性能问题。
标准硬件
有关硬件标准的完整详细信息,请参见此处[11] 。
-
CPU-英特尔(R)酷睿TM i7-7700K CPU @ 4.20GHz -
存储 -NVMe固态驱动器。大小应合理调整以应对区块链的增长。在Polkadot的前6个月中,它可以在30GB-50GB之间使用,但需要每6个月对其进行重新评估。 -
内存 -64 GB。
上面发布的规范绝不是运行验证器时可以使用的**规范,但是应注意,如果使用较低的规范,则可能需要切换一些其他优化以使其与使用标准配置的其他验证器相同。
安装Rust
选择云服务提供商并将其设置在新服务器上之后,要做的第一件事是安装Rust。如果您从未安装过Rust,请先安装它。此命令可以获取**版本的Rust并进行安装。
curl https://sh.rustup.rs -sSf | sh
另外,如果已安装Rust,请运行以下命令以确保您使用的是**版本。
rustup update
**,运行此命令以安装必需的依赖项,以编译和运行Polkadot节点软件。
sudo apt install make clang pkg-config libssl-de build-essential
注意:如果使用的是OSX并且已安装Homebrew [12],则可以使用以下等效命令代替上述命令:
brew install cmake pkg-config openssl git llm
安装和配置网络时间协议(NTP)客户端
NTP [13]是旨在同步时间的网络协议。 NTP允许您同步网络中所有系统的时间。当前,验证者的本地时间需要保持合理的同步,因此您应该运行NTP或类似服务。您可以通过运行以下命令来检查您是否具有NTP客户端: 如果您使用的是Ubuntu 18.04 / 19.04,则默认情况下应安装NTP客户端
timedatectl
如果已安装并运行NTP,则应该看到“系统时钟已同步”:是(或类似的系统通知)。如果看不到它,则可以执行以下命令并安装:
sudo apt-get install ntp
ntpd将在安装后自动启动。您可以查询ntpd以获得状态信息,以验证一切是否正常:
sudo ntpq -p
构建并安装polkadot二进制文件
创建并安装polkadot二进制文件
您将需要从GitHub paritytech / polkadot [14]存储库的0.8分支中提供的源代码创建polkadot二进制文件。通常应使用**的0.8.x标签。在撰写本文时,它是0.8.2 ,但是您应该检查“ git tag”命令的输出(git tag | grep“ $ / 0 / .8”)以检查所有潜在的0.8版本的列表。您应将0.8.2替换为**版本(即**编号)。您也可以在发行版[15]选项卡上找到Polkadot的**版本。 “注意:如果您更喜欢使用SSH而不是HTTPS,则可以将下面的第一行替换为git clone [email protected]:paritytech / polkadot.git。
git clone https://github.com/paritytech/polkadot.git cd polkadot git tag | grep quot;$/0/.8quot; git checkout 0.8.2 ./scripts/init.sh cargo build --release
此步骤将花费一些时间(通常需要10到40分钟,具体取决于您的硬件)。请注意,如果遇到编译错误,则可能必须切换到较新的夜间版本。这可以通过运行以下命令来完成:
rustup install night-2020-05-15 rustup oerride set night-2020-05-15 rustup target add wa32-unknown-unknown --toolchain night-2020-05-15
如果您有兴趣在本地生成密钥,则可以从同一目录安装子密钥。然后,您可以获取生成的子项可执行文件,并将其传输到空白计算机以提高安全性。
cargo install --force --git https://github.com/paritytech/substrate subkey
同步链数据
注意:默认情况下,验证者节点需要处于存档模式。如果已在非归档模式下同步链,则必须首先使用polkadot清除链删除数据库,然后确保使用–pruning = archie选项运行Polkadot。您可以通过添加以下标志在非归档模式下运行验证节点:-unsafe-pruning –pruning OF BLOCKSgt;,但是请注意,归档节点数据库和非归档节点数据库彼此不兼容,请切换,并且需要清除Chain数据。您可以通过运行以下命令来开始同步节点:
./target/release/polkadot --pruning=archie
如果您不想立即以验证节点模式启动。 –pruning = archie标志是从–alidator和–sentry标志编译而成的,因此仅在启动没有这两个选项之一的节点时才需要。如果尚未将修剪设置为存档节点,即使您不在验证节点和哨兵模式下运行,切换时也需要重新同步数据库。 注意:验证节点应使用RocksDb后端进行同步。默认情况下,它是隐藏的,但是可以通过传递–database RocksDb标志来显示。但是,建议切换到使用更快,更有效的ParityDb选项。在数据库后端之间切换将需要重新同步。如果要测试ParityDB,则可以添加标志— database paritydb。根据执行此操作时链的大小,此步骤可能需要几分钟到几个小时。如果要确定需要运行多长时间,服务器日志(从polkadot进程打印到STDOUT)将告诉您节点已处理并验证的**数据块。您可以通过[Telemetry](https://telemetry.polkadot.io/#list/Polkadot CC1“ Telemetry”)或Polkadot块浏览器[16]将其与当前**的块进行比较。 注意:如果您不持有DOT,则可以在软启动期结束后重试。您仍然可以运行该节点,但是您需要最少的DOT才能继续,因为在软启动期间,传输被禁用。需要理解的是,即使对于那些拥有DOT的人,他们也只能表明他们打算进行验证;在NPoS阶段开始之前,他们将无法运行验证程序节点。
债券点
注意:在Polkadot的软启动阶段,禁用传递功能。这意味着,如果您在此期间设置验证器,则可能无法以建议的方式将存储和控制器设置为两个单独的帐户。您必须将它们设置为相同的帐户,这意味着您将把该帐户绑定到其自身。但是,强烈建议您尽快更换控制器。强烈建议您将控制器帐户和存储帐户设置为两个单独的帐户。为此,您将创建两个帐户,并确保每个帐户至少有足够的资金来支付交易,因为您的大部分资金都将用作托管的抵押资金。请确保不要将所有DOT余额都用作存款,因为这会阻止您从存款余额中支付交易费用。接下来设置我们的验证节点,我们将执行以下操作:
-
将DOT绑定到Stash帐户中。这些DOT将用作保证网络安全的保证,并且可以大幅削减。 -
然后选择Controller,这是决定何时开始或停止验证的帐户。首先转到放样[17]部分。点击“帐户操作”,然后点击“新赌注”按钮。
仪表板绑定
-
储藏帐户 -选择您的储藏帐户。在此示例中,我们将绑定100毫托-确保您的存储帐户中至少有这么多的托。当然,您可以承诺更多的钱。 -
控制器帐户-选择之前创建的控制器帐户。该帐户还需要少量的DOT才能开始和停止验证。 -
保税价值 -您想从您的Stash帐户绑定或抵押多少DOT。请注意,您不需要绑定该帐户中的所有DOT。而且您需要知道以后总是可以绑定更多的 DOT。但是,需要提取已绑定的任何帐户释放的绑定截止日期。在Kusama网络中,取消绑定时间为7天。在Polkadot网络中,计划的解除绑定时间为28天。 -
付款目的地-帐户以获取固定奖励。单击此处[18]了解更多信息。
填写所有内容后,单击“债券”,然后使用您的Stash帐户签名交易。几秒钟后,您应该看到“ ExtrinsicSuccess”消息。您应该会看到一个包含所有帐户的新卡(注意:您可能需要刷新当前界面)。右侧的保证金金额对应于Stash帐户中的保证金。
设置会话密钥
注意:会话密钥是共识密钥,因此,如果不确定节点是否具有当前会话密钥,则可以使用setKeys事务来使用两种可用的RPC方法之一查询节点:hasKey [19]检查特定密钥,或hasSessionKeys [20]检查完整的会话密钥公共密钥字符串。节点完全同步后,按Ctrl-C停止该过程。在终端提示下,您现在将开始在验证器模式下运行该节点,并带有标记以允许某些**操作所需的不安全的RPC调用。
./target/release/polkadot --alidator --name quot;name on telemetryquot;
您可以给验证者一个喜欢的名字,但是您需要知道其他人也可以看到该名字,并且该名字将包含在使用同一遥测服务器的所有服务器的列表中。由于许多人正在使用遥测技术,因此建议您选择一种更独特的方法。
生成会话密钥
您需要通过签名并提交外部密钥来通知会话密钥。这就是验证节点与Polkadot上的Controller帐户关联的方式。
方法1:Polkadot-APPS
您可以使用RPC [21]在客户端中生成会话密钥。如果执行此操作,请确保Polkadot-Apps Explorer已连接到验证节点。您可以在“设置”选项卡中将应用程序仪表板配置为连接到验证节点的端点。如果您连接到Web3 Foundation的Parity托管的默认终结点,则将无法使用此方法,因为向该节点发出RPC请求将影响托管在公共节点上的本地密钥库,因此您需要确保您与节点的密钥库进行交互。确保连接到节点后,设置节点会话密钥的最简单方法是调用author_rotateKeys RPC请求,以在验证者的密钥库中创建新密钥。导航到“工具箱”选项卡,然后选择“ RPC调用”,然后选择authorgt; rotationKeys()选项,并记住保存返回的输出以用于下一步。 Explorer RPC调用
方法2:CLI
如果使用远程服务器,则在同一台计算机上运行此命令会更容易(当节点运行时配置了默认的HTTP RPC端口时):
curl -H quot;Content-Type: application/onquot; -d #39;{quot;idquot;:1, quot;onrpcquot;:quot;2.0quot;, quot;mETHodquot;: quot;author_rotateKeysquot;, quot;paramsquot;:[]}#39; http://localhost:9933
输出将具有以十六进制编码的“结果”字段。结果是四个公用密钥的串联。保存此结果供以后使用。此时,您可以重新启动节点,省略–unsafe-rpc-expose标志,因为不再需要它。
提交setKeys交易
您需要通过签名和提交外部信息来告知链上的会话密钥。这是将验证程序与您的Controller帐户关联的工具。转到Stakinggt;帐户操作[22] ,然后在您之前生成的绑定帐户上单击“设置会话密钥”在该字段中输入author_rotateKeys的输出,然后单击“设置会话密钥” 提交此外部信息,您现在就可以开始进行验证。
验证
要验证您的节点是否在线且已同步,请跳至[Telemetry](https://telemetry.polkadot.io/#list/Polkadot CC1“ Telemetry”),然后找到您的节点。请注意,这将显示Polkadot网络上的所有节点,这就是为什么选择唯一名称很重要的原因。如果一切正常,请继续,然后单击“验证” Polkadot用户界面。
-
付款**项 -您可以指定将支付给您的奖励百分比。其余的将分配给被提名人。
点击“验证”如果转到“放样”选项卡,将看到当前在网络上运行的活动验证器列表。在页面顶部,它显示了可用的验证器插槽数量以及已发出信号表示希望成为验证器的节点数量。您可以转到“等待”选项卡,然后仔细检查以查看是否在此处列出了您的节点。 放样队列验证器集在每个新时代都会刷新。在下一个周期的开始,如果有可用插槽,并且您已选择要加入验证程序节点池的节点,则该节点将成为活动验证程序节点。在此之前,它将保留在等待队列中。如果未选择验证程序成为验证程序节点池的一部分,它将保留在等待队列中,直到成为验证程序为止。如果未选择为特定时间段设置的验证器,则无需重新启动。但是,可能有必要增加认捐的DOT的数量或为验证者找到提名者,以便加入验证者节点池。 恭喜你!如果已执行所有这些步骤,并已被选为验证者节点池的成员,则您已成功开始运行Polkadot Verification Node!如果您需要帮助,请联系Polkadot Validator chat [23] 。
常问问题
没有对等方时,为什么不能同步链?
零对等确保已启用30333 libp2p端口。**,需要一段时间才能发现网络上的其他对等节点。如何清除链上的所有数据?
如何清除链上的所有数据?
./target/release/polkadot清除链
VPS清单
-
OVH [24] -
数字海洋[25] -
沃特[26] -
Linode [27] -
康塔博[28] -
Scaleway [29]
使用Docker
如果您已经安装了Docker,则可以使用它来启动验证节点,而无需构建二进制文件。您可以使用简单的单行命令执行此操作:
$ docker run parity/polkadot:latest --alidator --name quot;name on telemetryquot;
参考链接
- 欢迎学习Substrate: https : //substrate.de/
- 追踪基材进度: https : //github.com/paritytech/substrate
- 跟随Polkadot的进度: https : //github.com/paritytech/polkadot
原文:https://wiki.polkadot.network/docs/en/maintain-guides-how-to-alidate-polkadot
翻译:PolkaWorld
文章标题:最新教程:如何设置Polka Verifier节点
文章链接:https://www.btchangqing.cn/30332.html
更新时间:2020年06月02日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。