1. 程式人生 > >Hyperledger Explorer 區塊鏈瀏覽器與已搭建fabric網路結合

Hyperledger Explorer 區塊鏈瀏覽器與已搭建fabric網路結合

折騰了一下午,終於吧Hyperledger Explorer與現有的fabric網路結合起來。其實也挺簡單,主要是踩了許可權的坑。

Hyperledger Explorer介紹

hyperledger explorer主要是為Hyperledger的區塊鏈網路搭建視覺化的環境,可以通過瀏覽器檢視網路中的資訊,包括網路拓撲、區塊資訊、鏈碼資訊等等。 現在支援 fabric 和cello。
本文是在fabric v1.1版本以及explorer 3.5版本下的部署,作業系統為CentOS 7。
原始碼地址:
https://github.com/hyperledger/blockchain-explorer


依賴:

部署過程

下載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”: 許可權不夠
    原因同上。