以太坊執行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都會發現塊在不停的增高。以太坊

總結

此問題網上的資料幾乎爲零,只有官網的一個簡單的命令說明,反而是有不少針對此問題的提問,卻沒有一個正確的答案。此文提到的解決方案估計少有人注意到。本人花費大量的時間查閱嘗試才找到答案,若是對你有幫助,歡迎轉發,關注。感謝支持!配置

相關文章
相關標籤/搜索