參考文章地址:http://blog.csdn.net/sportshark/article/details/51855007
搭建環境:Ubuntu
具體的安裝可以參考官方指南:
https://github.com/ethereum/Go-ethereum/wiki/Building-Ethereum
一:進入ubuntu終端命令列:
分別輸入:
sudo apt-get installsoftware-properties-common
sudo add-apt-repository -yppa:ethereum/ethereum
sudo add-apt-repository -yppa:ethereum/ethereum-dev
sudo apt-get update
sudo apt-get install ethereum
系統連網執行完命令後就會完成安裝,完成安裝後,輸入geth命令,可以看到geth啟動的資訊(串連的是公有鏈)。或者輸入geth --help
如果現實出命令列各種參數提示資訊,則說明安裝成功。
注意:如果安裝過程中出錯,不要灰心急於放棄,閱讀其出錯資訊,然後解決它,然後繼續安裝,一般出錯都是由於需要依賴其他組件,則先安裝其他組件。
二:創世塊:
在以上安裝成功之後,直接啟動,即可串連公有鏈。現在通過配置創世塊來建立私人鏈。同一個網路中,創世塊必須是一樣的,否則無法聯通。
建立一個eth的根目錄的檔案夾,在根目錄下建立創世塊json檔案piccgenesis.json。內容如下:
{
"nonce":"0x0000000000000042",
"mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x4000",
"alloc": {},
"coinbase":"0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData":"SecBroBlock",
"gasLimit":"0x0000ffff"
}
參數解釋:
mixhash 與nonce配合用於挖礦,由上一個區塊的一部分產生的hash。注意他和nonce的設定需要滿足以太坊的Yellow paper, 4.3.4. Block Header Validity, (44)章節所描述的條件。
nonce nonce就是一個64位隨機數,用於挖礦,注意他和mixhash的設定需要滿足以太坊的Yellow paper, 4.3.4. Block Header Validity, (44)章節所描述的條件。
difficulty 設定當前區塊的難度,如果難度過大,cpu挖礦就很難,這裡設定較小難度
alloc 用來預置帳號以及帳號的以太幣數量,因為私人鏈挖礦比較容易,所以我們不需要預置有幣的帳號,需要的時候自己建立即可以。
coinbase 礦工的帳號,隨便填
timestamp 設定創世塊的時間戳記
parentHash 上一個區塊的hash值,因為是創世塊,所以這個值是0
extraData 附加資訊,隨便填,可以填你的個性資訊
gasLimit 該值設定對GAS的消耗總量限制,用來限制區塊能包含的交易資訊總和,因為我們是私人鏈,所以填最大。
切換到剛剛存放piccgenesis.json的目錄中:執行以下命令:
basepath=$(cd `dirname $0`; pwd)
擷取當前的目錄
geth --datadir "$basepath/chain"init piccgenesis.json
建立資料存放地址並初始化創世塊
geth --identity"PICCetherum" –rpc--rpccorsdomain "*" --datadir "$basepath/chain" --port"30303" --rpcapi "db,eth,net,web3" --networkid 95518console
命令解釋:
參數名稱 參數描述
identity 區塊鏈的標示,隨便填寫,用於標示目前網路的名字
init 指定創世塊檔案的位置,並建立初始塊
datadir 設定當前區塊鏈網路資料存放的位置
port 網路監聽連接埠
rpc 啟動rpc通訊,可以進行智能合約的部署和調試
rpcapi 設定允許串連的rpc的用戶端,一般為db,eth,net,web3
networkid 設定當前區塊鏈的網路ID,用於區分不同的網路,是一個數字
console 啟動命令列模式,可以在Geth中執行命令
啟動成功如下:
啟動了節點後,就進入了geth命令列模式,輸入personal.newAccount() 根據提示輸入密碼就會給你建立了一個賬戶。
三:串連其他節點:
五:串連其他節點:
首先要知道自己的節點資訊,在Geth命令列介面下輸入命令,注意大小寫
admin.nodeInfo
系統會顯示
enode:"enode://1e3c1727cd3bee9f25edeb5dbb3b880e03e41f8eec99566557f3ee0422734a8fcad17c161aa93d61bdbfb28ed152c143c7eb501db58bc63502a104a84b62d742@0.0.0.0:30303“
其中
enode://1e3c1727cd3bee9f25edeb5dbb3b880e03e41f8eec99566557f3ee0422734a8fcad17c161aa93d61bdbfb28ed152c143c7eb501db58bc63502a104a84b62d742@0.0.0.0:30303
就是自己節點的資訊,注意要把”0.0.0.0”換成你自己的IP。將這個資訊發送給其他節點,在其他節點的命令列中輸入:
admin.addPeer(‘enode://1e3c1727cd3bee9f25edeb5dbb3b880e03e41f8eec99566557f3ee0422734a8fcad17c161aa93d61bdbfb28ed152c143c7eb501db58bc63502a104a84b62d742@192.168.1.101:30303’)
如果添加成功,輸入admin.peers會顯示出新添加的節點。
六:
開始挖礦的命令:
miner.start()
結束挖礦:
Miner.stop()