https://github.com/hyperledger-labs/blockchain-explorer
官方浏览器的github地址
根据文档,采用docker容器的方法搭建explorer。

首先创建explorer的项目,

mkdir explorer

根据官方提供的文件,需要创建的目录结构如下:



这是官网提供的模板

wget https://raw.githubusercontent.com/hyperledger/blockchain-explorer/main/examples/net1/config.jsonwget https://raw.githubusercontent.com/hyperledger/blockchain-explorer/main/examples/net1/connection-profile/test-network.json -P connection-profilewget https://raw.githubusercontent.com/hyperledger/blockchain-explorer/main/docker-compose.yaml

配置文件

这里的organizations就是你搭建区块链网络的证书配置文件crypto-config文件,因为之前的网络创建的是两个组织,所以配置了两个json文件
这是组织一的network的json文件配置

{"name": "org1-network","version": "1.0.0","client": {"tlsEnable": true,"adminCredential": {"id": "exploreradmin","password": "exploreradminpw"},"enableAuthentication": true,"organization": "Org1MSP","connection": {"timeout": {"peer": {"endorser": "300"},"orderer": "300"}}},"channels": {"mychannel": {"peers": {"peer0.org1.example.com": {}}}},"organizations": {"Org1MSP": {"mspid": "Org1MSP","adminPrivateKey": {"path": "/tmp/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/priv_sk"},"peers": ["peer0.org1.example.com"],"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": {"tlsCACerts": {"path": "/tmp/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt"},"url": "grpcs://peer0.org1.example.com:7051"}}}

这是组织二的network的json文件配置

{"name": "org2-network","version": "1.0.0","client": {"tlsEnable": true,"adminCredential": {"id": "exploreradmin",//登录浏览器的id"password": "exploreradminpw"//密码},"enableAuthentication": true,"organization": "Org2MSP","connection": {"timeout": {"peer": {"endorser": "300"},"orderer": "300"}}},"channels": {"mychannel": {"peers": {"peer0.org2.example.com": {}}}},"organizations": {"Org2MSP": {"mspid": "Org2MSP","adminPrivateKey": {"path": "/tmp/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/priv_sk"},"peers": ["peer0.org2.example.com"],"signedCert": {"path": "/tmp/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts/Admin@org2.example.com-cert.pem"}}},"peers": {"peer0.org2.example.com": {"tlsCACerts": {"path": "/tmp/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt"},"url": "grpcs://peer0.org2.example.com:9051"}}}

然后配置config.json文件

{"network-configs": {"org1-network": {"name": "org1-network","profile": "./connection-profile/org1-network.json"},"org2-network": {"name": "org2-network","profile": "./connection-profile/org2-network.json"}},"license": "Apache-2.0"}

最后配置docker-compose.yaml文件

# SPDX-License-Identifier: Apache-2.0version: '2.1'volumes:pgdata:walletstore:networks:mynetwork.com:name: fixtures_testservices:explorerdb.mynetwork.com:image: hyperledger/explorer-db:latestcontainer_name: explorerdb.mynetwork.comhostname: explorerdb.mynetwork.comenvironment:- DATABASE_DATABASE=fabricexplorer- DATABASE_USERNAME=hppoc- DATABASE_PASSWORD=passwordhealthcheck:test: "pg_isready -h localhost -p 5432 -q -U postgres"interval: 30stimeout: 10sretries: 5volumes:- pgdata:/var/lib/postgresql/datanetworks:- mynetwork.comexplorer.mynetwork.com:image: hyperledger/explorer:latestcontainer_name: explorer.mynetwork.comhostname: explorer.mynetwork.comenvironment:- DATABASE_HOST=explorerdb.mynetwork.com- DATABASE_DATABASE=fabricexplorer- DATABASE_USERNAME=hppoc- DATABASE_PASSWD=password- LOG_LEVEL_APP=info- LOG_LEVEL_DB=info- LOG_LEVEL_CONSOLE=debug- LOG_CONSOLE_STDOUT=true- DISCOVERY_AS_LOCALHOST=false- PORT=${PORT:-8080}volumes:- ./config.json:/opt/explorer/app/platform/fabric/config.json- ./connection-profile:/opt/explorer/app/platform/fabric/connection-profile- ./organizations:/tmp/crypto- walletstore:/opt/explorer/walletports:- 8080:8080depends_on:explorerdb.mynetwork.com:condition: service_healthynetworks:- mynetwork.com

开始运行docker-compose.yaml文件
创建explorer、explorerdb两个容器

通过浏览器访问explorer:
127.0.0.1:8080,登录区块链浏览器。