安装blockchain-explorer区块浏览器

概述

最近在做区块链相关项目(基于hyperledger fabric),需要能够实时监测区块链网络中的信息。好在hyperledger官方提供了一个区块浏览器(也就是blockchain-explorer),也就不用自己对照API进行开发了。
目前网上的区块链博客相对较少,关于此区块浏览器的安装资料还停留在1.4版本(本文基于hyperledger fabric测试网络2.1版本);且基本上都是采用代码库方式安装,需要手动安装postgreSQL、npm、Nodejs、jq等多种组件,非常麻烦,因此本文提供一种基于Docker-Compose进行安装的方式。

官方github地址:https://github.com/hyperledger/blockchain-explorer

准备条件

  • 已经安装了Docker环境,并且已经启动了
  • 已经成功启动了hyperledger fabric的测试网络,或者你自己部署的生产网络

开始安装

1. 拉取docker镜像

如果你运行过first-network.sh(1.x)或者test-network.sh(2.x),那么以下docker镜像会被自动拉取到本地

2. 准备启动文件

执行下方命令下载文件

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

启动测试网络后会在fabric-samples下的first-network目录下(1.x)或test-network目录(2.x)生成organizations目录,该目录下存放着各个组织、节点的加密证书信息。
在这里插入图片描述
将organizations目录复制到你刚刚下载文件所在的目录。那么此时该路径下目录结构如下所示
在这里插入图片描述

3. 修改配置文件
  • 修改docker-compose.yaml文件
    在这里插入图片描述
    如果你对docker-compse比较了解,请按照自己的情况修改;如果不了解,请按照我下面给出的方式修改,你可以修改得和我一摸一样。
    找到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/wallet

意思就是
(a)将容器中的/opt/explorer/app/platform/fabric/config.json文件挂在到当前目录下的config.json文件
(b)将容器中的/opt/explorer/app/platform/fabric/connection-profile目录,挂在到当前目录下的connection-profile目录
(c)将容器中的/tmp/crypto目录,挂在到当前目录中的organizations目录
(d)将容器中的/opt/explorer/wallet挂在walletstore。此处使用的是卷标方式,如果想知道walletstore的具体地址可以执行如下命令进行查看

docker volume ls | grep walletstore
docker volume inspect myexplorer_walletstore

在这里插入图片描述
(e)ports:由于我服务器中的8080端口被占用了,因此我将容器中的8080端口映射到本地的18080端口,你可以自由更改为一个未冲突的端口,或者不修改(选做
(f)environment:如果你使用的是虚拟机且使用桥接方式将资源管理器连接到结构网络,那么你需要在environment标签下添加如下设置以禁用主机名到LOCALHOST的映射(选做

- DISCOVERY_AS_LOCALHOST=false
  • 进入connection-profile目录修改test-network.json文件

修改的地方主要在于
(a)organizations.Org1MSP.adminPrivateKey.path
此值改为:/tmp/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/728adf3380e5afc3a5471c74d15e59386f10c3671e91a24d187e82bf6377a8d8_sk
(b)organizations.Org1MSP.signedCert.path
此值改为:/tmp/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/cert.pem
(c)peers.peer0.org1.example.com.tlsCACerts.path
此值改为:/tmp/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
在这里插入图片描述
下面解释一下:
在上一步修改docker-compse步骤c中,我们将容器中的/tmp/crypto目录,挂在到当前目录中的organizations目录,这两个目录可以理解为相互同步,那么我们在此处a步骤中将organizations.Org1MSP.adminPrivateKey.path设置为/tmp/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/728adf3380e5afc3a5471c74d15e59386f10c3671e91a24d187e82bf6377a8d8_sk其实设置的是…/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/728adf3380e5afc3a5471c74d15e59386f10c3671e91a24d187e82bf6377a8d8_sk,但是我们必须设置为容器中的路径,否则读不到。此处b、c中的设置原因同。

4. 启动

切换到上层即docker-compose所在目录,执行如下命令启动项目

docker-compose up

观察日志,是否出错。如果出错,根据日志中的错误进行修改;如果未出错,直接CTRL+C结束掉,然后执行如下命令后台启动。之所以不直接后台启动是为了方便观察启动日志。
tips:

  1. 如果这里报net_test网络找不到,说明你用的是最新版网络,2.3版本已经将网络名改为fabric_test了,修改docker-compose文件,将networks.mynetwork.com.external.name字段由net_test改为fabric_test即可
  2. 前台启动时无论是否出错,CTRL+C停止后执行以下命令以进行一些容器关闭后的清除工作,防止一些环境未重置引发不必要的错误
    docker-compose down
    在这里插入图片描述
docker-compose up -d
5. 访问
  • 开放端口(如果你在docker-compose文件中没有更改就是8080)
  • 浏览器访问http://服务器ip:8080
    用户名和密码在connection-profile目录下的test-network.json文件中,默认
    用户名:exploreradmin
    密码:exploreradminpw
    登录之后界面如下所示
    在这里插入图片描述
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值