8、Fabric 瀏覽器的部署
8.1 環(huán)境準備
1唇礁、nodejs安裝,在第1節(jié)里已經(jīng)說過node的安裝惨篱,需要注意的是node版本應該是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
#進入控制臺
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版本馒过,所以我切換到對應的1.1分支上。
8.3酗钞、修改配置
8.3.1 配置postgresql數(shù)據(jù)庫
? 進入 app/persistence/postgreSQL/db/文件夾腹忽,找到pgconfig.json配置文件,修改連接pg數(shù)據(jù)庫的配置砚作,默認配置為
{
"pg": {
"host": "127.0.0.1",
"port": "5432",
"database": "fabricexplorer",
"username": "hppoc",
"passwd": "password"
}
}
修改支運行createdb.sh腳本文件窘奏,創(chuàng)建瀏覽器所需的數(shù)據(jù)庫和表名。
8.3.2葫录、配置啟動abric瀏覽器文件
進入 blockchain-explorer/app/platform/fabric着裹,找到對應的config.json文件,配置對應的fabric網(wǎng)絡信息米同,包括節(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、構建node項目
1稍走、進入blockchain-explorer/ 下袁翁,使用npm install 安裝項目所需package,
2婿脸、再進入blockchain-explorer/app/test/下粱胜,使用npm install 安裝測試項目里的所需包,再跑測試腳本
#安裝包
npm install
#運行測試腳本
npm run test
3盖淡、進入client/ 使用npm install 命令安裝包
npm install
npm test -- -u --coverage
npm run build
8.4年柠、啟動fabric瀏覽器
? 使用腳本./start.sh來啟動項目,啟動成功后褪迟,可以打開瀏覽器查看一下.
其中做了一些漢化。
已完結
參考資料
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/