Windows10 PowerShell执行Geth命令遇“retrieved hash chain is invalid”错误求助
解决Geth同步失败(retrieved hash chain is invalid)的问题
针对你在Windows 10 PowerShell中运行geth upgradedb时遇到的同步错误,这里有几个经过验证的修复方案:
1. 清除损坏的本地节点数据
本地链数据损坏是触发这个错误的最常见原因,你可以重置节点数据后重新同步:
- 先关闭所有Geth相关进程(打开任务管理器,找到
geth.exe并结束运行) - 打开文件资源管理器,导航到Geth的默认数据目录:
C:\Users\pidaftar\AppData\Roaming\Ethereum - 注意:如果
keystore文件夹里有你的钱包地址,绝对不要删除它! 删除该目录下除geth和keystore之外的所有文件夹,然后清空geth文件夹里的内容 - 重新打开PowerShell,运行
geth --syncmode fast(快速同步模式比全节点同步效率高很多)
2. 指定可靠的引导节点
偶尔会因为连接到数据异常的对等节点导致同步失败,你可以手动指定官方可信的引导节点:
- 运行Geth时添加
--bootnodes参数,示例命令如下:
geth --syncmode fast --bootnodes "enode://d860a01f9722d78051619d1e2351aba3f43f943f6f00718d1b9baa4101932a1f5011f16bb2b1bb35db20d6fe28fa0bf09636d26a87d31de9ec6203eeedb1f666@18.138.108.67:30303"
这个是以太坊官方公开的引导节点之一,你可以多找几个同类可靠节点添加到参数中。
3. 检查并更新Geth版本
旧版本的Geth可能存在同步兼容性问题:
- 在PowerShell中运行
geth version查看当前版本 - 下载最新稳定版的Geth(直接从官方渠道获取,避免第三方来源)
- 安装完成后重新尝试同步操作
4. 临时调整防火墙/杀毒软件设置
Windows Defender或第三方杀毒软件有时会拦截Geth的P2P连接,导致同步中断:
- 暂时禁用防火墙的实时保护功能(操作完成后记得重新开启)
- 重新运行
geth --syncmode fast尝试同步
你提供的终端日志片段:
PS C:\Users\pidaftar\Desktop\Etherum> geth upgradedb INFO [02-19|02:43:20] Maximum peer count ETH=25 LES=0 total=25 INFO [02-19|02:43:20] Starting peer-to-peer node i... WARN [02-19|02:44:45] Synchronisation failed, dropping peer peer=5dac192c404506a0 err="retrieved hash chain is invalid"
内容的提问来源于stack exchange,提问作者piyush daftary
相关产品推荐
相关产品推荐

