折騰了一下午,終于吧Hyperledger Explorer與現(xiàn)有的fabric網(wǎng)絡(luò)結(jié)合起來。其實也挺簡單,主要是踩了權(quán)限的坑。
Hyperledger Explorer介紹
hyperledger explorer主要是為Hyperledger的區(qū)塊鏈網(wǎng)絡(luò)搭建可視化的環(huán)境,可以通過瀏覽器查看網(wǎng)絡(luò)中的信息,包括網(wǎng)絡(luò)拓撲、區(qū)塊信息、鏈碼信息等等。 現(xiàn)在支持 fabric 和cello。
本文是在fabric v1.1版本以及explorer 3.5版本下的部署,操作系統(tǒng)為CentOS 7。
源碼地址:
https://github.com/hyperledger/blockchain-explorer
依賴:
- nodejs 8.11.x
- PostgreSQL 9.5 or greater [https://www.postgresql.org/]
- Jq [https://stedolan.github.io/jq/]
- docker 17.06.2-ce [https://www.docker.com/community-edition]
- docker-compose 1.14.0 [https://docs.docker.com/compose/]
部署過程
下載explorer代碼并切換到3.5版本
-
git clone https://github.com/hyperledger/blockchain-explorer.git. git checkout -b release-3.5 origin/release-3.5
數(shù)據(jù)庫設(shè)置
-
cd blockchain-explorer. cd blockchain-explorer/app/persistence/postgreSQL/db- 更改pgconfig.json文件,可以自己定義,后續(xù)腳本會生成對應(yīng)用戶
"pg": {
"host": "127.0.0.1",
"port": "5432",
"database": "fabricexplorer",
"username": "hppoc",
"passwd": "password"
}
- 更改腳本權(quán)限
chmod -R 775 ./* - 創(chuàng)建用戶
./createdb.sh - 連接數(shù)據(jù)庫
sudo -u postgres psql
Fabric 網(wǎng)絡(luò)部署
根據(jù)已經(jīng)部署好的fabric網(wǎng)絡(luò)更改配置文件:
blockchain-explorer/app/platform/fabric/config.json
{
"network-config": {
"org1": {
"name": "GylOrg1MSP",
"mspid": "GylOrg1MSP",
"peer1": {
"requests": "grpcs://10.254.186.164:7051",
"events": "grpcs://10.254.186.164:7053",
"server-hostname": "peer0.org1.gyl.com",
"tls_cacerts":
"/home/dc2-user/kongli/gyl/certs/peerOrganizations/org1.gyl.com/peers/peer0.org1.gyl.com/tls/ca.crt"
},
"admin": {
"key":
"/home/dc2-user/kongli/gyl/certs/peerOrganizations/org1.gyl.com/users/Admin@org1.gyl.com/msp/keystore",
"cert":
"/home/dc2-user/kongli/gyl/certs/peerOrganizations/org1.gyl.com/users/Admin@org1.gyl.com/msp/signcerts"
}
},
"org3": {
"name": "GylOrg3MSP",
"mspid": "GylOrg1MSP",
"peer1": {
"requests": "grpcs://10.254.207.154:7051",
"events": "grpcs://10.254.207.154:7053",
"server-hostname": "peer0.org3.gyl.com",
"tls_cacerts":
"/home/dc2-user/kongli/gyl/certs/peerOrganizations/org3.gyl.com/peers/peer0.org3.gyl.com/tls/ca.crt"
},
"admin": {
"key":
"/home/dc2-user/kongli/gyl/certs/peerOrganizations/org3.gyl.com/users/Admin@org3.gyl.com/msp/keystore",
"cert":
"/home/dc2-user/kongli/gyl/certs/peerOrganizations/org3.gyl.com/users/Admin@org3.gyl.com/msp/signcerts"
}
},
"org2": {
"name": "GylOrg2MSP",
"mspid": "GylOrg2MSP",
"peer1": {
"requests": "grpcs://10.254.247.165:7051",
"events": "grpcs://10.254.247.165:7053",
"server-hostname": "peer0.org2.gyl.com",
"tls_cacerts":
"/home/dc2-user/kongli/gyl/certs/peerOrganizations/org2.gyl.com/peers/peer0.org2.gyl.com/tls/ca.crt"
},
"admin": {
"key":
"/home/dc2-user/kongli/gyl/certs/peerOrganizations/org2.gyl.com/users/Admin@org2.gyl.com/msp/keystore",
"cert":
"/home/dc2-user/kongli/gyl/certs/peerOrganizations/org2.gyl.com/users/Admin@org2.gyl.com/msp/signcerts"
}
}
},
"channel": "gylchannel",
"orderers": [
{
"mspid": "OrdererMSP",
"server-hostname": "orderer.gyl.com",
"requests": "grpcs://10.254.186.164:7050",
"tls_cacerts":
"/home/dc2-user/kongli/gyl/certs/ordererOrganizations/gyl.com/orderers/orderer.gyl.com/tls/ca.crt"
}
],
"keyValueStore": "/tmp/fabric-client-kvs",
"configtxgenToolPath": "/user/bin",
"SYNC_START_DATE_FORMAT": "YYYY/MM/DD",
"syncStartDate": "2018/11/01",
"eventWaitTime": "30000",
"license": "Apache-2.0",
"version": "1.1"
}
構(gòu)建Hyperledger Explorer
cd blockchain-explorernpm installcd blockchain-explorer/app/testnpm installnpm run testcd client/npm installnpm test -- -u --coveragenpm run build
以上沒有錯誤證明搭建完成
運行 Hyperledger Explorer
cd blockchain-explorer/-
./start.sh(開啟后臺執(zhí)行). - http://localhost:8080 查看結(jié)果.
-
./stop.sh(關(guān)閉). - logs 文件夾下可以查看日志
效果
在這里插入圖片描述
遇到的問題
- locate: 無法執(zhí)行 stat () `/var/lib/mlocate/mlocate.db': 沒有那個文件或目錄
由于locate沒裝導(dǎo)致或者沒啟動錯誤,sudo yum install mlocate 安裝且使用sudo updatedb執(zhí)行更新。 - db error { error: Ident authentication failed for user "postgres"
權(quán)限問題,需要吧blockchain-explorer下載在非當前用戶文件夾下,比如/tmp。 - 執(zhí)行createdb.sh的時候報錯:could not change directory to "/home/dc2-user/kongli/blockchain-explorer/app/persistence/postgreSQL/db": 權(quán)限不夠
原因同上。