8、Fabric 瀏覽器的部署
8.1 環(huán)境準(zhǔn)備
1、nodejs安裝,在第1節(jié)里已經(jīng)說過node的安裝,需要注意的是node版本應(yīng)該是v9.x以下。
2、PostgreSQL的安裝,瀏覽器會把監(jiān)聽到的數(shù)據(jù)存儲在pg里,所以需要安裝pg數(shù)據(jù)。
ubuntu使用直接安裝
sudo apt update
sudo apt install postgresql postgresql-contrib
安裝好后,可以使用cli查看一下
#切換用戶
sudo -i -u postgres
#進(jìn)入控制臺
psql
#退出
postgres=# \q
3、安裝Jq,jq是一個輕量級且靈活的命令行JSON處理器,安裝很簡單,見官網(wǎng)https://stedolan.github.io/jq/download/
8.2、下載瀏覽器源碼
? 在github上下載fabric 瀏覽器的源碼,https://github.com/hyperledger/blockchain-explorer,把源碼拉下來,根據(jù)自己的需要選擇不用的版本,我目前使用的是1.1版本,所以我切換到對應(yīng)的1.1分支上。
8.3、修改配置
8.3.1 配置postgresql數(shù)據(jù)庫
? 進(jìn)入 app/persistence/postgreSQL/db/文件夾,找到pgconfig.json配置文件,修改連接pg數(shù)據(jù)庫的配置,默認(rèn)配置為
{
"pg": {
"host": "127.0.0.1",
"port": "5432",
"database": "fabricexplorer",
"username": "hppoc",
"passwd": "password"
}
}
修改支運行createdb.sh腳本文件,創(chuàng)建瀏覽器所需的數(shù)據(jù)庫和表名。
8.3.2、配置啟動abric瀏覽器文件
進(jìn)入 blockchain-explorer/app/platform/fabric,找到對應(yīng)的config.json文件,配置對應(yīng)的fabric網(wǎng)絡(luò)信息,包括節(jié)點的請求接口,及監(jiān)聽接口,不同瀏覽器版本這個配置文件不太一樣,1.1版本的配置文件如下:
{
"network-config": {
"org1": {
"name": "peerOrg1",
"mspid": "Org1MSP",
"peer1": {
"requests": "grpcs://localhost:7051",
"events": "grpcs://localhost:7053",
"server-hostname": "peer0.org1.mbasechain.com",
"tls_cacerts": "/Users/xuyao/Workspaces/trace_kingland/artifacts/channel/crypto-config/peerOrganizations/org1.mbasechain.com/peers/peer0.org1.mbasechain.com/tls/ca.crt"
},
"admin": {
"key": "/Users/xuyao/Workspaces/trace_kingland/artifacts/channel/crypto-config/peerOrganizations/org1.mbasechain.com/users/Admin@org1.mbasechain.com/msp/keystore",
"cert": "/Users/xuyao/Workspaces/trace_kingland/artifacts/channel/crypto-config/peerOrganizations/org1.mbasechain.com/users/Admin@org1.mbasechain.com/msp/signcerts"
}
},
"org2": {
"name": "peerOrg2",
"mspid": "Org2MSP",
"peer1": {
"requests": "grpcs://localhost:7056",
"events": "grpcs://localhost:7058",
"server-hostname": "peer0.org2.mbasechain.com",
"tls_cacerts": "/Users/xuyao/Workspaces/trace_kingland/artifacts/channel/crypto-config/peerOrganizations/org2.mbasechain.com/peers/peer0.org2.mbasechain.com/tls/ca.crt"
},
"admin": {
"key": "/Users/xuyao/Workspaces/trace_kingland/artifacts/channel/crypto-config/peerOrganizations/org2.mbasechain.com/users/Admin@org2.mbasechain.com/msp/keystore",
"cert": "/Users/xuyao/Workspaces/trace_kingland/artifacts/channel/crypto-config/peerOrganizations/org2.mbasechain.com/users/Admin@org2.mbasechain.com/msp/signcerts"
}
},
"org3": {
"name": "peerOrg3",
"mspid": "Org3MSP",
"peer1": {
"requests": "grpcs://localhost:8051",
"events": "grpcs://localhost:8053",
"server-hostname": "peer0.org3.mbasechain.com",
"tls_cacerts": "/Users/xuyao/Workspaces/trace_kingland/artifacts/channel/crypto-config/peerOrganizations/org3.mbasechain.com/peers/peer0.org3.mbasechain.com/tls/ca.crt"
},
"admin": {
"key": "/Users/xuyao/Workspaces/trace_kingland/artifacts/channel/crypto-config/peerOrganizations/org3.mbasechain.com/users/Admin@org3.mbasechain.com/msp/keystore",
"cert": "/Users/xuyao/Workspaces/trace_kingland/artifacts/channel/crypto-config/peerOrganizations/org3.mbasechain.com/users/Admin@org3.mbasechain.com/msp/signcerts"
}
},
"org4": {
"name": "peerOrg4",
"mspid": "Org4MSP",
"peer1": {
"requests": "grpcs://localhost:8056",
"events": "grpcs://localhost:9058",
"server-hostname": "peer0.org4.mbasechain.com",
"tls_cacerts": "/Users/xuyao/Workspaces/trace_kingland/artifacts/channel/crypto-config/peerOrganizations/org4.mbasechain.com/peers/peer0.org4.mbasechain.com/tls/ca.crt"
},
"admin": {
"key": "/Users/xuyao/Workspaces/trace_kingland/artifacts/channel/crypto-config/peerOrganizations/org4.mbasechain.com/users/Admin@org4.mbasechain.com/msp/keystore",
"cert": "/Users/xuyao/Workspaces/trace_kingland/artifacts/channel/crypto-config/peerOrganizations/org4.mbasechain.com/users/Admin@org4.mbasechain.com/msp/signcerts"
}
}
},
"channel": "mychannel",
"orderers":[
{
"mspid": "OrdererMSP",
"server-hostname":"orderer1.mbasechain.com",
"requests":"grpcs://localhost:7050",
"tls_cacerts":"/Users/xuyao/Workspaces/trace_kingland/artifacts/channel/crypto-config/ordererOrganizations/mbasechain.com/orderers/orderer1.mbasechain.com/tls/ca.crt"
},
{
"mspid": "OrdererMSP",
"server-hostname":"orderer2.mbasechain.com",
"requests":"grpcs://localhost:8050",
"tls_cacerts":"/Users/xuyao/Workspaces/trace_kingland/artifacts/channel/crypto-config/ordererOrganizations/mbasechain.com/orderers/orderer2.mbasechain.com/tls/ca.crt"
}
],
"keyValueStore": "/tmp/fabric-client-kvs",
"configtxgenToolPath": "/Users/xuyao/Workspaces/goworkspace/src/blockchain/fabric/v1.2.0/fabric-samples/bin",
"SYNC_START_DATE_FORMAT":"YYYY/MM/DD",
"syncStartDate":"2018/01/01",
"eventWaitTime": "30000",
"license": "Apache-2.0",
"version": "1.1"
}
配置各節(jié)點的信息及tls的ca證書,管理員的私鑰及證書等信息。
8.3.3、構(gòu)建node項目
1、進(jìn)入blockchain-explorer/ 下,使用npm install 安裝項目所需package,
2、再進(jìn)入blockchain-explorer/app/test/下,使用npm install 安裝測試項目里的所需包,再跑測試腳本
#安裝包
npm install
#運行測試腳本
npm run test
3、進(jìn)入client/ 使用npm install 命令安裝包
npm install
npm test -- -u --coverage
npm run build
8.4、啟動fabric瀏覽器
? 使用腳本./start.sh來啟動項目,啟動成功后,可以打開瀏覽器查看一下.

其中做了一些漢化。
已完結(jié)
參考資料
1、https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-18-04
2、https://github.com/hyperledger/blockchain-explorer
3、https://stedolan.github.io/jq/download/