零、概述
版本號:Ubuntu-16.04
ethereum-1.6.0-stable
go - 1.7.4
一、Ubuntu下安裝geth
sudo apt-get install software-properties-common sudo add-apt-repository -y ppa:ethereum/ethereum sudo apt-get update sudo apt-get install ethereum
二、創建初始化文件
vim genesis.json
{ "config": { "chainId": 15, "homesteadBlock": 0, "eip155Block": 0, "eip158Block": 0 }, "nonce":"0x0000000000000042", "mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x4000", "alloc": {}, "coinbase":"0x0000000000000000000000000000000000000000", "timestamp": "0x00", "parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000", "extraData": "", "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的消耗總量限制,用來限制區塊能包含的交易信息總和,因爲我們是私有鏈,所以填最大。 |
三、啓動
geth --identity "emaretherum" --rpc --rpccorsdomain "*" --datadir="/data/ethchain" --ipcdisable --port 30301 --rpcport 8101 console
參數 | 描述 |
identity | 區塊鏈的標示,隨便填寫,用於標示目前網絡的名字 |
init | 指定創世塊文件的位置,並創建初始塊 |
datadir | 設置當前區塊鏈網絡數據存放的位置 |
port | 網絡監聽端口 |
rpc | 啓動rpc通信,可以進行智能合約的部署和調試 |
rpcapi | 設置允許連接的rpc的客戶端,一般爲db,eth,net,web3 |
networkid | 設置當前區塊鏈的網絡ID,用於區分不同的網絡,是一個數字 |
console | 啓動命令行模式,可以在Geth中執行命令 |
nodiscover | 禁止被網絡中其它節點發現,需要手動添加該節點到網絡 |
verbosity | 打印詳細的日誌信息 |
四、debug 日誌參數
-verbosity 6
官方文檔
啓動私有網絡或本地集羣
https://github.com/ethereum/go-ethereum/wiki/Setting-up-private-network-or-local-cluster
監控
https://github.com/ethereum/go-ethereum/wiki/Setting-up-monitoring-on-local-cluster
快速創建本地集羣
https://github.com/ethersphere/eth-utils