一、ETH客户端对配置的要求?

    ETH归档节点对网络、cpu并没有非常高的要求,主要是在存储上有要求,使用 Geth、Nethermind客户端同步归档节点需要12T以上磁盘空间,而Erigon客户端用一块4T的硬盘就可以了。黑瞎子目前是用的凯侠CD6 8T的固态硬盘,如果对性能不做要求使用机械硬盘也是可以的,就是同步时间会慢很多,可能需要十几天时间才能完成归档节点的搭建。

    黑瞎子目前使用过2台配置不同的机器都运行过ETH归档节点,均无问题。机器配置如下,各位币有可以作个参考

    主用机

  •     主板        Z790ProArt

  •     CPU        13900K

  •     内存        128G 海力士 DDR5

  •     系统硬盘 PM9A1 1T

  •     存储硬盘 凯侠CD6 7.68T

  •     备份硬盘 希捷 8T机械硬盘

    备用机

  •     主板        影驰B450M

  •     CPU        AMD 3600

  •     内存        32G 威刚 DDR4

  •     系统硬盘 三星870evo 250G

  •     存储硬盘 希捷 8T机械硬盘

二、为什么要用VMware来搭建?

    主因是前段时间天气太热,黑瞎子的I9主机长期24小时不停机运作,又忘记开空调,导致热炸鸡玻璃碎了一地。因为erigon客户端和teku客户端是会把cpu核心数用满的。不管是使用13900k还是amd 3600,都会把cpu占满,发热和功耗都非常恐怖。

根据黑瞎子的使用经验来看,13900k和amd 3600两者同步速度其实没有太大的差别,只要用了固态硬盘都不会落后太多区块,网速好时基本上只落后几个区块。

    所以使用虚拟机能省电费,还能控制发热,同时vmWare的虚拟机文件也可以快速的迁移和复制,在erigon、teku客户端升级调试时也比较方便,安全性也有保证,如果被黑了也只是虚拟机被黑不会涉及一台主机都被黑。

    总结下来就是:安全、省心省力,还节能。

三、搭建流程概览

1.创建一个Ubuntu虚拟机,瞎哥用的是Ubuntu 22.04版本,也尝试过centos,centos上的默认软件太老了,对PC主板兼容性也不太好,不推荐。

2.挂载物理硬盘

3.下载安装ETH执行客户端erigon

4.执行erigon客户端同步区块数据

5.下载安装ETH共识客户端teku

6.执行teku客户端同步eth2.0以后的区块数据

四、搭建流程详细记录

搭建流程如下

1.创建一个Ubuntu虚拟机,这个想必大家都会了,省略。。

2.挂载物理硬盘

    2.1 在虚拟机设置里点添加硬盘

2.2 如果是机械硬盘或者sata固态就选 SATA、m2的ssd就选 NVME,

下一步选使用物理硬盘,完成后就可以开机了

2.3 开机后挂载硬盘,相关操作命令如下

// 查看机器可用的硬盘

fdisk -l

// 创建一个硬盘挂载目录

mkdir /mnt/data

// 挂载硬盘,注意如果是新硬盘,则需要格式化成ext4格式(mkfs -t ext4 /dev/nvme0n2)

sudo mount -t ext4 /dev/nvme0n2 /mnt/data

有条件可以设置成开机自动挂载

3.下载安装ETH执行客户端erigon

3.1 创建一个目录存放erigon客户端,黑瞎子喜欢放在/home/wwwroot目录下

mkdir -p /home/wwwroot/erigon

cd /hom/wwwroot/erigon

3.2 下载erigon客户端源代码,并进行编译,注意这里需要安装golang环境、gcc和g++

3.3 编译源码,生成erigon客户端,这里耗时会有点就,要下载很多依赖包,如果中途有报错可以多尝试几次

编译完后大概是这个样子

3.4 运行erigon客户端,开始同步数据,大概要下载320G的数据包,下载下来后还会进行解压和数据还原,一共有15阶段,15个阶段全部完成eth归档节点就搭建好了

./build/bin/erigon --datadir=/mnt/data/erigon

客户端持续运行中

总结

进行到上面的步骤只要耐心等待就可以完成搭建eth节点的一半操作了,等erigon客户端数据同步到ETH2.0附近的时候,就需要安装teku共识客户端同步ETH2.0以后的数据,同步速度这一块黑瞎子低配机器在使用机械硬盘的情况下中途陆陆续续花了大概12天时间左右,使用高配机器则在1星期时间左右。

PS: 安装teku客户端文章将会在后面推出,有兴趣的朋友可以自己开始搭建啦。