为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
区块链

在前面的一篇文章中我们讲解了以太坊执行miner.start返回null的解决方案,是搜罗了网上各种解决方案的汇总。但并不能有效的解决问题。此篇文章有针对性的对此问题进行解决。

前文

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

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

原因及解决方案

出现此问题的原因在于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)12

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

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

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

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

总结

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

原文出处:https://blog.csdn.net/wo541075754/article/details/79260040

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消