以太坊私鏈與智能合約部署學習(博主修正篇)—— 第二篇


    接上一篇

    本篇描述的是最最基本的命令操作篇。先別高興,這一篇是在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的使用入門


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM