文章链接
前言
因为需要开发操作solidity智能合约的程序,总不能拿真金白银的eth去做测试吧,所以建立一个测试网络的还是非常有必要的。 如大家所了解的,以太坊有多种客户端,Geth/OpenEthereum/Nethermind/Besu/Erigon. 每个客户端虽然都支持主网以及Linux/MacOS/Windows,但他们支持的测试网络有些不一样。
客户端 | 开发语言 | 支持网络 | 同步模式 |
---|
Geth | Go | Mainnet, G?rli, Rinkeby, Ropsten | Fast, Full | OpenEthereum | Rust | Mainnet, Kovan, Ropsten, and more | Warp, Full | Nethermind | C#, .NET | Mainnet, G?rli, Ropsten, Rinkeby, and more | Fast, Full | Besu | Java | Mainnet, Rinkeby, Ropsten, and G?rli | Fast, Full | Erigon | Go | Mainnet, G?rli, Rinkeby, Ropsten | Fast, Full |
本文以Geth/Rinkeby为例进行说明。
硬件需求:
- 最少2核cpu 8G内存。推荐4核16G
- SSD 主网快速/快照模式下>500G(geth)。如果是机械硬盘,请再增加4G以上内存。
- 外存需求
Client | Disk size (fast sync) | Disk size (full archive) |
---|
Geth | 400GB+ | 6TB+ | OpenEthereum | 280GB+ | 6TB+ | Nethermind | 200GB+ | 5TB+ | Besu | 750GB+ | 5TB+ | Erigon | N/A | 1TB+ |
基础网络要求:
最低带宽8Mbit/s,推荐25+Mbit/s 跟同步主网根本找不到节点相比, 目前时间节点Rinkeby居然可以正常同步。不用租赁云服务器,真是省了一大笔银子。
安装
由于主网和测试网基本是公用客户端的,所以安装方式参考主网客户端安装方式。 目前所有客户端都支持主流的这些操作系统:Linux, MacOS, Windows. 选择自己喜欢的。 geth安装说明:请参考官网安装说明。官网下载安装,官网命令行安装指南 Installing Geth
要点:
- 保证足够的磁盘空间。 主网快速/快照模式下>500G。推荐高速SSD存储。
- 最少2核cpu 8G内存。推荐4核16G
- 操作系统更新到最新版
- 系统有正确的时间和日期
- 保证进出的TCP/UDP端口30303端口畅通,不被防火墙屏蔽掉。
运行
由于geth默认将数据目录放在OS给的用户目录下,一般建议指定自己的有足够磁盘空间的目录。 没有特别要求建议用fast模式。这个模式下快到最新区块的时候会自动转成full模式,会下载及验证所有新数据。
$ geth --rinkeby --syncmode "fast" --datadir yourdatadir
nohup geth --rinkeby --datadir yourdatadir >geth.log 2>&1 &
geth的主网模式(5Mbit/s网络下)snap模式同步需要2天,rinkeby测试网络5小时15分钟就完成了,占用磁盘空间103G,我的是200M电信带宽。主要是数据量比较小。
Geth的用法还可以参照官网Command-line Options 下面的语句可以进入geth控制台。
geth attach yourdatadir/geth.ipc
|