天天看點

Hyperledger Explorer區塊浏覽器官方安裝文檔【中文版】

Hyperledger Explorer是一個簡單易用的開源工具,可以用于監視區塊鍊網絡中的活動。Hyperledger Explorer支援Fabric、Iroha等多種區塊鍊,可以運作在MocOS和Ubuntu下。

Hyperledger Fabric區塊鍊開發教程:

1.0 Hyperledger Explorer與Fabirc版本對應關系說明

Hyperledger Explorer和Fabric以及NodeJS之間的版本對應關系如下:

Hyperledger Explorer Version Fabric Version Supported NodeJS Version Supported
v1.0.0-rc2 (Dec 10, 2019) v1.4.0 to v1.4.4 8.11.x
v1.0.0-rc1 (Nov 18, 2019) v1.4.2
v0.3.9.5 (Sep 8, 2019)
v0.3.9.4 (June 18, 2019) v1.4.1
v0.3.9.3 (May 24, 2019) v1.4
v0.3.9.2 (May 16, 2019)
v0.3.9.1 (Feb 28, 2019)
v0.3.9 (Feb 7, 2019)
v0.3.8 (Dec 13, 2018) v1.3 8.x.x
v0.3.7 (Sep 21, 2018) v1.2
v0.3.6.1
v0.3.6 (Sep 6, 2018)
v0.3.5.1 v1.1
v0.3.5 (Aug 24, 2018)
v0.3.4 (Jul 13, 2018)

2.0 Hyperledger Explorer源代碼目錄結構

blockchain-explorer
    |
    ├── app                     Application backend root, Explorer configuration
    |    ├── rest               REST API
    |    ├── persistence        Persistence layer
    |    ├── fabric             Persistence API (Hyperledger Fabric)
    |    └── platform           Platforms
    |    |    └── fabric        Explorer API (Hyperledger Fabric)
    |    └── test               Application backend test
    |
    └── client                     Web UI
         ├── public             Assets
         └── src                Front end source code
              ├── components    React framework
              ├── services      Request library for API calls
              ├── state         Redux framework
              └── static        Custom and Assets           

3.0 Hyperledger Explorer的依賴說明

在安裝和運作Hyperledger Explorer之前需要先滿足以下依賴條件:

  • Nodejs 8.11.x(注意目前v9.x還不支援)
  • PostgreSQL 9.5或更高版本
  • jq
  • 基于Linux的作業系統,例如Ubuntu或MacOS

以下版本的Docker已經驗證過支援Hyperledger Explorer:

  • Docker CE 18.09.2或更高版本
  • Docker Compose 1.14.0

4.0 克隆Hyperledger Explorer的Git倉庫

執行以下指令克隆Hyperledger Explorer的Git倉庫以獲得最新版本:

git clone https://github.com/hyperledger/blockchain-explorer.git
cd blockchain-explorer           

5.0 PostgreSQL資料庫設定

首先進入app目錄:

cd blockchain-explorer/app           

然後修改explorerconfig.json以更新PostgreSQL資料庫的配置:

"postgreSQL": {
    "host": "127.0.0.1",
    "port": "5432",
    "database": "fabricexplorer",
    "username": "hppoc",
    "passwd": "password"
}           

配置資料庫的另一種替代方式是使用環境變量,例如:

export DATABASE_HOST=127.0.0.1
export DATABASE_PORT=5432
export DATABASE_DATABASE=fabricexplorer
export DATABASE_USERNAME=hppoc
export DATABASE_PASSWD=pass12345           

注意:在每次執行git pull之後,你可能需要修改資料庫目錄的

權限。執行以下指令進行權限修改:

cd blockchain-explorer/app/persistence/fabric/postgreSQL
chmod -R 775 db/           

接下來運作資料庫建立腳本。

在Ubuntu下執行如下指令:

cd blockchain-explorer/app/persistence/fabric/postgreSQL/db
sudo -u postgres ./createdb.s           

在MacOS執行如下指令:

cd blockchain-explorer/app/persistence/fabric/postgreSQL/db
./createdb.sh           

現在可以連接配接到PostgreSQL資料庫,運作DB狀态指令:

  • \l

    :檢視建立的fabricexplorer資料庫
  • \d

    :檢視建立的資料表

如果你的Postgresql啟用了TLS,請參考

Postgresql官方文檔

5.1 Hyperledger Explorer身份授權配置

首先進入浏覽器應用目錄:

cd blockchain-explorer/app           

然後修改explorerconfig.json以更新授權配置(JWT):

"jwt": {
    "secret" : "a secret phrase!!",
    "expiresIn": "2 days"
}           

其中:

  • secret:用于簽名消息載荷的密文
  • expiresIn:過期時間,以秒為機關的數值或一個時間字元串,例如:60,2 days,10h,7d等,可參考 zeit/ms

6.0 Fabric網絡設定

注意:完成這一部分的設定需要一定的時間。

首先參考Hyperledger官方文檔

Building Your First Network

搭建好你自己的網絡。

然後修改配置檔案/blockchain-explorer/app/platform/fabric/config.json裡的對應的值。

Hyperledger Explorer預設使用

fabric-samples/first-network

請確定在docker-compose.yaml檔案中為每個Peer節點都設定了環境變量CORE_PEER_GOSSIP_BOOTSTRAP和CORE_PEER_GOSSIP_EXTERNALENDPOINT。這些設定用來啟用Fabric發現服務,Hyperledger Explorer依賴于該服務來自動發現Fabric區塊鍊網絡的拓撲結構。

6.1 為Hyperledger Explorer配置運維服務

請參考

CONFIG-OPERATIONS-SERVICE-HLEXPLORER.md

來為Hyperledger Explorer配置運維服務。

7.0 配置Hyperledger Fabric

開啟另一個終端,進入以下目錄:

cd blockchain-explorer/app/platform/fabric           

修改config.json檔案來定義fabric網絡的連接配接配置檔案:

{
    "network-configs": {
        "first-network": {
            "name": "firstnetwork",
            "profile": "./connection-profile/first-network.json",
            "enableAuthentication": false
        }
    },
    "license": "Apache-2.0"
}           
  • first-network:是連接配接配置的名稱,可以随意修改
  • name:你的fabric網絡的名字
  • profile:你的連接配接配置檔案的路徑

修改JSON檔案first-network.json中的連接配接配置資訊:

  • 修改fabric-path指向你的fabric網絡硬碟路徑:
    /blockchain-explorer/app/platform/fabric/connection-profile/first-network.json           
  • 為adminPrivateKey配置選項提供完整的磁盤路徑,它通常 以

    _sk

    結尾,例如:
    "/fabric-path/fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/users/[email protected]/msp/keystore/aaacd899a6362a5c8cc1e6f86d13bfccc777375365bbda9c710bb7119993d71c_sk"           
  • adminUser是網絡的管理使用者
  • adminPassword是管理使用者的密碼
  • enableAuthentication标志用來啟用登入頁,設定為false将跳過 身份驗證

7.1 為Hyperledger Explorer配置Fabcar示例,可選

參考Hyperledger Fabric示例中的

Fabcar Sample Network

為Hyperledger Explorer設定連接配接Fabcar示例網絡。

  • 確定在docker-compose.yaml檔案中為每個peer節點都是設定

    CORE_PEER_GOSSIP_BOOTSTRAP和CORE_PEER_GOSSIP_EXTERNALENDPOINT

環境變量。這些設定用于啟用fabric的自動發現服務。

7.2 為Hyperledger Explorer配置Balance Transfer示例

Balance Transfer Sample

為Hyperledger Explorer設定對Balance Transfer網絡的通路。

參考文檔:

CONFIG-BALANCE-TRANSFER-HLEXPLORER.md

8.0 Hyperledger Composer 設定

TODO

9.0 Hyperledger Cello設定

10.0 建構Hyperledger Explorer

注意,請在每次git pull之後重複以下步驟!

在終端執行如下指令安裝、測試并建構項目

./main.sh install           

在終端執行如下指令清理/node_modules、client/node_modules、client/build、client/coverage、app/test/node_modules目錄

./main.sh clean           

在終端執行如下指令測試REST API、UI元件并生成代碼覆寫報告;

./main.sh test           

或者:

cd blockchain-explorer
npm install
cd blockchain-explorer/app/test
npm install
npm run test
cd client/
npm install
npm run test:ci -- -u --coverage
npm run build           

10.1 配置Hyperledger Explorer啟用HTTPS

參考:

CONFIG-HTTPS-HLEXPLORER.md

11.0 運作Hyperledger Explorer

首先進入應用目錄:

cd blockchain-explorer/app           

然後修改explorerconfig.json來更新同步屬性,例如同步類型、平台等。

如果修改了explorerconfig.json中的參數,請重新啟動同步程序。

如果同步程序和Hyperledger Explorer不在同一台主機上,那麼在Explorer的explorerconfig.json中應當将同步類型設定為host:

"sync": {
  "type": "host"
}           

如果同步程序和Hyperledger Explorer安裝在同一台主機上,則設定

為local類型:

"sync": {
  "type": "local"
}           

另外開啟一個終端:

  • cd blockchain-explorer/
  • ./start.sh 啟動背景
  • ./start.sh debug 以調試方式啟動背景
  • ./start.sh print 顯示幫助資訊
  • 在浏覽器中打開

    http(s)://localhost:8080

  • ./stop.sh 終止node伺服器

如果Sync程序在單獨主機中,那麼在新的終端中:

  • ./syncstart.sh 啟動同步節點
  • ./syncstop.sh 停止同步節點
  • 如果之前在浏覽器中通路了hyperledger explorer,請先清理浏覽器緩存
  • 如果Hyperledger Fabric網絡部署在另一台機器上,請切換start.sh/syncstart.sh 中的DISCOVERY_AS_LOCALHOST标志位false

11.1 Hyperledger Explorer日志配置

使用如下的環境變量,可以控制Hyperledger Explorer中每個元件(例如app、db和console)的日志輸出等級,例如:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < MARK < OFF。

每個檔案按時間(7天)和大小(8MB)滾動。

  • LOG_LEVEL_APP:應用層日志等級,日志寫入logs/app/app.log,預設為DEBUG
  • LOG_LEVEL_DB:後端日志等級,日志寫入logs/db/db.log,預設為DEBUG
  • LOG_LEVEL_CONSOLE:控制台日志等級,日志寫入logs/console/console.log,預設為INFO
  • LOG_CONSOLE_STDOUT :iang控制台日志目标從檔案切換為标準輸出裝置,預設值:false

12.0 使用Docker運作Hyperledger Explorer

如果以下條件滿足的話,可以利用docker自動部署Hyperledger Explorer:

  • 安裝了bash
  • 在部署機器上安裝有docker
  • 在部署機器上安裝有docker compose

12.1 Docker倉庫

Hyperledger Explorer docker倉庫:

https://hub.docker.com/r/hyperledger/explorer/

Hyperledger Explorer PostgreSQL docker 倉庫:

https://hub.docker.com/r/hyperledger/explorer-db

12.2 使用docker compose運作Hyperledger Explorer

修改示例docker-compose.yaml檔案以比對你自己的環境:

  • networks > mynetwork.com > external > name
networks:
    mynetwork.com:
        external:
            name: net_byfn           
  • services > explorer.mynetwork.com > volumes
volumes:
  - ./examples/net1/config.json:/opt/explorer/app/platform/fabric/config.json
  - ./examples/net1/connection-profile:/opt/explorer/app/platform/fabric/connection-profile
  - ./examples/net1/crypto:/tmp/crypto           
  • 如果Hyperledger Explorer是通過橋接網絡連接配接到Fabric網絡 的,你需要設定DISCOVERY_AS_LOCALHOST為false以便禁止将 主機名映射為localhost:
explorer.mynetwork.com:
    ...
    environment:
    ...
    - DISCOVERY_AS_LOCALHOST=false           
  • 在啟動Fabric網絡後,運作如下指令啟動Hyperledger Explorer和explorer-db服務
cd /blockchain-explorer
docker-compose up -d           
  • 運作如下指令停止服務但不删除持久化資料:
docker-compose down           
  • 在docker-compose.yaml中,為持久化資料配置設定了兩個命名

    卷(用于postgresql資料和使用者錢包),運作以下指令清理

這些資料:

docker-compose down -v           

12.3 ~ 18.0

原文連結:

Hyperledger Explorer官方文檔中文版 - 彙智網