用树莓派4B部署运行以太坊PoS验证节点Validator
2022-12-23 本文已影响0人
lfckop
写在前面
本文介绍了用树莓派4B在普通家用网络环境下部署运行以太坊PoS质押验证节点Validator的一些经验和注意事项。
一点背景
2022年北京时间9月15日14时,以太坊合并完成,主网与PoS共识层信标链(Beacon链)结合、将此前PoW工作量证明机制转变为PoS权益证明机制,宣布以太坊正式进入2.0时代。此举意味着,以太坊将告别大规模矿机挖矿时代,持有者通过质押以太坊代币(ETH)即可挖矿,质押门槛为32个ETH。
对以太坊支持者或爱好者来说,最好的支持方式是单独搭建跑一个自己的验证节点,这对于该链的去中心化和抗审查是非常有利的,也是官方最推崇的一种方式,这种一般称为“Solo Staking”。但随之而来的是,需要搭建者有一定的Linux命令行技术基础和持有一定量的ETH币。实际上想要运行一个Validator有很多种方式,你可以部署运行在云服务器上,也可以自己自行购买硬件放在家里运行(本文介绍的方式)。
其它的更多的质押选择可以去官网看,方式和选择有很多种,下面也会链接一些资料,此处不再赘述。
硬件、系统、客户端与先决条件
这里说下笔者用的硬件配置和客户端选择。
- 硬件1:树莓派4B,配置为4core, 8GB
- 硬件2:三星(SAMSUNG)2TB SSD固态硬盘 SATA3.0接口 870 EVO(MZ-77E2T0B)
- 硬件3:USB3.0转SATA转换器,用于连接SSD与树莓派;以及一个树莓派小风扇
- 操作系统:Ubuntu Server 22.04 LTS
- 以太坊客户端组合:Geth + Nimbus
- 用于PoS质押的32个ETH
一些说明
- 关于硬件:这套硬件配置下来约3100元(树莓派1200 + SSD硬件1900,现在看SSD看已降价至1600),选择树莓派是为了尽量控制硬件成本(且其非常小巧),其缺点是4核8G的硬件配置对运行以太坊全节点来说的确是性能受限的,且没有为未来的以太坊升级留有一定的性能空间,而且还需要对其做一些调优。如有可能的话,根据大多数人的实践经验,还是强烈推荐购买一台Intel NUC小型台式机,建议配置是8核16G内存。另外,以太坊节点对硬盘读写速度要求非常高,一个质量达标的SSD硬盘非常非常重要(需要测速验证)。
- 关于成本:用树莓派的好处是硬件成本低,且功耗(约10W)非常低,这样放在家里跑的话其电费和网络费用的成本基本可以忽略不计。若为了节省成本买一台二手Intel NUC机器也是可以的。在这里要说下,把节点放在云服务器上的优缺点都非常明显,优点是硬件和网络环境有保证更加稳定,缺点是它的cpu+mem硬件价格、带宽&流量费用、和SSD硬盘大容量费用,让它的总价格高到无法接受,肯定是亏本的。经常买阿里云服务器的应该都有经验。但看国外也有网友跑在云上的,但貌似欧洲那边的云服务明显比国内便宜非常之多。
- 关于收益:当前POS质押的平均年化收益约4%(币本位),也就是一年收益约1.2ETH。如果你的运气好能多proposal几个区块Block,并且配置上MEV的话,你的收益能达约6%左右。
- 关于质押风险:如果节点运行不稳定导致掉线或性能不够导致频繁Miss Attestation时,你会被惩罚,它是实时扣减的。比如说你掉线一天,那会被扣掉一天的收益,相当于两天没有正常工作的收益。这个并不那么可怕,一般经过跑测试网验证的话不会有啥问题,惩罚数量也是完全可接受的。
一点经验
以下经验主要基于用树莓派来搭建节点,但很多经验是通用的,并不局限于某个特定硬件。
- 用SSD硬盘来启动系统,也就是说系统盘是运行在SSD上的而不是普通硬盘或MicroSD卡,以提升系统运行速度。
- 给系统加个Swap空间,以避免内存受限(但使用swap会降低一定性能),例如8GB或16GB。
- 为你的网络申请公网IP,目的是让其它Peer节点能连接你,从而让你能连接更多的节点。这个IP不需要是静态的,动态的也没问题,但一定要求是公网的。通常给你的网络服务提供商ISP打个电话就可以申请搞定了。
- 为你的家庭网络设置端口转发,让你的Geth和Nimbus客户端能连接更多的Peer节点,从而提升运行性能和可靠性。如果你不是公网IP,那端口转发也就没必要设置了。
- 由于树莓派的硬件性能是受限的,根据笔者及reddit网友的经验,必须使用Geth+Nimbus的客户端组合,不然你的客户端运行速度跟不上以太链的更新速度,从而根本没法跑Validator。因为Nimbus客户端是为普通消费硬件而设计的,适合运行在性能受限的硬件上。当然,若你的硬件性能没问题,客户端组合的选择是不受限的。
- 上以太坊主网之前,强烈建议先用goerli测试网跑一遍来熟悉整个部署和质押流程,并且测试你的硬件性能和网络配置(网速和端口转发等)都是完全没问题的,这个非常重要。
- 可选项:为你的树莓派CPU调高运行频率,可以稍微调一点,不作强求,缺点是可能导致CPU运行时故障或者温度过高。
- 测试你的SSD读写速度,防止硬盘性能不达标,或者数据连接线有问题。具体可直接参考示例:https://docs.rocketpool.net/guides/node/local/prepare-pi.html#testing-the-ssd-s-performance
- 总结起来就是,运行以太坊全节点Validator对硬件性能有较高的要求,主要是cpu、内存和SSD硬盘,且要求你的网络配置能连接较多的对等节点。如果有其中任一环节出现问题,都可能导致你的节点无法同步完区块数据,或者无法跟上链头的更新速度,或者Validator频繁Miss Attestation(会受罚),或者Inclusion Distance较大(最优是0)。
核心参考资料
- Ethereum:https://ethereum.org/en/developers/docs/nodes-and-clients/run-a-node/
- Ethereum on ARM documentation:https://ethereum-on-arm-documentation.readthedocs.io/en/latest/index.html
- Nimbus:https://nimbus.guide/quick-start.html
- Prysm:https://docs.prylabs.network/docs/install/install-with-script
- Reddit:https://www.reddit.com/r/ethstaker/
- Discord:https://discord.com/channels/694822223575384095/925301915644993626
- Mainnet Staking Launchpad:https://launchpad.ethereum.org/en/overview
- Testnet Staking Launchpad:https://goerli.launchpad.ethstaker.cc/en/select-client
- Beaconchain:https://beaconcha.in/
- https://www.makeuseof.com/how-to-boot-raspberry-pi-ssd-permanent-storage/
- https://docs.rocketpool.net/guides/node/local/prepare-pi.html
- https://github.com/eth-educators/ethstaker-guides/blob/main/MEV-relay-list.md
- https://www.reddit.com/r/ethstaker/comments/xgxmqv/after_merge_is_anyone_staking_succesfully_with_a/
- https://eth-docker.net/
- https://luckystaker.com/home
- https://www.reddit.com/r/ethstaker/comments/xto0dm/understanding_missed_attestations_understanding/
写在后面
就这么个低配廉价小玩意却能比较高效地运行以太坊质押验证节点(俗称“挖矿”),还是让人感到惊奇惊讶和惊喜!
欢迎感兴趣的各位交流。
索引关键字
以太坊,区块链,质押,验证,节点,挖矿,树莓派,ETH,Ethereum,PoS,Solo Staking,Validator,Node,Geth,Nimbus,Raspberry PI