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狀态指令:
-
:檢視建立的fabricexplorer資料庫\l
-
:檢視建立的資料表\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的自動發現服務。
- 參考 CONFIG-FABCAR-HLEXPLORER.md 配置Fabcar示例網絡
7.2 為Hyperledger Explorer配置Balance Transfer示例
Balance Transfer Sample為Hyperledger Explorer設定對Balance Transfer網絡的通路。
參考文檔:
CONFIG-BALANCE-TRANSFER-HLEXPLORER.md8.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.md11.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-db12.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官方文檔中文版 - 彙智網