1、docker安装Hyperledger explorer

步骤一、下载
git clone https://github.com/hyperledger/blockchain-explorer.git

步骤二、拷贝证书文件

拷贝fabric的crypto-config目录下的两个文件夹(ordererOrganizations、peerOrganizations)到blockchain-explorer/examples/net1/crypto 目录下

配置文件

步骤三、修改连接配置文件config.json

修改examples 目录下的config.json
配置文件

1
2
3
4
5
6
7
8
9
{
"network-configs": {
"hello": {
"name": "helloworld",
"profile": "./connection-profile/hello.json"
}
},
"license": "Apache-2.0"
}

其中profile为fabric连接文件。

步骤四、添加Fabric连接文件
将连接文件放到examples/net1/connection-profile目录下,连接文件hello.json的内容为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69

{
"name": "hello",
"version": "1.0.0",
"license": "Apache-2.0",
"client": {
"tlsEnable": true,
"adminUser": "admin",
"adminPassword": "adminpw",
"enableAuthentication": false,
"organization": "Org1",
"connection": {
"timeout": {
"peer": {
"endorser": "300"
},
"orderer": "300"
}
}
},
"channels": {
"mychannel": {
"peers": {
"peer0.org1.example.com": {}
},
"connection": {
"timeout": {
"peer": {
"endorser": "6000",
"eventHub": "6000",
"eventReg": "6000"
}
}
}
}
},
"organizations": {
"Org1MSP": {
"mspid": "Org1MSP",
"fullpath": true,
"adminPrivateKey": {
"path": "/tmp/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/f5f0ce356534b957f56daf2880688c02982ae234af215bd4ee732cd6d548845e_sk"
},
"signedCert": {
"path": "/tmp/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem"
},
"peers": [
"peer0.org1.example.com",
"peer1.org1.example.com",
"peer2.org1.example.com"
],
"certificateAuthorities": [
"ca.org1.example.com"
]
}
},
"peers": {
"peer0.org1.example.com": {
"tlsCACerts": {
"path": "/tmp/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt"
},
"url": "grpcs://peer0.org1.example.com:7051",
"eventUrl": "grpcs://peer0.org1.example.com:7053",
"grpcOptions": {
"ssl-target-name-override": "peer0.org1.example.com"
}
}
}
}

***步骤五、修改docker-compose配置文件
通过docker启动explorer可以避免一些安装污染宿主机已有的环境,docker-compose.yaml主要包含了postgresql数据库和explorer工程node运行环境。

修改docker-compose.yaml docker服务配置文件
主要修改几个内容:

  • networks 改成与区块链同个网络便于访问区块链

  • 配置explorerdb.mynetwork.com
    添加端口和网络

    1
    2
    3
    4
    ports:
    - 5432:5432
    networks:
    - mynetwork.com
  • 配置explorer.mynetwork.com
    添加端口和网络

    1
    2
    3
    4
    ports:
    - 8090:8080
    networks:
    - mynetwork.com

整体配置文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75

# SPDX-License-Identifier: Apache-2.0
version: '2.1'

volumes:
pgdata:
walletstore:
grafana-storage:
prometheus-storage:

networks:
mynetwork.com:
external:
name: helloworld_hello

services:

explorerdb.mynetwork.com:
image: hyperledger/explorer-db:latest
container_name: explorerdb.mynetwork.com
hostname: explorerdb.mynetwork.com
environment:
- DATABASE_DATABASE=fabricexplorer
- DATABASE_USERNAME=hppoc
- DATABASE_PASSWORD=password
volumes:
- ./app/persistence/fabric/postgreSQL/db/createdb.sh:/docker-entrypoint-initdb.d/createdb.sh
- pgdata:/var/lib/postgresql/data
ports:
- 5432:5432
networks:
- mynetwork.com

explorer.mynetwork.com:
image: hyperledger/explorer:latest
container_name: explorer.mynetwork.com
hostname: explorer.mynetwork.com
environment:
- DATABASE_HOST=explorerdb.mynetwork.com
- DATABASE_USERNAME=hppoc
- DATABASE_PASSWD=password
- DISCOVERY_AS_LOCALHOST=false
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
- walletstore:/opt/wallet
command: sh -c "sleep 16&& node /opt/explorer/main.js && tail -f /dev/null"
ports:
- 8090:8080
networks:
- mynetwork.com

proms:
container_name: proms
image: prom/prometheus:latest
volumes:
- ./app/platform/fabric/artifacts/operations/balance-transfer/prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus-storage:/prometheus
ports:
- '9090:9090'
networks:
- mynetwork.com

grafana:
container_name: grafana
image: grafana/grafana:latest
volumes:
- ./app/platform/fabric/artifacts/operations/balance-transfer/balance-transfer-grafana-dashboard.json:/var/lib/grafana/dashboards/mydashboard.json
- ./app/platform/fabric/artifacts/operations/grafana_conf/provisioning:/etc/grafana/provisioning
- grafana-storage:/var/lib/grafana
ports:
- '3000:3000'
networks:
- mynetwork.com

2、运行docker-compose

在blockchain-explorer目录下执行

1
2

docker-compose up -d

如果出现错误一般情况下是Fabric连接文件或证书文件有错。

运行后在浏览器打开http://localhost:8090/,如下图所示:

explorer