盖斯PoA网络在经过500万次封锁后陷入停滞

时间:2019-01-08 00:30:50

标签: ethereum go-ethereum

系统信息

我当前的版本是:

Geth Version: 1.8.17-stable Git Commit: 8bbe72075e4e16442c4e28d999edee12e294329e Architecture: amd64 Protocol Versions: [63 62] Network Id: 1 Go Version: go1.10.1 Operating System: linux GOPATH= GOROOT=/usr/lib/go-1.10

预期行为

保持正常签名。

实际行为

我当时正在运行一个由6个密封器组成的以太坊专用网络。

每个封口机由以下人员运行:

``` 目录= / home / poa command = / bin / bash -c'geth --datadir sealer4 / --syncmode'full'--port 30393 --rpc --rpcaddr'localhost'--rpcport 8600 --rpcapi ='net,web3,eth'- -networkid 30 --gasprice'1'-解锁'someaddress'--password sealer4 / password.txt --mine'

```

区块链运行了大约1-2个月。

今天,我发现所有节点都出现了问题。每个节点都发出消息“最近签名,必须等待其他人签名”

我检查了日志,每隔1小时就发现此消息,没有更多信息,这些节点未进行挖掘:

  

重新生成的本地交易日记帐交易= 0个帐户= 0   重新生成的本地交易日记帐交易= 0个帐户= 0   重新生成的本地交易日记帐交易= 0个帐户= 0   重新生成的本地交易日记帐交易= 0个帐户= 0

使用6个封闭器测试相同的问题,我重新启动了每个节点,但现在我陷入了困境

  

INFO [01-07 | 18:17:30.645] Etherbase自动配置的地址= 0x5Bc69DC4dba04b6955aC94BbdF129C3ce2d20D34   INFO [01-07 | 18:17:30.645]提交新的采矿工作编号= 488677 sealhash = a506ec…8cb403叔叔= 0 txs = 0气体= 0费用= 0过去了= 133.76µs   INFO [01-07 | 18:17:30.645]最近签署,必须等待其他人

第一件事很奇怪,就是某些节点卡在488677上,而另一些节点卡在488676上,此问题的报告https://github.com/ethereum/go-ethereum/issues/16406行为与用户@lyhbarry相同

示例: 签名者1

image

签名者2

image

请注意,没有任何待处理的投票

所以,现在,我关闭并重新启动每个节点,发现:

  • 每个节点都与其他节点配对
  • 每个节点都是clique.getSigners()的一部分
  • 每个节点都在等待另一个节点签名...

INFO [01-07|18:41:56.134] Signed recently, must wait for others INFO [01-07|19:41:42.125] Regenerated local transaction journal transactions=0 accounts=0 INFO [01-07|18:41:56.134] Signed recently, must wait for others

因此,同步失败,但是我也可以再次开始签名,因为每个节点都在等待其他节点,这意味着网络没有用?

@tudyzhb在该问题上的评论提到:

  

请参阅v1.8.11的集团密封,我认为当发生转弯/转弯密封失效时,没有有效的机制可以重试密封。因此,我们的开发人员网络毫无用处。

出现此问题后,我看一下日志,每个签名者都有以下错误消息:

Synchronisation failed, dropping peer peer=7875a002affc775b err="retrieved hash chain is invalid"

INFO [01-02|16:42:10.902] Signed recently, must wait for others WARN [01-02|16:42:11.960] Synchronisation failed, dropping peer peer=7875a002affc775b err="retrieved hash chain is invalid" INFO [01-02|16:42:12.128] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed=540.282µs mgasps=0.000 number=488116 hash=269920…afd3c7 cache=5.99kB INFO [01-02|16:42:12.129] Commit new mining work number=488117 sealhash=f7b00c…787d5c uncles=2 txs=0 gas=0 fees=0 elapsed=307.314µs INFO [01-02|16:42:20.929] Successfully sealed new block number=488117 sealhash=f7b00c…787d5c hash=f17438…93ffe3 elapsed=8.800s INFO [01-02|16:42:20.929] mined potential block number=488117 hash=f17438…93ffe3 INFO [01-02|16:42:20.930] Commit new mining work number=488118 sealhash=b09b33…1526ba uncles=2 txs=0 gas=0 fees=0 elapsed=520.754µs INFO [01-02|16:42:20.930] Signed recently, must wait for others INFO [01-02|16:42:31.679] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed=2.253ms mgasps=0.000 number=488118 hash=763a32…a579f5 cache=5.99kB INFO [01-02|16:42:31.680] block reached canonical chain number=488111 hash=3d44dc…df0be5 INFO [01-02|16:42:31.680] Commit new mining work number=488119 sealhash=c8a5e7…db78a1 uncles=2 txs=0 gas=0 fees=0 elapsed=214.155µs INFO [01-02|16:42:31.680] Signed recently, must wait for others INFO [01-02|16:42:40.901] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed=808.903µs mgasps=0.000 number=488119 hash=accc3f…44bc4c cache=5.99kB INFO [01-02|16:42:40.901] Commit new mining work number=488120 sealhash=f73978…c03fa7 uncles=2 txs=0 gas=0 fees=0 elapsed=275.72µs INFO [01-02|16:42:40.901] Signed recently, must wait for others WARN [01-02|16:42:41.961] Synchronisation failed, dropping peer peer=7875a002affc775b err="retrieved hash chain is invalid"

我还看到了一些:

INFO [01-02|16:58:10.902] block lost number=488205 hash=1fb1c5…a41a42 有关哈希链的错误只是一个警告,因此该节点一直在挖掘,直到1月2日,然后我在6个节点中的每个节点上看到了

image

我一直在寻找关于此错误的很多问题,最相似的是我在此处发布的问题,但尚未解决。

workarrounds的大多数问题似乎是重新启动,但是在这种情况下,链似乎处于不一致状态,并且节点总是在等待其他节点

所以

    有什么想法吗? 我可以提供的任何日志?我只看到描述的错误和块丢失的警告,但是当节点停止挖掘时什么也没看到
  1. 此PR相关吗? https://github.com/ethereum/go-ethereum/pull/18072
  2. 也许与@karalabe对这个问题https://github.com/ethereum/go-ethereum/issues/16406的评论有关? 5从1.8.17升级到1.8.20是否可以解决这个问题?
  3. 在我看来,这似乎是一种竞争状况,因为我有2条链条,一条链条运行2个月,另一条链条运行3个月,这是第一次发生此错误

这是其他相关问题:

https://github.com/ethereum/go-ethereum/issues/16444(相同的问题,但我的快照中没有待处理的投票)

https://github.com/ethereum/go-ethereum/issues/14381#

https://github.com/ethereum/go-ethereum/issues/16825

https://github.com/ethereum/go-ethereum/issues/16406

0 个答案:

没有答案