ETH节点各个服务应用的作用
在以太坊(Ethereum, ETH)节点部署过程中,涉及多个服务和应用程序,它们各自承担不同的职责,配合完成整个区块链节点的运行、共识、数据同步、交易处理、账户管理等功能。
以下是部署 ETH 节点时常见的服务组件及其作用:
ETH节点各个服务工作原理示意图
+--------------------+| 用户 / DApp / API |+--------------------+|+------------------↓------------------+| 执行客户端 || (Geth / Nethermind / Erigon) |+------------------↑------------------+|JWT 身份认证 + Engine API 通信↓+------------------↓------------------+| 共识客户端 || (Prysm / Lighthouse / Teku) |+------------------↑------------------+|+------------------↓------------------+| 验证者客户端(可选) |+-------------------------------------+
执行客户端(Execution Client)
作用:
负责处理以太坊网络中的交易、部署智能合约、维护账户状态和区块链数据库。
提供 JSON-RPC 接口供用户和应用交互。
常见实现:
- Geth(Go Ethereum)
- Nethermind
- Besu
- Erigon
示例服务参数:
geth --http --http.api web3,eth,net,txpool
共识客户端(Consensus Client)
从合并(The Merge)之后,以太坊切换为 PoS 共识,执行与验证区块的职责从执行层转移至共识层。
管理信标链(Beacon Chain)、验证者投票、最终性共识等。
常见实现:
- Prysm
- Lighthouse
- Teku
- Nimbus
启动示例:
./prysm.sh beacon-chain --datadir=/ethdata/consensus
验证者客户端(Validator Client)
作用:
代表你所持有的 ETH 验证者角色,进行出块和签名。
与共识客户端配合参与共识协议。
重要说明:
需要导入验证者密钥或使用远程验证者托管服务。
可能连接多个验证者密钥。
JWT 身份认证(JWT Auth)
作用:
连接执行层与共识层时需要使用同一 jwt.hex 文件作为身份认证令牌。
保证两者之间的通信安全。
文件路径示例:
--authrpc.jwtsecret /ethdata/ethereum/consensus/prysm/jwt.hex
MEV-Boost / Relay 服务(可选)
作用:
提供中继服务,用于 MEV(最大化可提取价值)相关操作,构建最有利可图的区块。
由验证者启用,连接外部中继服务。
Prometheus/Grafana(监控服务)
作用:
收集和展示节点运行状态,包括出块、延迟、同步状态、内存等。
支持各客户端暴露的 /metrics 接口。
数据目录(Data Directory)
作用:
所有客户端会将区块数据、状态树、验证者密钥等信息保存在指定的 --datadir 目录下。
可做快照备份、迁移节点时使用。
HTTP/WebSocket RPC 接口
作用:
向外提供访问节点数据的接口。
开发 DApp 或接入前端钱包(如 MetaMask)需要访问这些接口。
--http --http.api web3,eth,net,personal
--ws --ws.api web3,eth,net