以太坊执行miner.start返回null终极解决方案

前文

在看此篇文章以前也建议你先浏览一下以前的文章: 
《以太坊执行miner.start返回null》php

以前的那篇文章也是搜集汇总了网上的各类解决方案,但在实践的过程当中发现并不能有效的解决问题,只有发送交易才会自动挖矿。所以,针对此问题又进行了大量资料的阅读查阅,终于找到缘由和解决方案。spa

缘由及解决方案

出现此问题的缘由在于geth版本更新以后,–dev模式下新增了一个参数项:日志

--dev               Ephemeral proof-of-authority network with a pre-funded developer account, mining enabled
--dev.period value  Block period to use in developer mode (0 = mine only if transaction pending) (default: 0)
  • 1
  • 2

咱们先看一下上面的两个参数,–dev是咱们经常使用的参数,以前版本中咱们只用使用–dev而后执行miner.start()就能够挖矿,可是在后面的版本中,当咱们会发现只有发送交易了才会挖一个块。code

http://rc.haian.gov.cn/company/company-show.php?id=1588232
http://rc.haian.gov.cn/company/company-show.php?id=1588233
http://rc.haian.gov.cn/company/company-show.php?id=1588234
http://rc.haian.gov.cn/company/company-show.php?id=1588235
http://rc.haian.gov.cn/company/company-show.php?id=1588236get

引发此问题的缘由就是新增了–dev.period value配置项。此配置默认值为0,也就是说只有有pending中的交易才会挖矿。it

明白了这个参数的含义以后,解决问题就很简答了,以前的–dev参数依旧使用,而后再在后面添加–dev.period 1,注意,参数值为1,不是默认的0。io

再从新启动节点,而后执行挖矿,先无论返回是不是null,执行以后,不管查看日志或执行eth.blockNumber都会发现块在不停的增高。以太坊

总结

此问题网上的资料几乎为零,只有官网的一个简单的命令说明,反而是有不少针对此问题的提问,却没有一个正确的答案。此文提到的解决方案估计少有人注意到。本人花费大量的时间查阅尝试才找到答案,若是对你有帮助,欢迎转发,关注。感谢支持!配置

相关文章
相关标签/搜索