You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Geth Clique私有链交易滞留在pending状态未广播问题问询

Geth Clique私有链交易广播与区块同步异常问题

部署架构

  • 三台独立虚拟机通过Docker部署基于Clique共识的Geth私有链,包含三类节点:
    • 矿工节点:负责区块生成
    • RPC节点:对外接收RPC请求,与矿工节点无直接网络连接
    • 引导节点:作为中转节点,实现矿工节点与RPC节点的网络连通

问题现象

  • 提交的交易随机进入pending状态且无法在链内广播,重启Geth节点无法解决;gas与nonce配置均无异常
  • 手动执行admin.addPeer()命令让RPC节点与矿工节点直连后,交易可正常广播并被矿工处理,问题立即消失
  • 区块可在链内完成同步,但RPC节点偶尔出现同步滞后(例如矿工已出块至高度100,RPC节点仅同步至80且eth.syncing返回false),滞后的区块最终能自动追上
  • 节点txpool状态:RPC节点存在pending交易,矿工节点与引导节点txpool为空

系统信息

  • Geth版本:Geth/v1.11.6
  • 操作系统:Ubuntu 22.04

节点启动命令

矿工节点

--nodekey=miner.key --bootnodes="enode://${BOOTNODE_KEY}@${BOOTNODE_IP}:${BOOTNODE_PORT}" --syncmode=full --gcmode=archive --miner.etherbase=${ADDR} --mine --miner.threads=1 --networkid=${NETWORK_ID} --unlock=${ADDR} --password=password --allow-insecure-unlock --verbosity=5

RPC节点

--nodekey=rpc.key --bootnodes="enode://${BOOTNODE_KEY}@${BOOTNODE_IP}:${BOOTNODE_PORT}" --syncmode=full --gcmode=archive --networkid=${NETWORK_ID} --http --http.vhosts="" --http.addr="0.0.0.0" --http.port=8545 --http.corsdomain=""

问题关联情况

该问题已在Geth官方代码仓库提交相关issue,且与另一已有issue的评论描述的问题场景高度相似

期望目标

实现交易在链内正常广播,并被矿工节点成功处理


内容的提问来源于stack exchange,提问作者abcuse1111

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 10:30:22