Hyperledger Explorer官方文檔中文版

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


Hyperledger Explorer官方文檔中文版


Hyperledger Fabric區塊鏈開發教程:

Fabric區塊鏈Node.js開發詳解Fabric區塊鏈Java開發詳解Fabric區塊鏈Golang開發詳解

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

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


Hyperledger Explorer官方文檔中文版

2.0 Hyperledger Explorer源代碼目錄結構

<code>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 \t 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/<code>

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倉庫以獲得最新版本:

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

5.0 PostgreSQL數據庫設置

首先進入app目錄:

<code>cd blockchain-explorer/app/<code>

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

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

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

<code>export DATABASE_HOST=127.0.0.1
export DATABASE_PORT=5432
export DATABASE_DATABASE=fabricexplorer
export DATABASE_USERNAME=hppoc
export DATABASE_PASSWD=pass12345/<code>

注意:在每次執行git pull之後,你可能需要修改數據庫目錄的 權限。執行以下命令進行權限修改:

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

接下來運行數據庫創建腳本。

在Ubuntu下執行如下命令:

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

在MacOS執行如下命令:

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

現在可以連接到PostgreSQL數據庫,運行DB狀態命令:

  • \\l:查看創建的fabricexplorer數據庫
  • \\d:查看創建的數據表

如果你的Postgresql啟用了TLS,請參考Postgresql官方文檔。

5.1 Hyperledger Explorer身份授權配置

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

<code>cd blockchain-explorer/app/<code>

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

<code>"jwt": {
"secret" : "a secret phrase!!",
"expiresIn": "2 days"
}/<code>

其中:

  • 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

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

<code>cd blockchain-explorer/app/platform/fabric/<code>

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

<code>{
"network-configs": {
"first-network": {

"name": "firstnetwork",
"profile": "./connection-profile/first-network.json",
"enableAuthentication": false
}
},
"license": "Apache-2.0"
}/<code>
  • first-network:是連接配置的名稱,可以隨意修改
  • name:你的fabric網絡的名字
  • profile:你的連接配置文件的路徑

修改JSON文件first-network.json中的連接配置信息:

  • 修改fabric-path指向你的fabric網絡硬盤路徑:1/blockchain-explorer/app/platform/fabric/connection-profile/first-network.json
  • 為adminPrivateKey配置選項提供完整的磁盤路徑,它通常 以_sk結尾,例如:1"/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的自動發現服務。
  • 參考CONFIG-FABCAR-HLEXPLORER.md 配置Fabcar示例網絡

7.2 為Hyperledger Explorer配置Balance Transfer示例

參考Hyperledger Fabric示例中的[]Balance Transfer Sample(https://github.com/hyperledger/fabric-samples/tree/release-1.4/balance-transfer) 為Hyperledger Explorer設置對Balance Transfer網絡的訪問。

參考文檔:CONFIG-BALANCE-TRANSFER-HLEXPLORER.md

8.0 Hyperledger Composer 設置

TODO

9.0 Hyperledger Cello設置

TODO

10.0 構建Hyperledger Explorer

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

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

<code>./main.sh install/<code>

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

<code>./main.sh clean/<code>

在終端執行如下命令測試REST API、UI組件並生成代碼覆蓋報告;

<code>./main.sh test/<code>

或者:

<code>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/<code>

10.1 配置Hyperledger Explorer啟用HTTPS

參考:CONFIG-HTTPS-HLEXPLORER.md

11.0 運行Hyperledger Explorer

首先進入應用目錄:

<code>cd blockchain-explorer/app/<code>

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

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

如果同步進程和Hyperledger Explorer不在同一臺主機上,那麼在 Explorer的explorerconfig.json中應當將同步類型設置為host:

<code>"sync": {
"type": "host"
}/<code>

如果同步進程和Hyperledger Explorer安裝在同一臺主機上,則設置 為local類型:

<code>"sync": {
"type": "local"
}/<code>

另外開啟一個終端:

  • cd blockchain-explorer/
  • ./start.sh 啟動後臺
  • ./start.sh debug 以調試方式啟動後臺
  • ./start.sh print 顯示幫助信息
  • 在瀏覽器中打開http(s)://localhost:8080
  • ./stop.sh 終止node服務器

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

  • cd blockchain-explorer/
  • ./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
<code>networks:
mynetwork.com:
external:
name: net_byfn/<code>
  • services > explorer.mynetwork.com > volumes
<code>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/<code>
  • 如果Hyperledger Explorer是通過橋接網絡連接到Fabric網絡 的,你需要設置DISCOVERY_AS_LOCALHOST為false以便禁止將 主機名映射為localhost:
<code>explorer.mynetwork.com:
...
environment:
...
- DISCOVERY_AS_LOCALHOST=false/<code>
  • 在啟動Fabric網絡後,運行如下命令啟動Hyperledger Explorer和explorer-db服務
<code>cd /blockchain-explorer docker-compose up -d/<code>
  • 運行如下命令停止服務但不刪除持久化數據:
<code>docker-compose down/<code>
  • 在docker-compose.yaml中,為持久化數據分配了兩個命名 卷(用於postgresql數據和用戶錢包),運行以下命令清理 這些數據:
<code>docker-compose down -v /<code>

12.3 ~ 18.0

TODO


原文鏈接:http://blog.hubwiz.com/2020/03/09/hyperledger-explorer-tutorial/


分享到:


相關文章: