错误:检索到的哈希链无效

时间:2017-09-20 11:36:20

标签: ethereum

每当我尝试在命令行上运行geth时,似乎无法与区块链同步。我不断收到这些警告(这是在testnet上运行的)。

geth --testnet --rpc --rpcaddr "localhost" --rpccorsdomain "*" --rpcapi="db,eth,net,web3,personal,staker,net,txpool,shh " --rpcport 8545

1 个答案:

答案 0 :(得分:0)

我刚刚退出命令提示符,并重新启动了geth upgradeb进程,并且它可以正常工作。

另一种解决方案是使用debug.setHead command将本地链的当前首部设置为几个块。对于所有签署者节点,将链倒回有故障的快照块(时期事务)。

赞:

debug.setHead("0x124F80") // (1200000 th block)

根据@karalabe在封闭的issue上的回答:

一个Geth版本(v1.8.14 / v1.8.15)中存在一个错误,该错误已被违反 Clique共识规范,导致一些签名者在创建区块时 他们不被允许(时代过渡)。所有以前的和 Geth的后续版本(除了有缺陷的版本) 拒绝了这些块,因此为什么您无法将新节点同步到您的 已经开采的链条。

但是,节点在更新时不会重新验证块,因此即使 尽管您更新了签名者,但他们忘记了以下事实: 他们的链中已经有一个故障块。当您重新缠绕链条时, 签名者必须重新排除故障部分,以纠正问题。

只要您不使用,就绝不会再发生这种情况 Geth的错误版本。等于或高于v1.8.16的任何版本 应该工作正常。