以太坊:解决私链节点连接 No data write error 的问题
在连接私链的节点的时候,出现了新节点无法同步原有节点的问题。信息大概是这样的:
WARN [01-23|11:44:44.057] Node data write error err="state node 4f42e5…b8507f failed with all peers (1 tries, 1 peers)"
这个问题发生的原因,简单来说,就是原有节点已经事先有过一些挖掘,但是挖掘的数量不多。
当一个新节点试图去连接这个原有的节点,它会尝试去获取head-128号区块,并且尝试去同步。
因为链的长度比较短,所以head-128是个负数,因此这个区块不存在,导致同步失败。
解决方法就是让原有节点继续去挖矿,挖到长度合适的时候就会开始同步了。
参考:https://github.com/ethereum/go-ethereum/pull/20545#issuecomment-584550027