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,如需轉載請聯系原作者。