Ethereum Goerli节点同步停滞问题排查与修复请求
Ethereum Goerli测试网同步停滞问题排查与解决
问题描述
部署了两个节点服务:
- Ethereum Goerli执行层(Geth)
- Teku共识层
Geth执行层日志
INFO [09-17|04:13:32.343] Imported new block headers count=0 elapsed=29.392ms number=7,382,818 hash=aa32c4..48c7cc age=1mo1w6h ignored=182 INFO [09-17|04:13:32.343] Legacy sync reached merge threshold number=7,382,819 hash=7c38fc..3fd3cd td=10,790,002 ttd=10,790,000 INFO [09-17|04:13:32.363] State sync in progress synced=90.24% state=30.90GiB accounts=39,032,106@2.93GiB slots=127,297,641@25.57GiB codes=334,075@2.40GiB eta=1h47m38.796s WARN [09-17|04:13:32.363] Local chain is post-merge, waiting for beacon client sync switch-over...
同步进度持续多日卡在90.24%,无进展。
Teku共识层日志
INFO - Syncing *** Target slot: 3907886, Head slot: 941050, Remaining slots: 2966836, Connected peers: 12 INFO - Syncing *** Target slot: 3907887, Head slot: 941050, Remaining slots: 2966837, Connected peers: 12 INFO - Syncing *** Target slot: 3907888, Head slot: 941050, Remaining slots: 2966838, Connected peers: 14 WARN - Endpoint http://localhost:8546 is INVALID | Still syncing Invalid remote response: -32601: the method engine_exchangeTransitionConfigurationV1 does not exist/is not available
服务配置
Geth执行层启动命令
geth --goerli --datadir="/sdb/ethereum/goerli/" --port="30304" --cache 4096 --http --http.addr="0.0.0.0" --http.port="8546" --http.vhosts="*" --http.corsdomain="*" --http.api="admin, debug, web3, eth, txpool, personal, clique, miner, net" --authrpc.jwtsecret=/tmp/jwtsecret --authrpc.vhosts="*" --authrpc.port=8553 --allow-insecure-unlock
Teku共识层启动命令
~/teku \ --data-path "/sdb/ethereum/teku" \ --network goerli \ --ee-endpoint http://localhost:8546 \ --ee-jwt-secret-file "/tmp/jwtsecret" \ --log-destination console \ --p2p-port=9001 \ --rest-api-enabled=true \ --p2p-discovery-bootnodes "enr:-Iq4QMCTfIMXnow27baRUb35Q8iiFHSIDBJh6hQM5Axohhf4b6Kr_cOCu0htQ5WvVqKvFgY28893DHAg8gnBAXsAVqmGAX53x8JggmlkgnY0gmlwhLKAlv6Jc2VjcDI1NmsxoQK6S-Cii_KmfFdUJL2TANL3ksaKUnNXvTCv1tLwXs0QgIN1ZHCCIyk"
解决方案
1. 修复Teku与Geth的连接端口错误
Teku配置中--ee-endpoint错误指向了Geth的普通HTTP端口(8546),但合并后共识层必须连接到执行层的authrpc专用端口(Geth配置中的--authrpc.port=8553)。普通HTTP端口不支持engine_exchangeTransitionConfigurationV1这类合并引擎API方法,这是导致报错和同步停滞的核心原因。
修改Teku启动命令中的--ee-endpoint参数:
--ee-endpoint http://localhost:8553
2. 重启服务并验证同步状态
- 依次停止Teku和Geth服务
- 按原配置重启Geth,等待日志显示状态稳定
- 启动修改后的Teku服务,观察日志是否消除
engine_exchangeTransitionConfigurationV1错误 - 监控Geth日志,确认同步进度是否脱离90.24%的停滞状态
3. 额外优化建议
- 提升Geth缓存:当前
--cache=4096(4GB),若服务器内存充足(建议16GB以上),可调整为--cache=8192(8GB),加快状态同步速度 - 检查磁盘性能:确保
/sdb挂载的是SSD存储,避免磁盘IO瓶颈拖慢同步 - 验证Teku节点连接:若Peers数量过少,可替换为Goerli共识层官方最新bootnodes,提升节点发现效率
内容的提问来源于stack exchange,提问作者Denis
相关产品推荐
相关产品推荐

