阅读时间 5 分钟
Some sections of this guide might reference older technologies. Our goal is to ensure you have access to the most current and relevant information. If you’d like to see an updated version of this guide, please let us know in the feedback section at the end of this page.
概述
要顺利运行Ethereum ,选择一个优质的节点客户端至关重要。Nethermind 是最早出现且最值得信赖的Ethereum 客户端之一。在本指南中,我们将了解如何启动一个Nethermind节点。
什么是Nethermind?
Nethermind 是一个基于 .NET Core 的开源ethereum 实现。据称,Nethermind 是最快的Ethereum ;与其他客户端相比,其同步时间相对较短。它具备监控、稳定性、可靠性和安全性等功能。
除了Ethereum Mainnet外,Nethermind 还支持许多其他网络,例如
硬件要求
通常来说,IO速度越快,节点运行速度就越快。如果您在云端托管节点,建议选择DigitalOcean。
如果您计划在本地运行节点,建议使用高性能的固态硬盘(SSD)。如果使用机械硬盘(HDD),节点同步将耗费更多时间,甚至在同步完成后可能无法跟上网络更新速度。节点启动后,会显示预计所需的最大空间,但为了保险起见,建议预留比显示值更大的空间,因为某些区块同步操作可能会超过该数值。
以下是推荐的硬件配置:
对于快速同步节点,配备 16GB 内存、8 个 CPU 核心和 300GB 磁盘空间。
注意:虽然300GB的存储空间可能很快就会用完,因为快速mode 默认mode “修剪”mode 且磁盘占用空间会每天增加几GB。Nethermind提供了mainnet.cfg、goerli_pruned.cfg等的修剪配置文件,启用修剪功能后,数据库将持续进行修剪,磁盘空间也不会大幅增加。 Nethermind 核心开发团队正在开发一种新的数据修剪方法,因为当前的方法存在一些已知问题。
对于归档节点,建议配备 64GB 内存(若需最佳性能则为 128GB)和 64/128 个 CPU 核心。由于Ethereum 数据量大幅增长,Mainnet 数据库约占用 8TB 磁盘空间。因此,建议预留 12TB 磁盘空间,以确保节点至少能运行一年。
防火墙配置
建议在节点上配置防火墙,以保护 JSON RPC 端口和私钥的安全。在设置防火墙时,请注意以下事项。
- 除可信来源外,应关闭 8545 端口(或 8000-9000 端口),因为这是 JSON RPC 端口,可让管理员访问该节点。
- 应保持 TCP 端口 30303(或 30300-30400)处于开放状态,以便其他节点能够与您的节点建立连接。
- 应保持 UDP 端口 30303(或 30300-30400)处于开放状态,以便其他节点能够找到您的节点。
运行 Nethermind 节点
在了解如何运行 Nethermind 节点之前,让我们先来了解一下 Nethermind 提供的三种同步模式。
快速同步
快速同步是 Nethermindmode 默认且最常用的同步mode ;快速同步完成后,您即可向节点发起 getBalance 等基本调用。快速同步将下载区块链的最新状态、区块头,以及可选的区块体和收据。
光束同步
Beam 同步与快速同步类似,但使用 Beam 同步时,您可以在客户端启动后的几分钟内就开始查询区块链。不过,如果不完全了解mode 。您可以在此处进一步了解 Beam 同步。
注:虽然不建议这样做,因为许多开发者的成功率并不高。
存档同步
存档同步是最慢且资源消耗最大的同步方式,但这种同步能直接从创世区块获取区块链的历史数据和状态。根据I/O速度的不同Mainnet存档同步可能需要数周时间才能完成。
现在让我们来看看基于操作系统的 Nethermind 安装过程。
Linux
您可以从Nethermind 的下载页面、GitHub 发布页面下载该软件包,或者使用 wget 下载。
$ wget https://github.com/NethermindEth/nethermind/releases/download/1.10.72/nethermind-linux-amd64-1.10.72-e63bcb9-20210524.zip
然后下载依赖项。
$ sudo apt-get update && sudo apt-get install libsnappy-dev libc6-dev libc6 unzip -y
现在将该包解压到新文件夹“nethermind”中。
$ unzip nethermind-linux-amd64-1.10.72-e63bcb9-20210524.zip -d nethermind
注意:根据包的版本不同,包名和 GitHub 链接可能会有所不同。
现在请进入 nethermind 文件夹。
$ cd nethermind
运行 ./Nethermind.Launcher,然后从选项中选择Ethereum 。
$ ./Nethermind.Launcher

现在请选择您希望节点运行的网络(本例中为 Ropsten)。

选择同步类型(本例中为“归档”)。

现在系统会提示您是否需要支持 JSON RPC,如果需要,请输入 Y。

选择“是”后,您还可以设置自定义的 JSON RPC IP 地址

现在系统会提示您注册 Ethstats,您可以跳过此步骤;如果您想注册,则可以输入所需信息。
现在该节点将开始同步,界面应该会像这样。

macOS
请从 Nethermind的下载页面或GitHub 发布页面下载 Darwin 软件包。
现在使用Homebrew 为 Mac 安装依赖项。
$ brew install gmp snappy lz4 zstd
解压下载的软件包,并运行 `Nethermind.Launcher`。然后,您可以按照之前在 Linux 系统中介绍的相同配置步骤进行操作。
Windows
对于 Windows 系统,请从 Nethermind的下载页面或GitHub 发布页面下载 Windows 版本的软件包。
解压该包并运行 `Nethermind.Launcher.exe`;后续的配置步骤与我们在 Linux 中看到的相同。
您可以在此处了解有关受支持的 JSON RPC 模块的更多信息。
现在,让我们来看看如何使用自定义配置运行我们的节点。为此,在 Linux/macOS 系统上请使用 ./Nethermind.Runner 运行节点,在 Windows 系统上请使用 Nethermind.Runner 运行节点。
- 要获取所有配置选项的列表
$ ./Nethermind.Runner --help
- 将所有数据节点进程存储在自定义目录中。
$ ./Nethermind.Runner --datadir <path>
- 配置 Nethermind 数据库文件夹的路径。
$ ./Nethermind.Runner --baseDbPath <path>
- 要更改日志级别,可选选项包括:DEBUG、TRACE、INFO、WARN、ERROR。
$ ./Nethermind.Runner --log <option>
- 更改配置文件的源目录。
$ ./Nethermind.Runner --configsDirectory <path>
- 用于确定应使用哪个配置文件。
$ ./Nethermind.Runner --config <filename>
结论
至此,我们已经了解了如何启动自己的 Nethermind 节点。您可以访问其官方文档网站了解更多相关信息。此外,还可以了解如何启动自己的OpenEthereum(Parity)和Geth节点。
订阅我们的新闻通讯,获取更多关于Ethereum的文章和指南。如果您有任何反馈,欢迎通过Twitter 联系我们。您还可以随时在我们的Discord社区服务器上与我们交流,那里聚集了您能遇到的最酷的开发者们 :)
