Ethstats 佈署
加密貨幣
分別需要兩個 repo
- api 的: https://github.com/cubedro/eth-net-intelligence-api
- 前端的: https://github.com/cubedro/eth-netstats
什麼是 netstats
- ethereum 監控網路節點狀態的視覺化網頁呈現
- 任何人都可以在EthStats仪表板上添加他们的节点
- 展示重要信息,诸如现在的区块,散表难度,gas价格和gas花费等
- 架構: 後端在每一台 node 上,主動利用 instance-api 以 WebSocket 提供資訊給前端,前端統一在一台 server 接受推播
- 後端可自己自由架設
api 部份架設
需求
- 節點必須是 rpc 開啟的
geth --rpc
- 需要連得到指定節點的 rpc port (default 8545)
- 可用
nc -v [ip] [port]
測試
- 可用
- 需要有 pm2
sudo npm install -g pm2
- 節點必須是 rpc 開啟的
下載
git clone https://github.com/cubedro/eth-net-intelligence-api cd eth-net-intelligence-api npm install
修改設定檔 在 app.json
"env": { “RPC_HOST” : “localhost”, “RPC_PORT” : “8545”, “LISTENING_PORT” : “30303”, “INSTANCE_NAME” : “”, “CONTACT_DETAILS” : “”, “WS_SERVER” : “ http://localhost:3000”, “WS_SECRET” : “lalaland”, “VERBOSITY” : 2 }
- RPC_HOST:
- RPC_PORT: 給出資訊的節點的 port
- LISTENING_PORT: ethereum 將會監聽的 port
- INSTANCE_NAME: 對節點的命名,可隨便填,但是一定要填
- CONTACT_DETAILS: 若要分享合約資訊,則需要填寫此欄位
- WS_SERVER: 網頁伺服器會使用的 ip / hostname : port (這裡填入的是前端 ethstats WebSocket 所在的位置(可以在不同的主機上))
- WS_SECRET: 指定一個密鑰,和網頁伺服器建立連線時使用
- VERBOSITY:
啟動
pm2 start app.json
- 如果出現
/usr/bin/env: 'node': No such file or directory
下apt-get install nodejs-legacy
指令
- 如果出現
前端架設
- 需求
- 需要有 grunt
sudo npm install -g grunt-cli
- 需要有 grunt
- 下載
git clone https://github.com/cubedro/eth-netstats cd eth-netstats npm install grunt all
- 啟動
- 要在 bash 下 (至少 fish 的變數不是這樣下的 XD)
WS_SECRET="{密鑰}" npm start
- 密鑰 要與上面的 WS_SECRET 在相同的地方
NGINX proxy 設定
只需要對前端做 proxy 就可以了~
server {
listen 80;
server_name ethstats.calee.com.tw;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}