建置於乙太坊私有鏈上的Ethereum Network Status
Etherum Network Status是一個非常方便,能及時查看乙太坊網路整體狀態的一個網頁,本篇會介紹如何自己架一個可以看自己私有鏈狀態的Etherum Network Status
建置環境
我的環境
- Ubuntu:16.04
- nodejs:6.14.1
- npm :3.10.10
- geth :1.8.3
建置步驟
底下的建置步驟是我參考兩個Github網頁並自己測試成功
eth-netstats
- https://github.com/cubedro/eth-netstats
cd ~ git clone https://github.com/cubedro/eth-netstats cd eth-netstats npm install sudo npm install -g grunt-cli grunt
eth-net-intelligence-api
- https://github.com/cubedro/eth-net-intelligence-api
cd ~ git clone https://github.com/cubedro/eth-net-intelligence-api cd eth-net-intelligence-api npm install sudo npm install -g pm2
複製以下代碼並修改到路徑eth-net-intelligence-api/app.json
[ { "name" : "mynode-0", "cwd" : ".", "script" : "app.js", "log_date_format" : "YYYY-MM-DD HH:mm Z", "merge_logs" : false, "watch" : false, "exec_interpreter" : "node", "exec_mode" : "fork_mode", "env": { "NODE_ENV" : "production", "RPC_HOST" : "10.10.10.10",//GETH running ip "RPC_PORT" : "8545", "LISTENING_PORT" : "30303", "INSTANCE_NAME" : "mynode-0",//節點顯示名字 "WS_SERVER" : "http://localhost:3000",//Ethereum Network Status網址 "WS_SECRET" : "your_secret",//自定義節點密碼 } }, ]
- 需要修改RPC_HOST對應IP到你的GETH的IP
Geth私有鏈
geth --identity "Private-chain" --rpc --rpcaddr "0.0.0.0" --rpccorsdomain "*" --datadir "D:\geth\chain" --port "30303" --rpcapi "db,eth,net,web3,personal" --networkid 394 console
- –datadir後需參數根據自己環境修改
Nodejs
cd ~/eth-net-intelligence-api
pm2 start app.json
pm2 update
cd ../eth-netstats
PORT=3000 WS_SECRET=your_secret npm start &
進入http://localhost:3000,就可以看到私有鏈的狀態了
新增節點
修改eth-net-intelligence-api/app.json,複製大括弧內容並修改IP貼回如下
[
{
"name" : "mynode-0",
"cwd" : ".",
"script" : "app.js",
"log_date_format" : "YYYY-MM-DD HH:mm Z",
"merge_logs" : false,
"watch" : false,
"exec_interpreter" : "node",
"exec_mode" : "fork_mode",
"env":
{
"NODE_ENV" : "production",
"RPC_HOST" : "10.10.10.10",//GETH running ip
"RPC_PORT" : "8545",
"LISTENING_PORT" : "30303",
"INSTANCE_NAME" : "mynode-0",//節點顯示名字
"WS_SERVER" : "http://localhost:3000",//Ethereum Network Status網址
"WS_SECRET" : "your_secret",//自定義節點密碼
}
},
{
"name" : "mynode-1",
"cwd" : ".",
"script" : "app.js",
"log_date_format" : "YYYY-MM-DD HH:mm Z",
"merge_logs" : false,
"watch" : false,
"exec_interpreter" : "node",
"exec_mode" : "fork_mode",
"env":
{
"NODE_ENV" : "production",
"RPC_HOST" : "10.10.10.11",//GETH running ip
"RPC_PORT" : "8545",
"LISTENING_PORT" : "30303",
"INSTANCE_NAME" : "mynode-1",//節點顯示名字
"WS_SERVER" : "http://localhost:3000",//Ethereum Network Status網址
"WS_SECRET" : "your_secret",//自定義節點密碼
}
}
]
再重新跑pm2 update指令,Console有顯示兩份節點的資訊後,在Geth裡admin.addPeer(“enode://…(請參考之前文章)”),就可以成功把節點都顯示在你自己的Ethereum Network Status了
結語
這是去年研究乙太坊的一個成果,紀錄供需要的人建置,以私有鏈來說這個Ethereum Network Status就是給管理者管理使用,可以了解現在私有鏈的狀態。