以太坊區塊鏈私網環境搭建

一、從網站https://github.com/ethereum/go-ethereum/releases/下載最新版本node

#tar -zxvf geth.tar.gzgit

#cd gethgithub

#建立init.json的文本文件,內容以下:web

{json

"nonce": "0x0000000000000042",api

"config": { "chainId": 15, "homesteadBlock": 0, "eip155Block": 0, "eip158Block": 0 },網絡

"difficulty": "0x4000",app

"alloc": {cors

"e0953e0a2ae54cfa0e72426de4ad654af5fd3669": {dom

"balance": "20000009800000000000000000000"

}

},

"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",

"coinbase": "0x0000000000000000000000000000000000000000",

"timestamp": "0x00",

"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",

"extraData": "0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa",

"gasLimit": "0xb2d05e00"

}

參數描述

mixhash 與nonce配合用於挖礦,由上一個區塊的一部分生成的hash。注意他和nonce的設置須要知足以太坊的Yellow paper, 4.3.4. Block Header Validity,。

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  --datadir "./app/" init init.json  初始化

注意:上面命令中--datadir後面的 /app/chain能夠任意指定而且目錄不用提早建立,可是必定要保證有足夠的磁盤空間,init.json是咱們在上一步建立的創世區塊文件

 

三、啓動以太坊

#nohup ./geth --identity "dapp" --rpc --rpcport "8545" --rpccorsdomain "*" --rpcaddr "0.0.0.0" --datadir "app" --port "30303" --nodiscover --rpcapi "db,eth,net,web3,personal,admin" --networkid 95518 --nat "any" 2>log.txt&

#./geth attach ipc:./app/geth.ipc  以ipc方式調用console控制檯

#./geth attach http://127.0.0.1:8545 以rpc方式調用console控制檯

參數描述

identity 區塊鏈的標示,隨便填寫,用於標示目前網絡的名字

init 指定創世塊文件的位置,並建立初始塊

datadir 設置當前區塊鏈網絡數據存放的位置

port 網絡監聽端口

rpc 啓動rpc通訊,能夠進行智能合約的部署和調試

rpcapi 設置容許鏈接的rpc的客戶端,通常爲db,eth,net,web3

networkid 設置當前區塊鏈的網絡ID,用於區分不一樣的網絡,是一個數字

console 啓動命令行模式,能夠在Geth中執行命令

nodiscover 禁止被網絡中其它節點發現,須要手動添加該節點到網絡

verbosity 打印詳細的日誌信息

 

四、建立主帳戶,挖礦,轉帳,組網

>personal.newAccount(「111111」)

>personal.listAccounts 查看主帳戶

>web3.fromWei(eth.getBalance(eth.coinbase), "ether") 查詢默認賬號餘額

>miner.start(1) 挖礦,當出現mined block時,只有挖到礦了才能夠轉帳

>miner.stop() 中止探礦

>personal.unlockAccount("0x5a5116d5b2c27d77214134c81593974bc5abd6f9","111111",3600) 解鎖

> eth.sendTransaction({from: '0x325d05e04c7f62fbaaee83745e90a9b90bdbd089', to: '0xd841a08defddc93285b45ed4187d791170168daf', value:web3.toWei(1,"ether")}) 轉帳

> web3.fromWei(eth.getBalance(eth.accounts[1]), "ether")  其餘賬號

> txpool.status 查看交易狀態

組網創建區塊鏈,組網有二個要求:

>>>創世塊文件要同樣

>>>geth啓動時的networkid要同樣,即啓動中的--networkid 95518 這個參數值要同樣

在二臺不一樣機器上搭建二個以太坊私有鏈,而後執行如下命令

>admin.nodeInfo 查看當前節點的peer信息

而後把另外1臺上面的節點信息複製下來執行admin.addPeer便可,小括號裏面的enode信息爲另外1臺機器的信息

> admin.addPeer("enode://505b0b845e48d17db5bc8e7a5d8a8743a64007b36028907bb5bb6d24575265ce24b534fe39d0b437e057c1ffe380387d65632deb1ce023c5fa6707447c9bb386@192.168.37.40:30303")

查看組網是否成功

> admin.peers

 

五、Mist 鏈接到搭建好的私網

Mist.exe . --rpc "http://192.168.37.40:8545"  --node-networkid 95518  --swarmurl "null"

相關文章
相關標籤/搜索