1. 程式人生 > >以太坊學習(二)--geth入門命令和miner.start返回null的問題

以太坊學習(二)--geth入門命令和miner.start返回null的問題

geth --datadir "./ethdev" --nodiscover console 2>>geth.log  //geth 進入控制檯 --datadir 指定鏈的目錄 與公有鏈區分開進入命令列模式,其中引數–datadir 代表資料夾地址,–nodiscover 代表該鏈條不希望被其他節點發現,console >> geth.log 代表將控制檯輸出到檔案geth.log中去當然從命令列模式退出,也很簡單,只要打入exit, 即可退出>eth.accounts   //查詢賬戶 [] 這樣建立的鏈中沒有賬戶 personal.newAccount("123456")  //建立一個賬戶  引數為私鑰密碼  返回值為賬戶的公鑰eth.getBalance(user1)   //獲取賬戶的餘額    剛開始建立的賬戶餘額都為0
eth.blockNumber    //檢視區塊鏈數miner.start()   //開始挖礦miner.stop()    //停止挖礦
這裡執行  miner.start() 卻返回null 。並且eth.blockNumber 數沒有發生變化,因此斷定沒有挖礦。--dev Ephemeral proof-of-authority network with a pre-funded developer account, mining enabled--dev.period value Block periodtouseindeveloper mode (0= mine onlyiftransaction pending) (
default:0)因為在啟動geth命令列的時候需要新增這兩個引數。
雖然miner.start 還是返回null,但是 eth.blockNumber 卻增長了,因此說明可以挖礦了。新增--dev 引數,啟動的時候便產生了一個賬戶,並且已經挖礦有餘額。eth.sendTransaction({from: user1, to: user2, value: amount})    //將0.01以太幣從 user1 轉移到user2   轉移數量為0.01以太幣執行eth.sendTransaction 之後 user2的餘額還是0,那是因為沒有進行挖礦,交易沒有完成。 挖礦之後user2便有了餘額.
補充:Ether幣的基本單位Ether幣最小的單位是Wei,也是命令列預設的單位, 然後每1000個進一個單位,依次是- kwei (1000 Wei)- mwei (1000 KWei)- gwei (1000 mwei)- szabo (1000 gwei)- finney (1000 szabo)- ether (1000 finney)簡單地說就是就是1 以太幣 = 1000000000000000000 Wei (這就是上一站章中為何我們轉移0.01個以太幣,結果卻顯示很長的原因)如何進行ether 和 Wei之間的轉換Ether–> Wei:web3.toWei
> web3.toWei(1)
"1000000000000000000"
> web3.toWei(1.3423423)
"1342342300000000000"
> web3.toWei(0.00034)
"340000000000000"
>
Wei –> Ether: web3.fromWei> web3.fromWei(10000000000000000)
"0.01"
> web3.fromWei(1000000000000000000)
"1"
>
以太坊的一個保護機制,每隔一段時間賬戶就會自動鎖定,這個時候任何以太幣在賬戶之間的轉換都會被拒絕,除非把該賬戶解鎖.personal.unlockAccount(user1) 並輸入密碼來解鎖user1才可以.