天天看點

一邊轉載一邊學習區塊鍊  以太坊執行miner.start傳回null

      geth的全稱是go-ethereum,是一個以太坊用戶端,用go語言編寫,應該是目前最常用的用戶端。當然以太坊用戶端還有用C++,Ruby,Python,Java等其他多種語言編寫的,不同類型的用戶端是為了滿足不同的需求場景。今天我們主要來介紹geth(發音同guess )的使用。

(1)打開終端Terminal,執行以下指令,以開發方式啟動geth

geth  --datadir “~/ethdev” --dev 

這會在目前根目錄下建立一個ethdev檔案夾,當然這個檔案夾的名稱你可以自己取,我們暫且不管這個檔案夾是幹嘛用的,後面會進行介紹   

(2)geth啟動成功後,重新開一個終端,執行以下指令,打開geth控制台:

geth --dev console 2>>file_to_log_output

該指令會打開geth控制台,同時在目錄下生成一個叫做file_to_log_output的日志檔案,等下我們會來檢視這個日志檔案。

(3)檢視目前有哪些賬戶

eth.accounts

(4)建立一個新賬戶

personal.newAccount(‘密碼')

我們這裡建立兩個賬戶。再使用eth.accounts檢視賬戶:

(5)可以把賬戶指派給某一個變量,同時查詢賬戶中的餘額

(6)上面提到過日志檔案,我們再重開一個終端,我們使用以下指令打開日志:

tail -f file_to_log_output

(7)在geth控制台中啟動挖礦:miner.start()

以太坊執行miner.start傳回null

是否設定miner位址

啟動節點挖礦之前,需要檢視目前節點中是否已經存在賬号,可執行以下指令,檢視目前節點下面是否有賬号存在。

>personal.listAccounts

["0xc040cbd8a189d36f580fa83c2ffe3a26fb3e6a7e","0xe0d1de6c934049fe4847b64becff5885bdb83fa4"]

當确認賬戶已經存在時,可以設定Etherbase。先檢視以下coinbase賬戶:

>eth.coinbase

"0xc040cbd8a189d36f580fa83c2ffe3a26fb3e6a7e"

通過上面的指令,可以看到coinbase的賬戶位址,也就是上面檢視位址查到第一個位址。

執行設定miner位址:

>miner.setEtherbase(eth.coinbase)

true

也可以執行執行以下指令進行設定:

>miner.setEtherbase(eth.accounts[0])

然後,可以再執行挖礦指令,檢視是否問題是否解決。

節點誤報

另外一種情況就是其實miner.start()指令已經執行成功,隻不過節點傳回null。如果是dev模式,可以使用eth.blockNumber檢視一下區塊高度是否增加。

節點版本問題

本人安裝的geth-1.7.3版本的節點,在dev環境下驗證發現,當執行miner.start()時,傳回null。但其實miner已經執行,隻不過它在等待你發送交易之後才會生成新的區塊。也就是說執行了miner.start(),它一直在等待,這是發送一筆交易,再檢視區塊高度發現已經增加一塊。

  • (8)停止挖礦

miner.stop()

(9)此時我們再來檢視兩個賬戶的賬戶餘額

由此可見,挖礦所得的以太币預設是傳入第一個賬戶的

(10)user1向user2轉移以太币

eth.sendTransaction({from: user1,to: user2,value: web3.toWei(3,"ether")})

原文釋出時間為:2017年12月16日

本文作者:水野與小太郎

本文來源:

CSDN

,如需轉載請聯系原作者。

繼續閱讀