Hyperledger Explorer 部署

Hyperledger Explorer 是一款简单,功能强大,易于使用且易于维护的开源浏览器,目的是为了能够监控链码、查看区块、调用链码等,这个项目目前还在发展中,所能支持的功能有限,目前版本(release-3.6)只支持查询功能,能够查看网络组成、区块、交易内容、链码、通道信息等。

fabric-samples & hyperledger-explorer

通过结合first-network网络来部署 hyperledger-explorer 
先参考 Hyperledger Fabric 超级账本 搭建网络 fabric-samples 教程启动一个 fabric-first-network 建议版本为v1.2.0、v1.2.1、v.1.4~v.1.44

安装基础软件

本次实验基于CentOS7,Ubuntu系统类似

  • nodejs 8.11.x (对于版本9.x还不支持)

  • PostgreSQL 9.5 以上

  • Jq (yum install jq -y)

  • docker 17.06.2-ce [https://www.docker.com/community-edition]

  • docker-compose 1.14.0 [https://docs.docker.com/compose/]

1.0 CentOS 安装nodejs

 

@ 安装nodejs

1. CentOS 安装nodejs

wget https://nodejs.org/dist/v8.11.0/node-v8.11.0-linux-x64.tar.gz

tar zxvf node-v8.11.0-linux-x64.tar.gz && cd node-v8.11.0-linux-x64/bin/ && ls -a

cp node npm /usr/bin

./npm install npm@6.4.1 -g

查看nodejs版本

node -v

v8.11.0

查看npm版本

npm -v

6.4.1

如果需要npm更新版本

npm i -g npm 或者 npm i -g npm@6.4.1

如果需要更新nodejs版本

npm i n -g

n stable 或者 n v8.12.0

2.0 CentOS 安装PostgreSQL (可选一)

进入官网:https://www.postgresql.org 、选择 Download -> CentOS -> Select Version 、这边演示版本 9.6 
Install the repository RPM:

yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

Install the client packages:

yum install postgresql96

Optionally install the server packages:

yum install postgresql96-server postgresql96-contrib

postgresql96-server - 数据库核心服务端 
postgresql96-contrib - 附加第三方扩展 
postgresql96-devel - C语言开发Header头文件和库

Optionally initialize the database and enable automatic start:

/usr/pgsql-9.6/bin/postgresql96-setup initdb 
systemctl enable postgresql-9.6 
systemctl start postgresql-9.6

开放防火墙

firewall-cmd –add-service=postgresql –permanent 
firewall-cmd –reload

设置postgresql密码

sudo -u postgres psql -c “ALTER USER postgres PASSWORD ‘postgres’;”

2.1 使用docker-compose安装PostgreSQL(可选二,建议)

在任意处创建目录pg

mkdir -p pg && cd pg 
在这个目录下创建并编辑文件postgresql.yaml

vim postgresql.yaml 
内容(拉取docker镜像)

 

version: '3.1'

services:

db:

image: postgres

restart: always

container_name: fabric.postgres.db

environment:

POSTGRES_PASSWORD: postgres

ports:

- 5432:5432

adminer:

image: adminer

restart: always

ports:

- 9090:8080

由于浏览器默认端口也是8080,我们可自定义端口号。 
保存之后启动容器

docker-compose -f postgresql.yaml up -d

Creating network “pg_default” with the default driver 
Creating fabric.postgres.db … done 
Creating pg_adminer_1 … 
这个时候postgresql服务暴露在端口5432,同时在端口9090有一个数据库可视化管理工具adminer

 

docker ps

CONTAINER ID IMAGE COMMAND CREATED PORTS NAMES

2b86d6244e8c postgres "docker-entrypoint.s…" 2 hours ago 0.0.0.0:5432->5432/tcp fabric.postgres.db

6ab723977140 adminer "entrypoint.sh docke…" 2 hours ago 0.0.0.0:9090->8080/tcp pg_adminer_1_920204f95ca8

3.0 下载hyperledger-explorer代码

下载hyperledger-explorer代码,选择对应的版本。 
本文使用版本 Fabric Version Supported v1.4.0 to v1.4.4

git clone https://github.com/hyperledger/blockchain-explorer.git && cd blockchain-explorer

自行选择、切换分支版本。(或者官网直接下载本地)

 

git branch -a && git fetch origin && git checkout release-3.6 && git branch

master

* release-3.6

remotes/origin/HEAD -> origin/master

remotes/origin/code-formatting

remotes/origin/development

remotes/origin/discovery

remotes/origin/fab-1.2-integration

remotes/origin/master

remotes/origin/react

remotes/origin/reactbranch

remotes/origin/rearchitects-react

remotes/origin/reducks

remotes/origin/release-3

remotes/origin/release-3.1

remotes/origin/release-3.2

remotes/origin/release-3.3

remotes/origin/release-3.4

remotes/origin/release-3.5

remotes/origin/release-3.6

remotes/origin/release-3.7

remotes/origin/release-3.8

M app/persistence/fabric/postgreSQL/db/createdb.sh

M app/persistence/fabric/postgreSQL/db/explorerpg.sql

M app/persistence/fabric/postgreSQL/db/processenv.js

M app/persistence/fabric/postgreSQL/db/updatepg.sql

M app/platform/fabric/config.json

M client/package-lock.json

Already on 'release-3.6'

master

* release-3.6

创建数据库表

进入到创建数据库表的目录

cd blockchain-explorer/app/persistence/fabric/postgreSQL/db

如果在安装PostgreSQL是采用2.2方式,那么需要修改createdb.sh

mv createdb.sh createdb.sh.bak && vim createdb

内容改为(替换blockchain-explorer路径)

 

#!/bin/bash

echo "Copying ENV variables into temp file..."

node processenv.js

if [ $( jq .DATABASE_USERNAME /tmp/process.env.json) == null ]; then

export USER=$( jq .postgreSQL.username ../../../../explorerconfig.json )

else

export USER=$( jq .DATABASE_USERNAME /tmp/process.env.json)

fi

if [ $(jq .DATABASE_DATABASE /tmp/process.env.json) == null ]; then

export DATABASE=$(jq .postgreSQL.database ../../../../explorerconfig.json )

else

export DATABASE=$(jq .DATABASE_DATABASE /tmp/process.env.json)

fi

if [ $(jq .DATABASE_PASSWORD /tmp/process.env.json) == null ]; then

export PASSWD=$(jq .postgreSQL.passwd ../../../../explorerconfig.json | sed "y/\"/'/")

else

export PASSWD=$(jq .DATABASE_PASSWORD /tmp/process.env.json | sed "y/\"/'/")

fi

echo "USER=${USER}"

echo "DATABASE=${DATABASE}"

echo "PASSWD=${PASSWD}"

if [ -f /tmp/process.env.json ] ; then

rm /tmp/process.env.json

fi

echo "Executing SQL scripts..."

case $OSTYPE in

darwin*) psql postgres -v dbname=$DATABASE -v user=$USER -v passwd=$PASSWD -f ./explorerpg.sql ;

psql postgres -v dbname=$DATABASE -v user=$USER -v passwd=$PASSWD -f ./updatepg.sql ;;

linux*) docker run -it --network pg_default -v /data/pg/blockchain-explorer/app/persistence/fabric/postgreSQL/db:/db --rm --link fabric.postgres.db:postgres postgres psql -h postgres -U postgres -v dbname=$DATABASE -v user=$USER -v passwd=$PASSWD -f /db/explorerpg.sql ;

docker run -it --network pg_default -v /data/pg/blockchain-explorer/app/persistence/fabric/postgreSQL/db:/db --rm --link fabric.postgres.db:postgres postgres psql -h postgres -U postgres -v dbname=$DATABASE -v user=$USER -v passwd=$PASSWD -f /db/updatepg.sql ;;

esac

设置权限

mv createdb createdb.sh && chmod +x createdb.sh

执行脚本创建数据库

./createdb.sh 
期间会有两次密码输入,密码都是postgres

配置fabric

进入到fabric配置目录

cd blockchain-explorer/app/platform/fabric

默认目录下的config.json文件中所有的密钥、证书路径都是以fabric-path替代的,因此需要替换成对应fabric-samples的路径

fabirc-path\替换你自己fabric-samples路径

检查 adminPrivateKey、signedCert、tlsCACerts等对应的文件是否相同、请务必一致!!!

vim config.json

 

{

"network-configs": {

"network-1": {

"version": "1.0",

"clients": {

"client-1": {

"tlsEnable": true,

"organization": "Org1MSP",

"channel": "mychannel",

"credentialStore": {

"path": "./tmp/credentialStore_Org1/credential",

"cryptoStore": {

"path": "./tmp/credentialStore_Org1/crypto"

}

}

}

},

"channels": {

"mychannel": {

"peers": {

"peer0.org1.example.com": {}

},

"connection": {

"timeout": {

"peer": {

"endorser": "6000",

"eventHub": "6000",

"eventReg": "6000"

}

}

}

}

},

"organizations": {

"Org1MSP": {

"mspid": "Org1MSP",

"fullpath": false,

"adminPrivateKey": {

"path":

"/opt/gopath/src/github.com/hyperledger/fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore"

},

"signedCert": {

"path":

"/opt/gopath/src/github.com/hyperledger/fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts"

}

},

"Org2MSP": {

"mspid": "Org2MSP",

"adminPrivateKey": {

"path":

"/opt/gopath/src/github.com/hyperledger/fabric-samples/first-network/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore"

}

},

"OrdererMSP": {

"mspid": "OrdererMSP",

"adminPrivateKey": {

"path":

"/opt/gopath/src/github.com/hyperledger/fabric-samples/first-network/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore"

}

}

},

"peers": {

"peer0.org1.example.com": {

"tlsCACerts": {

"path":

"/opt/gopath/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",

"eventUrl": "grpcs://localhost:7053",

"grpcOptions": {

"ssl-target-name-override": "peer0.org1.example.com"

}

},

"peer1.org1.example.com": {

"url": "grpcs://localhost:8051"

},

"peer0.org2.example.com": {

"url": "grpcs://localhost:9051"

},

"peer1.org2.example.com": {

"url": "grpcs://localhost:10051"

}

},

"orderers": {

"orderer.example.com": {

"url": "grpcs://localhost:7050"

}

}

},

"network-2": {}

},

"configtxgenToolPath": "/opt/gopath/src/github.com/hyperledger/fabric-samples/bin",

"license": "Apache-2.0"

}

然后保存

Build 浏览器

进入到blockchain-explorer目录,依次执行如下命令

cd blockchain-explorer 
npm install 
cd app/test 
npm install 
npm run test 
cd ../../client/ 
npm install 
npm test – -u –coverage 
npm run build

在执行过程中,进入到client目录之后执行npm test – -u –coverage的时候有可能会出现一个错误,可以忽略,如果一切正常会得到如下执行结果

 

Test Suites: 26 passed, 26 total

Tests: 171 passed, 171 total

Snapshots: 0 total

Time: 10.789s

Ran all test suites.

...

这个build过程中可能会遇到一些问题,可以尝试删除node_modules、package-lock.json来重新操作

启动 hyperledger-explorer

如果之前的步骤都顺利完成了,那么接下来便可以启动浏览器了。 
由于官方提供了两种启动模式,一种是host,一种是local,这个可以通过编辑app目录下的explorerconfig.json来配置,对于sync模式,一般是说多个同步进程在不同的节点位置上,也就是在分布式环境下部署浏览器,则需要采用sync模式,如果是本地docker环境,则采用local模式即可

在sync模式下,确保每一个节点上的配置信息一样

 

**sync模式**

"sync": {

"type": "host"

}

**Local模式**

"sync": {

"type": "local"

}

启动浏览器

cd blockchain-explorer/ 
./start.sh (it will have the backend up).

接下来访问 http://localhost:8080 即可

停止浏览器服务

./stop.sh (it will stop the node server).

如果是sync模式

cd blockchain-explorer/ 
./syncstart.sh

停止服务

./syncstop.sh (it will stop the sync node).

启动之后界面

反馈与建议

  • vx:@xiaozhang

  • 邮箱:zhangshenghui@umpay.com

Hyperledger Explorer 区块链浏览器相关推荐

  1. (Fabric 超级账本学习【5】)Fabric2.4网络环境下——搭建Hyperledger Fabric区块链浏览器

    博主最近在搭建Hyperledger Fabric区块链浏览器过程中也学习了很多博主的搭建流程,踩了很多雷,踩 了很多坑,现将成功搭建好的Hyperledger Fabric区块链浏览器详细流程分享如 ...

  2. Hyperledger Fabric explorer区块链浏览器搭建

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

  3. Hyperledger Fabric区块链浏览器搭建

    最近在用Hyperledger Fabric平台做一个项目,要使用区块链浏览器.以下是我的基础环境的情况以及搭建过程. 版本 Ubuntu 22.04.1 LTS 运行内存 8.0 GiB 处理器 I ...

  4. Hyperledger Fabric之Explorer区块链浏览器

    前言 我们之前既然安装了区块链的环境并且可以自己进行开发chaincode,但是我们并不能对整个区块链网络有个直观的了解,Hyperledger Explorer正是一款简单,功能强大,易于使用且易于 ...

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

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

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

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

  7. hyperledger fabric2.4.0基础搭建到区块链浏览器搭建

    基础环境借鉴  如下博客地址安装成功Ubuntu20.04下安装fabric2.4环境 从零开始超详细步骤[亲测有效]及Hyperledger Explorer安装_小草cys的博客-CSDN博客_u ...

  8. Hyperledger Fabric项目搭建区块链浏览器Hyperledger-blockchain-explorer

    Hyperledger Fabric项目搭建区块链浏览器 1.下载配置文件 区块链浏览器官网:https://github.com/hyperledger/blockchain-explorer # ...

  9. 区块链——Hyperledger Fabric2.2多机搭建及区块链浏览器

    文章目录 一.搭建环境 1.设置网络 2.安装docker和docker-compose 3.安装golang环境 二.生成Fabric证书 1.编写证书文件 2.生成证书文件 3.复制证书文件到节点 ...

最新文章

  1. 连接服务器_命令行连接FTP服务器
  2. 业界真的需要水下数据中心?微软的确认为如此
  3. 网易云信亮相WOT, 打造“IM+连麦互动直播”云服务
  4. nginx转发websocket
  5. 4月02日 提取汉字首字母,并大写的类
  6. BugkuCTF-PWN题pwn2-overflow超详细讲解
  7. python计算定积分_python编程通过蒙特卡洛法计算定积分详解
  8. android builder布局方式,android – AlertDialog.Builder与自定义布局和EditText;无法访问视图...
  9. Python标准库判断图片文件和声音文件的格式
  10. 浏览器的工作原理:新式网络浏览器幕后揭秘(转)
  11. Python--turtle.circle()参数说明
  12. raid读写速度对比_组建RAID 0前后的读写速度对比
  13. 2021年12月大学英语六级作文
  14. 天津天狮学院关于2021年天狮专升本新生入学缴费有关事项的通知
  15. Elsevier论文模板没有author biography的解决办法
  16. 基金会要申请银行账户吗
  17. Win10 IE浏览器代理服务器没有响应 问题解决方法
  18. 债券价格和到期收益率的关系_债券价格与到期收益率之间的关系.PPT
  19. 爱快路由网关到网关配置open***
  20. XiaoWei的战斗力

热门文章

  1. 将list对象存储进redis中去
  2. EEG信号分析:关于时频分析方面的个人理解
  3. 苹果审核被拒1.1和5.0
  4. 宏观经济数据今日公布●金融改革新政近期出台
  5. 荣誉系统排名是整个服务器,魔兽世界怀旧服pvp荣誉系统是什么-魔兽世界怀旧服pvp荣誉系统奖励有哪些_牛游戏网...
  6. OSX的一些基本知识
  7. idea 如何合并其他分支的指定文件或代码块到当前分支
  8. 鼠标宏编写脚本代码教程_PHP登录脚本代码和教程
  9. 深度学习(4):NCHW和NHWC
  10. ssh远程连接服务器