Hyperledger Fabric项目搭建区块链浏览器

1.下载配置文件

区块链浏览器官网:https://github.com/hyperledger/blockchain-explorer

# 根据官网来部署
# 在项目目录创建文件夹
# org1部署区块浏览器
mkdir explorer
cd explorer
# 下载配置文件
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
# 如果虚拟机没有联网,导致下载不下来,可以在官网点击三个配置文件,自己创建相对应名称,复制并保存,
# config.json与docker-compose.yaml直接放在explorer文件夹下,
# 但注意test-network.json,需要先新建connection-profile文件夹,然后将test-network.json放入connection-profile文件夹内


如果虚拟机没有联网,导致下载不下来,也可以前往Fabric-explorer附件下载进行下载,之后在本地根据需要修改,修改后上传到虚拟机

2.拷贝证书目录

mkdir organizations
cp -r ../crypto-config/* organizations
cd explorer

此时目录结构如下图所示

3.以两个组织,每个组织一个peer结点为例修改配置文件

3.1修改test-network.json—— 网络配置文件,包含身份的指定

# 先修改test-network.json文件为org1-network.json
mv test-network.json org1-network.json
# 进入修改org1-network.json中对应参数
vim org1-network.json
# 修改证书连接文件
# 将用户的证书替换为连接配置文件 (test-network.json) 中的管理员证书和机密(私钥)
修改前
"adminPrivateKey": {"path": "/tmp/crypto/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/priv_sk"
}
修改后,将User1@org1.example.com改为Admin@org1.example.com
"adminPrivateKey": {"path": "/tmp/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/priv_sk"
}
# 修改完毕保存退出# 拷贝一份并命名为org2-network.json
cp org1-network.json org2-network.json
# 修改org2-network.json中对应参数
vim org2-network.json
#将所有的Org1修改文Org2,如下所示
Org1MSP -----> Org2MSP,org1 -----> org2
# 修改完毕保存退出
#或者使用sed
sed -i "s/org1/org2/g" org2-network.json
sed -i "s/Org1/Org2/g" org2-network.json

3.2.修改config.json——多网络配置文件

# config.json文件内只配置了一个组织的网络,所以需要添加第二个组织网络
vim config.json
# 修改为以下配置
{"network-configs": {"org1-network": {      // 需要和org1-network.json中的名称对应"name": "org1-network","profile": "./connection-profile/org1-network.json"     // 对应配置文件},"org2-network": {      // 需要和org2-network.json中的名称对应"name": "org2-network","profile": "./connection-profile/org2-network.json"     // 对应配置文件}},"license": "Apache-2.0"
}
# 修改完毕后退出

3.3修改docker-compose——部署配置文件

首先要找到fabric使用网络的名字,运行区块链项目,之后输入docker network ls找出区块链网络

docker network ls


之后输入

vim docker-compose.yaml

docker-compose.yaml修改后如下:

version: '2.1'volumes:pgdata:walletstore:networks:mynetwork.com:external:name: multinodes_default    # 修改为自己的fabric网络services:explorerdb.mynetwork.com:image: hyperledger/explorer-db:latestcontainer_name: explorerdb.mynetwork.comhostname: explorerdb.mynetwork.comports:     # 暴露端口- 5432:5432restart: always    # 增加重启参数environment:- DATABASE_DATABASE=fabricexplorer  # db 库- DATABASE_USERNAME=exploreradmin   # db 账户- DATABASE_PASSWORD=exploreradminpw  # db 密码healthcheck:test: "pg_isready -h localhost -p 5432 -q -U postgres"interval: 30stimeout: 10sretries: 5volumes:- pgdata:/var/lib/postgresql/data- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime    # 与本机时间保持一致- /etc/hosts:/etc/hosts    # 映射hosts文件,否则会连接不了其它节点,或者添加extra_hosts参数networks:- mynetwork.comexplorer.mynetwork.com:image: hyperledger/explorer:latestcontainer_name: explorer.mynetwork.comhostname: explorer.mynetwork.comenvironment:- DATABASE_HOST=explorerdb.mynetwork.com- DATABASE_DATABASE=fabricexplorer  # 与上方db 库、账号、密码保持一致- DATABASE_USERNAME=exploreradmin- DATABASE_PASSWD=exploreradminpw- LOG_LEVEL_APP=info- LOG_LEVEL_DB=info- LOG_LEVEL_CONSOLE=debug- LOG_CONSOLE_STDOUT=true# 浏览器是否开启远程访问, true表示只有部署的机器可以访问- DISCOVERY_AS_LOCALHOST=falsevolumes:- ./config.json:/opt/explorer/app/platform/fabric/config.json- ./connection-profile:/opt/explorer/app/platform/fabric/connection-profile- ../crypto-config:/tmp/crypto  # 映射证书目录- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime- /etc/hosts:/etc/hosts- walletstore:/opt/explorer/walletports:- 8080:8080restart: alwaysdepends_on:explorerdb.mynetwork.com:condition: service_healthynetworks:- mynetwork.com

4.启动区块链浏览器

docker-compose -f docker-compose.yaml up -d
# 如果是第一次启动,他会自动拉取浏览器镜像
# 如果虚拟机没有网络的话需要提前在外网拉取好explorer-db与explorer,然后导入到相应虚机
docker pull hyperledger/explorer-db:latest
docker pull hyperledger/explorer:latest
docker ps
#结果应该如下所示
CONTAINER ID   IMAGE                              COMMAND                  CREATED          STATUS                    PORTS                                       NAMES
72d7227b1306   hyperledger/explorer:latest        "docker-entrypoint.s…"   39 seconds ago   Up 3 seconds              0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   explorer.mynetwork.com
5ac9b1f927cb   hyperledger/explorer-db:latest     "docker-entrypoint.s…"   39 seconds ago   Up 36 seconds (healthy)   5432/tcp                                    explorerdb.mynetwork.com
6735ebc7baf2   hyperledger/fabric-orderer:2.4.2   "orderer"                22 hours ago     Up 48 minutes             0.0.0.0:7050->7050/tcp, :::7050->7050/tcp   orderer.example.com

若要关闭区块链浏览器需要在explorer路径下输入

docker-compose down -v(此处-v不能去掉,因为删除持久化数据才能在下一次启动区块链浏览器时启动成功)

5.访问区块链浏览器

可以直接在虚拟机内浏览器输入localhost:8080访问区块链浏览器,也可在宿主机输入虚拟机(服务器)ip:8080(需要开放端口)访问

explorer账号:exploreradmin
explorer密码:exploreradminpw

登录之后可以查看区块链网络、区块和交易等信息。

6.组织内多个peer结点的配置文件

若项目是组织内出现两个peer结点的网络,如果想要配置这种网络的配置文件,只需要将org1-network.json内所有出现peer0的位置同步加上peer1即可,多个peer结点同理多加几个peer即可,如下所示

{"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": {},//加上peer1"peer1.org1.example.com": {}},"connection": {"timeout": {"peer": {"endorser": "6000","eventHub": "6000","eventReg": "6000"}}}}},"organizations": {"Org1MSP": {"mspid": "Org1MSP","adminPrivateKey": {"path": "/tmp/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/priv_sk"},//加上peer1"peers": ["peer0.org1.example.com","peer1.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"},//加上peer1"peer1.org1.example.com": {"tlsCACerts": {"path": "/tmp/crypto/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt"},"url": "grpcs://peer1.org1.example.com:9051"}}
}

7 部署问题

如果部署后出现FabricGateway - Failed to create wallet,pleasse check the configureration, and valide file path:{},如下图所示:

如果检查不出来有什么问题,可能是你的json文件格式在复制粘贴时出现了问题,可以前往Fabric-explorer附件进行下载,之后根据自己的fabric网络有几个组织、几个peer结点来修改json文件

Hyperledger Fabric项目搭建区块链浏览器Hyperledger-blockchain-explorer相关推荐

  1. Hyperledger Fabric 1.4 搭建区块链浏览器

    Hyperledger Fabric 1.4 搭建区块链浏览器 原创iCyberpunk 最后发布于2020-01-09 12:11:01 阅读数 233  收藏 展开 1. 准备工作 安装nodej ...

  2. 搭建区块链浏览器——基于hyperledger fabric 1.0,MySQL容器

    搭建区块链浏览器--基于hyperledger fabric 1.0,MySQL容器 区块链 hyperledger fabric 浏览器 MySQL docker  Contents 环境要求 分支 ...

  3. (Fabric学习八)部署区块链浏览器Hyperledger explorer

    区块链浏览器Hyperledger explorer: 区块链浏览器:官方网站https://github.com/hyperledger-labs/blockchain-explorer 可以看到他 ...

  4. “Hyperledger Fabric 是假区块链!”

    作者 | Stuart Popejoy 编译 | 王国玺 出品 | 区块链大本营(blockchain_camp) 自 Libra 发布以来,沉寂已久的区块链社区又活跃了起来,一些探索区块链业务的公司 ...

  5. fabric中简单搭建区块链浏览器

    区块链浏览器可以让项目更直观的展示 前期准备 安装git,mysql,node,npm,各版本如下图 一 从github上拉取项目 git clone https://github.com/hyper ...

  6. Hyperledger Fabric 超级账本 区块链技术 概述 优点

    超级账本概述 区块链的第一个也是最被广泛认可的应用是比特币,另一种加密货币以太坊采取了不同的方法,它集成了许多与比特币相同的特征,添加了智能合约来创建分布式应用程序的平台.比特币和以太坊属于区块链,我 ...

  7. Fabric 超级账本学习【8】Hyperledger Fabric 实战——基于区块链的学历学位系统

    文章目录 摘要 安装部署 基于区块链的学历学位系统 报错1如下 报错原因:config.yaml 配置文件中的证书路径错误 访问基于区块链的学历学位系统 登录 基于区块链的学历学位系统 添加高等教育学 ...

  8. (区块链溯源)基于Hyperledger Fabric 的农产品区块链溯源方法

    1. 技术背景 溯源技术中产品溯源是将当前先进的物联网技术.自动控制技术.自动识别技术. 互联网技术结合利用,通过专业的机器设备对单件产品赋予唯一的二维码或条形码等作为防伪身份证,实现"一物 ...

  9. blockchain-explorer搭建区块链浏览器平台

    源码地址 https://github.com/hyperledger/blockchain-explorer 借鉴网址: https://blog.csdn.net/github_39365240/ ...

最新文章

  1. OpenCV 2.4.9-2.4.13各个版本附加依赖项Lib文件汇总
  2. 【Ubuntu】Windows硬盘安装Ubuntu14.04
  3. R 笔记 prophet
  4. Eclipse自动生成返回值对象与补全与加注释
  5. 侯捷面向对象编程C++
  6. java如何获得当前文件路径
  7. shmmax单位_kernel.shmmax ,kernel.shmmni 和kernel.shmall
  8. Spring基于状态机squirrel-foundation简单使用
  9. Springboot2.x使用redis作为缓存
  10. python3.6.1+selenium3.0环境安装问题及解决方法
  11. 挖矿为什么要用显卡_你知道为什么挖矿用显卡,而不用CPU吗?
  12. 轻松决绝疑难杂症:nodejs使用http报错: Request path contains unescaped characters
  13. IOS小工具以及精彩的博客
  14. 光通信仿真软件Optisystem 15.0 学习版
  15. python分布式定时任务_分布式定时任务框架——python定时任务框架APScheduler扩展...
  16. 局域网文件服务器带宽,高带宽局域网
  17. optimizer.zero_grad()
  18. 道路车辆ISO20653标准中IPX9K试验方法
  19. SSH远程管理及sshd服务支持验证方式
  20. git push 之后如何不用回滚或者abandoned方式等修改已提交代码呢?

热门文章

  1. 干货分享|巧用CSS滤镜绘制安卓手机充电动效(uni-app|view组件版)
  2. 微信小程序示例 - 小相册
  3. jz2440 ----移植自制的USB RTL8188EUS网卡驱动
  4. Python字符串比较
  5. C语言scramp函数,【C语言】实现strcat
  6. Selenium 常用函数总结
  7. Shopee虾皮SRE工程师HR面面经
  8. git连接华为软件开发云
  9. 呕心沥血,悉心打磨-开发的产品
  10. Flutter 顶部导航 AppBar 的实现