区块链100讲:Hyperledger Explorer简介

Posted by

区块链100讲:Hyperledger Explorer简介

本文作者:HiBlock区块链技术布道群-冯宇Ops

原文发布于简书

加微信baobaotalk_com,加入技术布道群

区块链100讲:Hyperledger Explorer简介

上一篇我们介绍了面向运维的Cello项目,可以帮助运维快速部署与监控各个区块链节点。今天我们将介绍另一个类似的项目 —— Hyperledger Explorer。

1

项目简介

Hyperledger Explorer是一个区块链的图形化explorer,具有使用简便,功能强大,易维护等特点。同样也是Hyperledger众多项目下的一个子项目,目前还处于孵化中。

如果说Cello是一个面向于运维的图形化工具,那么Hyperledger Explorer就是一个面向于开发人员和普通用户的一个图形化工具,提供web界面,用户可以容易的看到区块链上的活动,有点类似于以太坊项目中的 https://etherscan.io/

2

环境依赖

由于需要fabric, docker等一系列依赖,我们依旧选用Ubuntu 16.04系统,主要依赖如下:

软件运行依赖:

  • nodejs 8.11.x (Node 9.x暂不支持)

  • PostgreSQL 9.5 or greater

要工作在Hyperledger Fabric 1.1以上网络中,需要运行以下依赖管理fabric网络:

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

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

3

部署过程

克隆仓库

使用以下命令克隆仓库:

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

cd blockchain-explorer

目录结构如下:

├── app Application backend root

├── explorer Explorer configuration, REST API

├── persistence Persistence layer

├── platform Platforms

├── fabric Explorer API (Hyperledger Fabric)

├── test Application backend test

├── client Web UI

├── public Assets

├── src Front end source code

├── components React framework

├── services Request library for API calls

├── state Redux framework

├── static Custom and Assets

连接数据库

Ubuntu系统使用以下命令连接数据库:

sudo -u postgres psql

运行创建数据库的脚本:

  • i app/persistence/postgreSQL/db/explorerpg.sql

  • i app/persistence/postgreSQL/db/updatepg.sql

设置Fabric网络

按照Fabric教程Build your network或composer教程Build your network均可快速启动一个Fabric网络,相关介绍在之前的文章Linux环境下搭建Hyperledger Fabric 1.1开发环境和Linux环境下安装和使用Hyperledger Composer都有过介绍。

启动fabric网络之后需要在app/platform/fabric/config.json做下适配,改为响应的区块链网络配置。

修改app/persistence/postgreSQL/db/pgconfig.json为对应的数据库配置。

如果你连接到一个非TLS的fabric节点,需要在peer url的配置中修改协议grpcs -> grpc和端口9051 -> 9050,并且移除掉选项tls_cacerts。通过这个关键配置,程序决定走TLS路由还是非TLS路由。

4

构建Hyperledger Explorer

每次git pull之后都需要重新构建:

cd blockchain-explorer

npm install

cd blockchain-explorer/app/test

npm installnpm run testcd client/

npm install

npm test — -u –coverage

npm run build

5

运行Hyperledger Explorer

cd blockchain-explorer./start.sh # 程序会后台运行

./stop.sh # 停止运行

运行之后,打开localhost:8080,应该看到类似于下面的界面

区块链100讲:Hyperledger Explorer简介

这样Hyperledger Explorer的web界面就运行起来了。

使用Docker运行Hyperledger Explorer

Hyperledger Explorer同样还支持使用Docker自动化部署。非交互式部署的默认配置如下:

  • 默认情况下,部署脚本使用192.168.10.0/24虚拟网络,并且没有重叠ip(意味着你不能有其他物理主机或docker容器运行在这个网络中)。如果ip重叠了,必须编辑脚本,更改目标网络和容器目标ip。

  • 默认情况下两个service(前台和数据库)会运行在同一台机器上,但是脚本也允许修改运行在分开的机器上,只要在前端容器中编辑下目标DB IP就好。

  • Crypto material正确的配置在examples/$network/crypto

  • Fabric 网络配置在examples/$network/config.json

使用Docker部署的步骤:

  • cd blockchain-explorer/

  • 在examples下创建一个新的目录(比如叫dockerConfig)存储你的ypberledger网络配置(mkdir -p ./examples/dockerConfig)

  • 在examples/dockerConfig/config.json下保存你的hyperledger网络配置。

  • 在examples/dockerConfig/crypto下保存你的证书配置。

  • 在上一级目录运行explorer。

开启新终端

  • cd blockchain-explorer/

  • ./deploy_explorer.sh dockerConfig (该脚本会使用存储在examples/dockerConfig目录下的配置自动部署数据库和前端app)

Hyperledger Explorer Swagger

运行Hyperledger Explorer之后,在http://localhost:8080/api-docs可以看到Rust API描述

Logs

  • ./logs/console可以查看终端日志,./logs/app可以查看应用日志,./logs/db可以查看数据库日志。

  • 所有日志七天滚动

6

小结

Hyperledger Explorer项目目前还在孵化中,部署上看起来并不那么正轨(并没有标准化的包管理部署方式)。不过依旧可以看出Hyperledger功能的强大,各方面几乎并驾齐驱,没有短板,并且在高速发展中。除了目前的应用确实少了些之外,基础设施其实相当完善,从开发到运维,再到终端用户几乎都有对应的项目解决对应的问题,可以看出Hyperledger的目标还是挺远大的。

拓展阅读:区块链100讲:Hyperledger Cello简介

区块链100讲:Hyperledger Explorer简介

区块链100讲:Hyperledger Explorer简介

原文始发于微信公众号( 区块链社区HiBlock ):区块链100讲:Hyperledger Explorer简介