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

Hedera测试网重置后交易Nonce不一致问题的解决方法

Hedera测试网重置后Nonce不一致问题的修复方案

问题根源

Hedera测试网重置时会彻底清空链上历史交易数据,因此eth_getTransactionCount(address, 'latest')返回的是重置后的初始Nonce(即0)。但部分RPC节点的pending交易池缓存未被完全清理,导致pending标签返回的仍是重置前使用过的Nonce值(比如你遇到的140)。MetaMask默认优先采用pending返回的Nonce构建交易,这会直接导致交易因Nonce不匹配失败。

快速修复步骤

1. 手动修正MetaMask的Nonce

  • 打开MetaMask,进入目标账户的「设置」→「高级」选项
  • 开启「自定义Nonce」功能
  • 将Nonce手动设置为0(或eth_getTransactionCount(address, 'latest')返回的数值)
  • 发送一笔小额测试交易后,关闭自定义Nonce,MetaMask会自动同步正确的Nonce

2. 切换至官方RPC节点

若使用第三方公共节点,直接替换为Hedera官方维护的测试网RPC节点——官方节点在测试网重置后会第一时间清理缓存,返回的Nonce数据准确可靠。

3. 自建节点的缓存清理操作

如果是自行运行Hedera EVM节点,执行以下命令清理缓存:

# 停止节点服务
sudo systemctl stop hedera-evm-node
# 删除pending交易池缓存目录
rm -rf /var/lib/hedera-evm-node/pending-tx-pool
# 重启节点服务
sudo systemctl start hedera-evm-node

验证方法

通过工具(如Postman、终端curl)发送以下JSON-RPC请求,确认返回值一致:

// 查询latest状态的Nonce
{"jsonrpc":"2.0","method":"eth_getTransactionCount","params":["你的账户地址","latest"],"id":1}
// 查询pending状态的Nonce
{"jsonrpc":"2.0","method":"eth_getTransactionCount","params":["你的账户地址","pending"],"id":2}

当两个请求返回的数值相同时,即可正常进行交易操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 01:59:59