1. 程式人生 > >【區塊鏈】go ethereum 安裝與使用

【區塊鏈】go ethereum 安裝與使用

go ethereum 安裝與使用 - mac

1. 安裝

· home-brew 安裝: here

· go ethereum 客戶端安裝:here

· solc 安裝

sudo npm install -g solc solc-cli --save-dev

2. 使用

檢視當前賬戶列表

geth account list

開啟終端,執行以下命令,以開發方式啟動geth

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

指定 –dev 為開發環境

geth 啟動成功後,重新開啟一個終端,執行以下命令,開啟geth控制檯

geth --dev console 2>>file_to_log_output

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

檢視當前有哪些賬戶

eth.accounts
顯示結果為:[]····
可以發現,初始是沒有賬戶的

建立一個新賬戶

personal.newAccount(‘密碼')
顯示結果為:"0x7bf0acbe8478f41a8ada15a1c814d0db5387b94a"
然後我們檢視 eth.accounts
顯示結果為:["0x7bf0acbe8478f41a8ada15a1c814d0db5387b94a"]
可以發現是成功建立了賬戶
然後我們繼續建立第二個賬戶

可以把賬戶賦值給某一個變數,同時查詢賬戶中的餘額

user1 = eth.accounts[0]
user2 = eth.accounts[1]
eth.getBalance(user1)
eth.getBalance(user2)
顯示結果:兩個賬戶的餘額都為0

上面提到過日誌檔案,我們再重開一個終端,我們使用以下命令開啟日誌:

tail -f file_to_log_output

我們把這個終端介面放在一邊,等下在geth控制檯中有任何操作時,都可以來這邊看看日誌。

檢視區塊號:

eth.blockNumber
顯示結果:0

在geth控制檯中啟動挖礦:

miner.start()
檢視日誌,可以看到已經在挖礦了

然後我們檢視第一個賬戶的餘額:eth.getBalance(user1)
顯示結果:130000000000000000000
檢視第二個賬戶的餘額:eth.getBalance(user2)
顯示結果:0
===>由此可見,挖礦的金額時預設傳入第一個賬戶的

檢視區塊號:eth.blockNumber
顯示結果:59

停止挖礦:

miner.stop()

轉賬

eth.sendTransaction({from: user1,to: user2,value: web3.toWei(3,"ether")})
顯示結果:Error: authentication needed: password or unlock
    at web3.js:3104:20
    at web3.js:6191:15
    at web3.js:5004:36
    at <anonymous>:1:1
===> 所以我們需要解鎖第一個賬戶

輸入:personal.unlockAccount("第一個賬戶地址", "密碼")
顯示結果:true

然後我們再進行轉賬就能成功
顯示結果:"0x30751bbb05bb3ac5bf5316d172b484476e2d0d2e6243bc5fe7cb30d6bc0cc552"
為本次交易的地址

然後我們檢視user2的賬戶餘額:eth.getBalance(user2)
顯示結果:0
這是因為沒有礦工來挖礦處理。根據區塊鏈的概念,我們知道,每次交易的確認,其實都是需要挖礦的,也就是被其他礦工共識確認,然後才能加入區塊鏈的賬本中。

然後我們啟動挖礦:miner.start()
再檢視user2的餘額:3000000000000000000

參考部落格:herehere