验证者核对清单

此清单将有助于您了解验证者的角色,并为您的角色做好准备。在安装过程中,请随时访问 DiscordReddit 上的 EthStaker,获取一些友好的帮助!

第 1 部分 - 开始之前

在决定继续进行验证者设置之前,请先查看本部分。

建议免责声明

硬件建议在持续地变化。引入分片后,当前的最低要求可能会增加一个数量级。在存入资金前请自己先做好研究。

硬盘驱动器

  • 你需要运行 执行客户端共识客户端
  • 合并后,向第三方提供商(如 Infura 和 Alchemy)外包执行层责任不再可行。所有质押人必须运行执行客户端和共识客户端才能正确证明网络。
  • 截止 2022年5月,仅主网执行链数据就需要大约 1TB 存储(每日增长 >1GB)。
  • 以太坊诞生于 2015 年 7 月 30 日。随着时间的推移,以太坊的规模在不断增长,而分片的引入也会提高存储、内存和带宽要求。
  • 您需要 SSD 存储来持续处理必要的读/写速度。
  • 在对节点运行维护之前,请确保在驱动器上留出足够的空间。

CPU 和 RAM

  • 请查阅客户端文档,确保您要使用的硬件足够且受支持。
  • 不同客户端之间的资源使用可能会有很大差异。如果您使用的是资源限制,请研究不同的客户端。

互联网

  • 理想情况下,您的互联网连接应该是可靠的,并且尽可能接近全天候不间断。
  • 确保您的带宽不会被限制,也不会被封顶,以便您的节点保持同步,并准备好在被调用时进行验证。
  • 您还需要足够的上传带宽。截至 2022年5月,每小时的下载数据量约为 1.2-1.3 GB,上传数据量约为 0.9-1 GB,而且可能还会增加。

备注

  • 避免过于复杂的设置,并注意权衡取舍。短暂离线将导致轻微的不作为惩罚,但在重新在线大约相同时间后,将会很容易获得补偿。复杂的电源备份可能会增加设置费用,而冗余的备份验证者可能会导致被称为罚没的更严重惩罚。 关于罚没风险的更多介绍
  • 在最坏的情况下,同步您的执行客户端可能需要几天时间。

第 2 部分 - 安装期间在客户端设置过程中将此作为参考,以检查重要步骤。

初始设置

  • 首先设置您选择的硬件和操作系统。
  • 要最大限度地提高节点的安全性和效率,请使用专用硬件来运行客户端。这降低了恶意软件暴露的风险,并最大限度地减少了对计算资源的竞争,确保您的节点始终处理网络负载及其验证者职责。

节点安全性

执行客户端默认端口
Besu30303 TCP/UDP
Nethermind30303 TCP/UDP
Geth30303 TCP/UDP
Erigon30303 TCP/UDP
共识客户端默认端口
Lighthouse9000 TCP/UDP
Teku9000 TCP/UDP
Nimbus9000 TCP/UDP
Prysm13000 TCP, 12000 UDP
了解网络连接中的端口

配置时间同步

适用于 Ubuntu 20.04
  • 执行下列命令:
    timedatectl
  • 检查 NTP Service 是否为 active
  • 检查 Local timeTime zoneUniversal time 是否都正确。
  • 如果 NTP Service 不是 active,则运行
    sudo timedatectl set-ntp on
  • 如果看到错误消息 Failed to set ntp: NTP not supported,您可能需要安装 chronyntp 软件包。
  • 注意:默认情况下,VM 可能会禁用 NTP,因此您可能需要针对您的环境找到解决方法。
  • 注意:RTC(实时时钟)时间可以设置为您的本地时区,而不是 UTC,特别是在 Windows 上配置了时钟的虚拟机中。

测试网练习

我们强烈建议您在主网合并之前在当前测试网上完成这些步骤。 Goerli

配置您的执行客户端

审查验证者的角色和职责

记住

所有质押人必须既运行执行客户端也运行共识客户端。

推荐

Discord: Besu | Nethermind | Geth | Erigon

配置您的共识客户端

警告!

在多个地方运行您的验证者风险很高,将导致罚没事件并会被网络驱逐。关于罚没风险的更多介绍

推荐

Discord: Lighthouse | Teku | Nimbus | Prysm

JWT 身份验证

执行层和共识层之间使用 引擎应用程序接口 进行通信。这是一组 JSON 远程过程调用方法,可用于在两种客户端层之间通信。这种通信使用 JWT 密钥保护,该密钥仅在两个客户端之间共享以便它们相互进行身份验证。这个共享的 JWT 密钥必须提供给每个客户端(执行客户端和共识客户端),以便它们之间能够正常相互通信。共识 JWT 文档: Lighthouse | Nimbus | Prysm | Teku执行 JWT 文档: Besu | Erigon | Geth | Nethermind

设置提款地址

质押者必须设置一个提款地址,才能从共识层解锁奖励支付。提款地址在生成验证者密钥时设置。
如果你在存款之前没有提供提款地址,那么你必须再执行一个额外步骤来更新你的密钥并启用提款。与此同时,资金将被锁定。
更多关于质押的信息

设置费用接收地址

质押人必须向其共识客户端提供一个费用接收地址,以便接收交易费奖励。该地址是你熟悉的标准以太坊地址。
如果您没有向客户端提供地址,当您的验证者提议区块时,您将不会收到交易费。
参阅您的共识客户端文档,了解有关如何设置此项的客户端特定说明。费用接收文档: Lighthouse | Nimbus | Prysm | Teku

共识层信标节点 (BN)

必需

  • 使用以下命令对其进行验证,以检查其是否正确返回客户端版本:
    curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":67}' http://<YourServerLocation>:8545
  • 确保您的节点有 20 个以上的对等节点。

共识层验证者客户端 (VC)

必需

第 3 部分 - 交存后使用监控软件保护您的资金,并了解如何处理不同的现实场景。

这些步骤是可选的,但建议优化您的节点。

监视

Prometheus 和 Grafana 监视器

客户端支持 Prometheus 和 Grafana,这有助于可视化验证者的重要实时指标。监控文档: Lighthouse | Nimbus | Prysm | Teku

测试网模拟

在测试网上进行验证时,执行以下模拟以便进一步解您的节点,并更好地为主网做好准备:

高级系统架构

  • 为了避免在网络中暴露您的验证者身份。您可以使用一个值得信任的 VPN 来帮助减少披露您的 IP 地址的风险。
  • 此外,您可以在不同的计算机和 IP 上设置验证者客户端 (VC) 和信标节点 (BN),以便即使您的信标节点易受攻击,您的密钥库也存储在不同的计算机上。

涂鸦

您可以使用验证者客户端的拼写标志为您建议的区块(您选择的一些文本)添加个人风格。您可以使用 Beaconcha.inBeaconScan 区块链浏览器查看它。
如果您有问题,EthStaker 社区是一个寻求帮助的好地方!您可以在 DiscordReddit 上找到支持。