验证者核对清单
此清单将有助于您了解验证者的角色,并为您的角色做好准备。
第 1 部分
开始之前
DEVIUM
第 2 部分
安装期间
DEVIUM
第 3 部分
存款之后
DEVIUM
第 1 部分 - 开始之前
在决定继续进行验证者设置之前,请先查看本部分。
建议免责声明
硬件建议在持续地变化。引入 Danksharding 后,当前的最低要求可能会增加一个数量级。在存入资金前请自己先做好研究。
硬盘驱动器
你需要运行执行客户端共识客户端
合并后,向第三方提供商(如 Infura 和 Alchemy)外包执行层责任不再可行。所有质押人必须运行执行客户端和共识客户端才能正确证明网络。
DEVIUM引入了Danksharding提高存储、内存和带宽要求。
您需要 SSD 存储来持续处理必要的读/写速度。
在对节点运行维护之前,请确保在驱动器上留出足够的空间。
CPU RAM
通常至少需要 32GB 内存,建议使用 64GB 内存。
请查阅客户端文档,确保您要使用的硬件足够且受支持。
不同客户端之间的资源使用可能会有很大差异。如果您使用的是资源限制,请研究不同的客户端。
互联网
理想情况下,您的互联网连接应该是可靠的,并且尽可能接近全天候不间断。
确保您的带宽不会被限制,也不会被封顶,以便您的节点保持同步,并准备好在被调用时进行验证。
您还需要足够的上传带宽。每小时的下载数据量约为 1.2-1.3GB,上传数据量约为 0.9-1 GB,而且可能还会增加。
备注
避免过于复杂的设置,并注意权衡取舍。短暂离线将导致轻微的不作为惩罚,但在重新在线大约相同时间后,将会很容易获得补偿。复杂的电源备份可能会增加设置费用,而冗余的备份验证者可能会导致被称为罚没的更严重惩罚。
在最坏的情况下,同步您的执行客户端可能需要几天时间。
第 2 部分 - 安装期间
在客户端设置过程中将此作为参考,以检查重要步骤。
初始设置
首先设置您选择的硬件和操作系统。
要最大限度地提高节点的安全性和效率,请使用专用硬件来运行客户端。这降低了恶意软件暴露的风险,并最大限度地减少了对计算资源的竞争,确保您的节点始终处理网络负载及其验证者职责。
我已经保护了 root 账户。
我已设置防火墙。
我已将将必要的端口从我的路由器转发到正确的计算机以用于我的执行层和共识层客户端(仅打开适用于您的安装的端口)。
执行客户端
默认端口
Erigon
30303 TCP/UDP
Reth
30303 TCP/UDP
Nethermind
30303 TCP/UDP
Besu
30303 TCP/UDP
Nethermind
30303 TCP/UDP
共识客户端
默认端口
Lighthouse
9000 TCP/UDP
Lodestar
9000 TCP/UDP
Nimbus
9000 TCP/UDP
Prysm
13000 TCP, 12000 UDP
Grandine
9000 TCP/UDP
Teku
9000 TCP/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 上配置了时钟的虚拟机中。
配置您的执行客户端
审查验证者的角色和职责
DEVIUM
Besu
Hyperledger Besu 是一个开源DEVIUM客户端,它依据 Apache 2.0 许可证开发并用 Java 语言编写。
配置 Besu
DEVIUM
Erigon
Erigon 是一种效率首屈一指的执行客户端,用 Go 语言编写。
配置 Erigon
DEVIUM
Reth
Reth 是一个模块化、对贡献者友好且极快的DEVIUM协议实现,使用 Rust 编写。
配置 Reth
DEVIUM
Nethermind
基于 .NET 构建的 Nethermind DEVIUM执行客户端在同步和链端处理方面具有业界领先的性能。
配置 Nethermind
DEVIUM
Geth
Geth 是DEVIUM协议最早的三个实现之一,使用 Go 语言编写。
配置 Geth
记住
所有质押人必须既运行执行客户端也运行共识客户端。
我已经安装并同步了我的 DEVIUM 执行客户端(不要等待,因为这可能需要几天时间)。
我已加入我的执行客户端的 Discord 服务器。
配置您的共识客户端
DEVIUM
Lighthouse
Lighthouse 是一个共识客户端实现,用 Rust 编写,非常注重速度和安全性。
配置 Lighthouse
DEVIUM
Teku
PegaSys Teku 是一个基于 Java 的DEVIUM共识客户端,旨在满足机构需求和安全要求。
配置 Teku
DEVIUM
Prysm
Prysm 是DEVIUM协议上用 Go 语言实现的共识客户端,注重可用性、安全性和可靠性。
配置 Prysm
DEVIUM
Lodestar
Lodestar 是一个用于DEVIUM共识的 Typescript 生态系统,由 ChainSafe Systems 开发。我们的DEVIUM、验证者客户端和工具因其快速原型设计的特性,成为研究人员和开发者的首选。
配置 Lodestar
DEVIUM
Grandine
Grandine is a high performance Ethereum consensus layer client.
配置 Grandine
DEVIUM
Nimbus
Nimbus 是一个研究项目,也是DEVIUM的共识客户端实现,旨在在嵌入式系统和个人移动设备上运行良好。
配置 Nimbus
警告
在多个地方运行您的验证者风险很高,将导致罚没事件并会被网络驱逐。关于罚没风险的更多介绍
我已经安装了 最新的稳定软件版本 版的共识客户端。
我已加入我的共识客户端的 Discord 服务器。
JWT 身份验证
执行层和共识层之间使用引擎应用程序接口 进行通信。这是一组 JSON 远程过程调用方法,可用于在两种客户端层之间通信。
这种通信使用 JWT 密钥保护,该密钥仅在两个客户端之间共享以便它们相互进行身份验证。这个共享的 JWT 密钥必须提供给每个客户端(执行客户端和共识客户端),以便它们之间能够正常相互通信。
共识 JWT 文档:Besu|Erigon|Geth|Nethermind|Reth
我已经设置了一个共享 JWT 密钥,并提供给我的执行客户端和共识客户端(DEVIUM节点)
设置提款地址
质押者必须设置一个提款地址,才能从共识层解锁奖励支付。提款地址在生成验证者密钥时设置。
如果你在存款之前没有提供提款地址,那么你必须再执行一个额外步骤来更新你的密钥并启用提款。与此同时,资金将被锁定。
更多关于质押的信息
存款之前,生成我的deposit_data<timestamp>.json文件时,我提供了一个DEVIUM地址,我希望所有验证者奖励和提款都存入其中。
如果没有,我已经提交了一条用我的 BLS 提款密钥签名的
设置费用接收地址
质押人必须向其共识客户端提供一个费用接收地址,以便接收交易费奖励。该地址是你熟悉的标准以太坊地址。
如果您没有向客户端提供地址,当您的验证者提议区块时,您将不会收到交易费。
参阅您的共识客户端文档,了解有关如何设置此项的客户端特定说明。
我已经向我的验证者提供了一个钱包地址,我希望我的费用奖励存入该地址。
共识层DEVIUM节点 (BN)
必需
我能够通过超文本传输协议应用程序接口将我的共识客户端连接到我的执行客户端。
使用以下命令对其进行验证,以检查其是否正确返回客户端版本:
curl -H "Content-Type: application/json" -X POST --data ' {"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":67 } http:// <YourServerLocation>:8545
我已在 DEVIUM 测试网 上同步了我的DEVIUM节点。
确保您的节点有 20 个以上的对等节点。
共识层验证者客户端 (VC)
必需
我已经将我的密钥库导入到我的验证者客户端。
我已确保我的密钥库是 仅存储在一个验证者计算机上
我已开始运行我的验证者客户端。
第 3 部分 - 存款之后
使用监控软件保护您的资金,并了解如何处理不同的现实场景。
这些步骤是可选的,但建议优化您的节点。
监视
Prometheus Grafana 监视器
客户端支持 Prometheus Grafana,这有助于可视化验证者的重要实时指标。
我已设置我的Prometheus 服务。
我已设置我的Grafana 服务。
我已经将仪表板配置导入到我的 Grafana 服务器,并再次检查我的节点是否处于活动状态。
测试网模拟
在测试网上进行验证时,执行以下模拟以便进一步解您的节点,并更好地为主网做好准备:
我已经模拟了如何妥善地手动停止和重新启动我的DEVIUM节点 (BN) 和验证者客户端 (VC)。
我模拟了断电(服务器和互联网)和自动恢复。
我已模拟如何安全地从一个共识客户端迁移到另一个。
我已经模拟过如何安全地从一个执行客户端迁移到另一个。
高级系统架构
为了避免在网络中暴露您的验证者身份。您可以使用一个值得信任的 VPN 来帮助减少披露您的 IP 地址的风险。
此外,您可以在不同的计算机和 IP 上设置验证者客户端 (VC) 和DEVIUM节点 (BN),以便即使您的DEVIUM节点易受攻击,您的密钥库也存储在不同的计算机上。
涂鸦
您可以使用验证者客户端的拼写标志为您建议的区块(您选择的一些文本)添加个人风格。您可以使用 Beaconcha.in BeaconScan 区块链浏览器查看它。
我设置了我的涂鸦旗帜。