Hyperledger Explorer 區塊鏈瀏覽器與已搭建fabric網路結合
阿新 • • 發佈:2018-12-29
折騰了一下午,終於吧Hyperledger Explorer與現有的fabric網路結合起來。其實也挺簡單,主要是踩了許可權的坑。
Hyperledger Explorer介紹
hyperledger explorer主要是為Hyperledger的區塊鏈網路搭建視覺化的環境,可以通過瀏覽器檢視網路中的資訊,包括網路拓撲、區塊資訊、鏈碼資訊等等。 現在支援 fabric 和cello。
本文是在fabric v1.1版本以及explorer 3.5版本下的部署,作業系統為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
資料庫設定
cd blockchain-explorer
.cd blockchain-explorer/app/persistence/postgreSQL/db
- 更改pgconfig.json檔案,可以自己定義,後續指令碼會生成對應使用者
"pg": {
"host": "127.0.0.1",
"port": "5432",
"database": "fabricexplorer" ,
"username": "hppoc",
"passwd": "password"
}
- 更改指令碼許可權
chmod -R 775 ./*
- 建立使用者
./createdb.sh
- 連線資料庫
sudo -u postgres psql
Fabric 網路部署
根據已經部署好的fabric網路更改配置檔案:
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/[email protected]/msp/keystore",
"cert":
"/home/dc2-user/kongli/gyl/certs/peerOrganizations/org1.gyl.com/users/[email protected]/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/[email protected]/msp/keystore",
"cert":
"/home/dc2-user/kongli/gyl/certs/peerOrganizations/org3.gyl.com/users/[email protected]/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/[email protected]/msp/keystore",
"cert":
"/home/dc2-user/kongli/gyl/certs/peerOrganizations/org2.gyl.com/users/[email protected]/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"
}
構建Hyperledger Explorer
cd blockchain-explorer
npm install
cd blockchain-explorer/app/test
npm install
npm run test
cd client/
npm install
npm test -- -u --coverage
npm run build
以上沒有錯誤證明搭建完成
執行 Hyperledger Explorer
cd blockchain-explorer/
./start.sh
(開啟後臺執行).- http://localhost:8080 檢視結果.
./stop.sh
(關閉).- logs 資料夾下可以檢視日誌
效果
遇到的問題
- locate: 無法執行 stat () `/var/lib/mlocate/mlocate.db’: 沒有那個檔案或目錄
由於locate沒裝導致或者沒啟動錯誤,sudo yum install mlocate 安裝且使用sudo updatedb執行更新。 - db error { error: Ident authentication failed for user “postgres”
許可權問題,需要吧blockchain-explorer下載在非當前使用者資料夾下,比如/tmp。 - 執行createdb.sh的時候報錯:could not change directory to “/home/dc2-user/kongli/blockchain-explorer/app/persistence/postgreSQL/db”: 許可權不夠
原因同上。