Fabric多臺服務(wù)器的部署(五)

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/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容