接上一篇
本篇描述的是最最基本的命令操作篇。先別高興,這一篇是在windows下測試完成的。上一篇在ubuntu下布署環境,有可能是虛擬機性能太差,又或者其它未知的原因,第一次挖礦之后,強制exit,之后再進入控制台挖礦無法豈動硬盤燈狂閃,原因未知(因為剛接觸,完全懵圈狀態,算是一個伏筆,留以后解決)。所以這一篇只能先放在真機win7 64的環境下執行。
知識普及:
geth:是在你的電腦上運行節點的Go語言客戶端程序。也就是說,它匯集了整個ethereum賬本,並接收新區塊。你可以用它的控制台來與ethereum網絡進行交互。在C++實現中,geth類型的程序稱之為“eth”,Python稱之為“pyeth”。我不怎么使用它們,但它們的功能是類似的。
web3:(會在很多例子中看到)是geth最常用命令的Javascript庫。
geth下載:http://upyun-assets.ethfans.org/geth/1-7-2/geth-windows-amd64-1.7.2-1db4ecdc.exe
實驗流程記錄:(這一部分也可以直接參考 http://blog.csdn.net/CHENYUFENG1991/article/details/53458175?locationNum=7&fps=1)
按照第一篇說的方式,初始化創世區塊,並進入控制台。
1、查看當前有哪些賬戶:
eth.accounts
這時會看到一個空數組[],說明當前沒有賬戶存在
2、創建兩個賬戶,密碼為123456:
personal.newAccount(‘123456');
personal.newAccount(‘123456')
這時候運行eth.accounts會看到已存在兩個賬戶。
3、把賬戶賦給兩個變量,並分別查看這兩個賬戶的余額信息:
user1=eth.accounts[0]
user2=eth.accounts[1]
eth.getBalance(user1)
eth.getBalance(user2)
這時候可以看到兩個賬戶的余額都為0。
4、挖礦、停止挖礦
miner.start()
miner.stop()
注意:挖礦的結果會存入第一個用戶的錢包中。挖礦過程中,先會出現如下信息,大致的意思是正在計算過程中,直到percentage到100時,計算完畢就挖到礦了。
INFO [07-02|17:03:27] Generating DAG in progress epoch=0 percentage=0 elapsed=3.072s
INFO [07-02|17:03:29] Generating DAG in progress epoch=0 percentage=1 elapsed=5.604s
INFO [07-02|17:03:32] Generating DAG in progress epoch=0 percentage=2 elapsed=8.263s
INFO [07-02|17:03:34] Generating DAG in progress epoch=0 percentage=3 elapsed=10.788s
INFO [07-02|17:03:37] Generating DAG in progress epoch=0 percentage=4 elapsed=13.659s
之后,會提示以下信息(說明挖到礦了):
INFO [11-15|10:05:56] block reached canonical chain number=127 hash=dcd6c2…399870
INFO [11-15|10:05:56] Commit new mining work number=133 txs=0 uncles=0 elapsed=0s
INFO [11-15|10:05:56] mined potential block number=132 hash=aaf21e…bbd961
5、查詢user1余額:eth.getBalance(user1),可以看到余額了。
6、解鎖用戶:
personal.unlockAccount(user1,'123456')
personal.unlockAccount(user2,'123456')
解鎖用戶為了下一步的轉賬,對於沒解鎖的用戶會提示錯誤:Error:authentication needed: passwork or unlock
7、轉賬,從user1的賬戶中轉3個以太幣到user2:
eth.sendTransaction({from: user1,to: user2,value: web3.toWei(3,"ether")})
注意:轉賬成功后,查詢user1和user2,會發現余額不變。這時需要執行挖礦miner.start(),余額才會更新。根據資料解釋,挖礦的過程是鏈中所有端相互確認的過程,確認完成后金額才會真實發生轉移。
8、切換礦工賬號:
miner.setEtherbase(eth.accounts[1])
這一篇文章,就先到這里了。接下來會在ubuntu調通這個流程,並實驗智能合約的布署與調用。我們不見不散。
參考資料:
http://8btc.com/thread-23195-1-1.html 以太坊Ethereum常見問題FAQ
http://blog.csdn.net/CHENYUFENG1991/article/details/53458175?locationNum=7&fps=1 以太坊開發--geth的使用入門
