Hyperledger-Explorer實驗教程

一、簡介
Hyperledger Explorer是一個簡單,功能強大,易于使用,高度可維護的開源瀏覽器,用于查看底層區塊鏈網路上的活動,
二、本機環境
系統:Ubuntu 16.04
docker: 19.03.12
docker-compose:1.26.2
node.js: v12.16.0
npm: 6.13.4
PostgreSQL:9.5.21
| Hyperledger Explorer版本 | 支持的fabric版本 | 支持的NodeJS版本 |
|---|---|---|
| v1.1.1(2020年7月17日) | v1.4.0至v2.1.1 | 12.16.x |
| v1.1.0(2020年7月1日) | v1.4.0至v2.1.1 | 12.16.x |
| v1.0.0(2020年4月9日) | v1.4.0至v1.4.8 | 10.19.x |
| v1.0.0-rc3(2020年4月1日) | v1.4.0至v1.4.6 | 10.19.x |
| v1.0.0-rc2(2019年12月10日) | v1.4.0至v1.4.4 | 8.11.x |
| v1.0.0-rc1(2019年11月18日) | v1.4.2 | 8.11.x |
| v0.3.9.5(2019年9月8日) | v1.4.2 | 8.11.x |
三、專案代碼地址
https://github.com/hyperledger/blockchain-explorer
四、安裝
1、安裝PostgreSQL方法
https://www.jianshu.com/p/40e35ff27e41
2、安裝node方法
安裝nvm
$ sudo apt update
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.10/install.sh | bash
$ export NVM_DIR="$HOME/.nvm"
$ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
安裝node
nvm install v12.16.0
npm換源
npm config set registry https://registry.npm.taobao.org #換成淘寶的源
查看換源結果
npm config list

3、安裝docker以及docker-compose
安裝docker(^v1.13)
curl -sSL https://get.daocloud.io/docker | sh
安裝docker-compose(^1.8)
curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

配置阿里云鏡像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://ttbxsd4q.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

4、安裝git
apt install git
5、安裝go
下載指定版本go
https://golang.google.cn/dl/go1.14.7.linux-amd64.tar.gz
#https://golang.google.cn/dl/
解壓縮
tar -C /usr/local -xzf go1.14.7.linux-amd64.tar.gz
配置環境變數
vim /etc/profile
加入以下內容
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export GOROOT=/usr/local/go
配置go mod
vim /etc/profile
加入以下內容
export GO111MODULE=on
export GOPROXY=https://mirrors.aliyun.com/goproxy/
五、操作步驟
0x01啟動測驗網路
1、下載fabric-samples
mkdir -p go/src/github.com/hyperledger
git clone -b v1.4.4 https://github.com/hyperledger/fabric-samples.git
2、安裝fabric
https://github.com/hyperledger/fabric/releases/download/v1.4.4/hyperledger-fabric-linux-amd64-1.4.4.tar.gz
(下載到本地解壓縮后放到hyperledger目錄下)
export PATH/home/kxh/go/src/github.com/hyperledger:$PATH #配置環境變數
3、啟動測驗網路
cd fabric-samples/first-network
./byfn.sh -m generate #生成證書和秘鑰
./byfn.sh -m up # 啟動網路

0x02下載 blockchain-explorer
git clone -b v1.1.1 https://github.com/hyperledger/blockchain-explorer.git
0x03 資料庫設定
cd blockchain-explorer/app
1、修改 app/explorer/config.json 更新資料庫設定
"postgreSQL": {
"host": "127.0.0.1",
"port": "5432", #可事先查看該埠有沒有被占用,如果被占用換一個可用埠
"database": "fabricexplorer",
"username": "hppoc",
"passwd": "password"
}
0x04更新fabric網路連接組態檔
1、修改app/platform/fabric/config.json定義fabric網路連接組態檔
{
"network-configs": {
"first-network": {
"name": "firstnetwork",
"profile": "./connection-profile/first-network.json", #定義了連接組態檔的地址,十分重要
"enableAuthentication": false
}
},
"license": "Apache-2.0"
}
2、修改first-network.json
{
"organizations": {
"Org1MSP": {
"mspid": "Org1MSP",
"adminPrivateKey": {
"path": "/home/kxh/go/src/github.com/hyperledger/fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/8c800cc6a81e81162cabb954da90f3e71d2d9d41096fe0827ede935ca6f694c6_sk"
},
"peers": ["peer0.org1.example.com"],
"signedCert": {
"path": "/home/kxh/go/src/github.com/hyperledger/fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem"
}
}
},
"peers": {
"peer0.org1.example.com": {
"tlsCACerts": {
"path": "/home/kxh/go/src/github.com/hyperledger/fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt"
},
"url": "grpcs://localhost:7051",
"grpcOptions": {
"ssl-target-name-override": "peer0.org1.example.com"
}
}
},
"certificateAuthorities": {
"ca0": {
"url": "https://localhost:7054",
"httpOptions": {
"verify": false
},
"tlsCACerts": {
"path": "/home/kxh/go/src/github.com/hyperledger/fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem"
},
"caName": "ca0-org1"
}
}
}
該檔案需要根據本機具體環境修改其中的 path值,該檔案定義了連接fabric網路的資訊
0x05創建資料庫
cd blockchain-explorer/app/persistence/fabric/postgreSQL/db
node processenv.js
sudo -u postgres ./createdb.sh # 執行該命令之前,先將第六行的node processenv.js命令注釋掉
1、連接 PostgreSQL資料庫,運行資料庫命令
$ sudo -u postgres psql -c '\l'
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
----------------+----------+----------+---------+---------+-----------------------
fabricexplorer | hppoc | UTF8 | C.UTF-8 | C.UTF-8 |
postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 |
template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
$ sudo -u postgres psql fabricexplorer -c '\d'
List of relations
Schema | Name | Type | Owner
--------+---------------------------+----------+-------
public | blocks | table | hppoc
public | blocks_id_seq | sequence | hppoc
public | chaincodes | table | hppoc
public | chaincodes_id_seq | sequence | hppoc
public | channel | table | hppoc
public | channel_id_seq | sequence | hppoc
public | orderer | table | hppoc
public | orderer_id_seq | sequence | hppoc
public | peer | table | hppoc
public | peer_id_seq | sequence | hppoc
public | peer_ref_chaincode | table | hppoc
public | peer_ref_chaincode_id_seq | sequence | hppoc
public | peer_ref_channel | table | hppoc
public | peer_ref_channel_id_seq | sequence | hppoc
public | transactions | table | hppoc
public | transactions_id_seq | sequence | hppoc
public | write_lock | table | hppoc
public | write_lock_write_lock_seq | sequence | hppoc
0x06 構建Hyperledger Explorer
./main.sh install # 在blockchain-explorer目錄下執行,改腳本檔案負責安裝依賴,運行test、構建專案
六、啟動網路
./start.sh # 在blockchain-explorer目錄下執行
打開瀏覽器,輸入:http://localhost:8080 進入區塊鏈瀏覽器頁面
七、效果演示







轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/179072.html
標籤:AI
上一篇:2020-10-17
