区块链学堂(7):Geth 搭建私有网络-实战
生活随笔
收集整理的這篇文章主要介紹了
区块链学堂(7):Geth 搭建私有网络-实战
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在本章中我們將實戰如何使用Geth,如何搭建以太坊的私有網絡。
之前說過Geth是三種實現以太坊協議的工具之一,由于Geth是官方推崇的以及個人精力有限,對于另外兩種工具的搭建私有網絡,請參考網上資料。
下面的Geth實戰,在MacBook上實現,對于Windows方面,比較類似。
Step 1: 建立目錄和genesis.json
- 在命令行模式創建一個目錄,例如tmpPrivate
- 創建文件genesis.json, 并填入如下內容。 {"nonce": "0x0000000000000042","timestamp": "0x0","parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000","extraData": "0x0","gasLimit": "0x80000000","difficulty": "0x1","mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000","coinbase": "0x3333333333333333333333333333333333333333","alloc": { }
}
用戶可以vim,也可以用其他編輯器如sublime等,個人推薦使用Atom
Atom 官網地址:?https://atom.io/
Atom 是一個由谷歌支持發布的文本編輯器, 一個你可以自定義做任何事情的現代編輯器,后面涉及文件和代碼演示會主要在Atom上執行。
創建完成后,在Atom中,本文件夾下應該只有一個genesis.json
Step 2: 執行命令,創建創世區塊
- 切換回命令行,執行命令,制造創世區塊 geth --datadir "./" init genesis.json
執行結果如下:
- 這時候可以注意一下,此時當前目錄下面會新增出兩個文件夾geth和keystore
geth中保存的是區塊鏈的相關數據
keystore中保存的是該鏈條中的用戶信息
此時從Atom中看到的目錄結構是這樣的:
Step 3:創建自己的私有鏈條
- 執行一條最簡單的geth命令,來創建自己的私有鏈條 geth --datadir "./" --nodiscover console 2>>geth.log
geth的參數項目很多,有興趣的可以打geth –help 來獲得詳細信息,我們也會在之后的章節中對關鍵參數項進行說明。
- 此時的命令行應該是這樣的:
Step 4:在自己的私有鏈條上創建用戶
- 輸入命令eth.accounts, 我們會發現返回值為[]
這是因為此時雖然以太坊的私有鏈已經被創造出來,但還沒有任何賬戶。
- 輸入命令personal.newAccount("xxx"), 該命令將創造一個新的用戶,該用戶的密碼是xxx. 當然用戶也可以將xxx?改為123,或者123456,或者任意密碼
- 再次輸入命令?eth.accounts, 我們會發現一個新的用戶被創建了出來,這就代表我們已經創建了一個賬戶,重復personal.newAccount()?&?eth.accounts?我們可以創建若干個賬戶出來
整個命令截圖如下:
Step 5: 輸出區塊鏈的Log
- 在Step 3中,我們執行的代碼 geth --datadir "./" --nodiscover console 2>>geth.log
其中的代碼?console 2>> geth.log?代表將控制臺的一部分輸出,輸出到文件geth.log上去。
- 打開另一個終端,找到geth.log的所在目錄,執行命令?tail -f geth.log?從而持續的輸出以太坊的日志
整個過程如下圖所示:
Step 6: 最重要的一步來了,開始挖礦!
- 在命令行中執行命令?miner.start(), 開始在我們的區塊鏈上進行挖礦
- 此時Geth.log的輸出應該是這樣的
一直等到100%。這個以太坊私有鏈就會正式啟動,并持續不斷的生成出以太坊來。
注意點:
1. 挖礦挖到的ether幣會默認保在第一個賬戶中,即eth.acccounts[0]中。
2. 挖礦是執行智能合約的基礎。如果停止挖礦的話,不僅以太幣會停止生成,所有智能合約的調用也會不起作用。
3. 如果真的要停止挖礦,可以執行命令miner.stop()來停止挖礦
4. 按上面的命令,應該是可以實現以太坊挖礦的。如果不行的話,有可能就是之前有存在的鏈,此時應該刪除之前的數據。在Mac下即刪除~/.ethash文件夾和里面的文件即可
Step 7: 最終當挖礦啟動的時候的日志是這樣的
Step 8: 挖礦啟動后,查看主賬戶的以太幣數量
acc0 = eth.accounts[0] eth.getBalance(acc0)結果只要不為0,那就說明挖礦成功!
下一章,將講解geth中的若干概念,以及一些基本命令
原文地址:?http://www.ethchinese.com/?p=659
總結
以上是生活随笔為你收集整理的区块链学堂(7):Geth 搭建私有网络-实战的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 区块链学堂(6):以太坊生产网络/测试网
- 下一篇: 区块链实践(一) 以太坊网络+geth搭