Hyperledger Explorer官方安装文档中文版

Hyperledger Explorer是一个简单易用的开源工具,可以用于监视区块链网络中的活动。Hyperledger Explorer支持Fabric、Iroha等多种区块链,可以运行在MocOS和Ubuntu下。

Hyperledger Fabric区块链开发教程:

2.0 Hyperledger Explorer源代码目录结构

1blockchain-explorer 2 | 3 ├── app Application backend root, Explorer configuration 4 | ├── rest REST API 5 | ├── persistence Persistence layer 6 | ├── fabric Persistence API (Hyperledger Fabric) 7 | └── platform Platforms 8 | | └── fabric Explorer API (Hyperledger Fabric) 9 | └── test Application backend test 10 | 11 └── client Web UI 12 ├── public Assets 13 └── src Front end source code 14 ├── components React framework 15 ├── services Request library for API calls 16 ├── state Redux framework 17 └── static Custom and Assets

3.0 Hyperledger Explorer的依赖说明

在安装和运行Hyperledger Explorer之前需要先满足以下依赖条件:

  • Nodejs 8.11.x(注意目前v9.x还不支持)
  • PostgreSQL 9.5或更高版本
  • jq
  • 基于Linux的操作系统,例如Ubuntu或MacOS

以下版本的Docker已经验证过支持Hyperledger Explorer:

  • Docker CE 18.09.2或更高版本
  • Docker Compose 1.14.0

4.0 克隆Hyperledger Explorer的Git仓库

执行以下命令克隆Hyperledger Explorer的Git仓库以获得最新版本:

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

5.0 PostgreSQL数据库设置

首先进入app目录:

cd blockchain-explorer/app

然后修改explorerconfig.json以更新PostgreSQL数据库的配置:

1"postgreSQL": { 2 "host": "127.0.0.1", 3 "port": "5432", 4 "database": "fabricexplorer", 5 "username": "hppoc", 6 "passwd": "password" 7}

配置数据库的另一种替代方式是使用环境变量,例如:

1export DATABASE_HOST=127.0.0.1 2export DATABASE_PORT=5432 3export DATABASE_DATABASE=fabricexplorer 4export DATABASE_USERNAME=hppoc 5export DATABASE_PASSWD=pass12345

注意:在每次执行git pull之后,你可能需要修改数据库目录的 权限。执行以下命令进行权限修改:

1cd blockchain-explorer/app/persistence/fabric/postgreSQL 2chmod -R 775 db/

接下来运行数据库创建脚本。

在Ubuntu下执行如下命令:

1cd blockchain-explorer/app/persistence/fabric/postgreSQL/db 2sudo -u postgres ./createdb.s

在MacOS执行如下命令:

1cd blockchain-explorer/app/persistence/fabric/postgreSQL/db 2./createdb.sh

现在可以连接到PostgreSQL数据库,运行DB状态命令:

  • \l:查看创建的fabricexplorer数据库
  • \d:查看创建的数据表

如果你的Postgresql启用了TLS,请参考Postgresql官方文档

5.1 Hyperledger Explorer身份授权配置

首先进入浏览器应用目录:

cd blockchain-explorer/app

然后修改explorerconfig.json以更新授权配置(JWT):

1"jwt": { 2 "secret" : "a secret phrase!!", 3 "expiresIn": "2 days" 4}

其中:

  • secret:用于签名消息载荷的密文
  • expiresIn:过期时间,以秒为单位的数值或一个时间字符串,例如:60,2 days,10h,7d等,可参考zeit/ms

6.0 Fabric网络设置

注意:完成这一部分的设置需要一定的时间。

首先参考Hyperledger官方文档Building Your First Network搭建好你自己的网络。

然后修改配置文件/blockchain-explorer/app/platform/fabric/config.json里的对应的值。

Hyperledger Explorer默认使用fabric-samples/first-network

请确保在docker-compose.yaml文件中为每个Peer节点都设置了环境变量CORE_PEER_GOSSIP_BOOTSTRAP和CORE_PEER_GOSSIP_EXTERNALENDPOINT。这些设置用来启用Fabric发现服务,Hyperledger Explorer依赖于该服务来自动发现Fabric区块链网络的拓扑结构。

6.1 为Hyperledger Explorer配置运维服务

请参考 CONFIG-OPERATIONS-SERVICE-HLEXPLORER.md来为Hyperledger Explorer配置运维服务。

7.0 配置Hyperledger Fabric

开启另一个终端,进入以下目录:

cd blockchain-explorer/app/platform/fabric

修改config.json文件来定义fabric网络的连接配置文件:

1{ 2 "network-configs": { 3 "first-network": { 4 "name": "firstnetwork", 5 "profile": "./connection-profile/first-network.json", 6 "enableAuthentication": false 7 } 8 }, 9 "license": "Apache-2.0" 10}
  • first-network:是连接配置的名称,可以随意修改
  • name:你的fabric网络的名字
  • profile:你的连接配置文件的路径

修改JSON文件first-network.json中的连接配置信息:

  • 修改fabric-path指向你的fabric网络硬盘路径:

    /blockchain-explorer/app/platform/fabric/connection-profile/first-network.json
    
  • 为adminPrivateKey配置选项提供完整的磁盘路径,它通常 以_sk结尾,例如:

    "/fabric-path/fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/aaacd899a6362a5c8cc1e6f86d13bfccc777375365bbda9c710bb7119993d71c_sk"
    
  • adminUser是网络的管理用户

  • adminPassword是管理用户的密码

  • enableAuthentication标志用来启用登录页,设置为false将跳过 身份验证

7.1 为Hyperledger Explorer配置Fabcar示例,可选

参考Hyperledger Fabric示例中的Fabcar Sample Network为Hyperledger Explorer设置连接Fabcar示例网络。

  • 确保在docker-compose.yaml文件中为每个peer节点都是设置 CORE_PEER_GOSSIP_BOOTSTRAP和CORE_PEER_GOSSIP_EXTERNALENDPOINT 环境变量。这些设置用于启用fabric的自动发现服务。
  • 参考CONFIG-FABCAR-HLEXPLORER.md 配置Fabcar示例网络

7.2 为Hyperledger Explorer配置Balance Transfer示例

参考Hyperledger Fabric示例中的Balance Transfer Sample为Hyperledger Explorer设置对Balance Transfer网络的访问。

参考文档:CONFIG-BALANCE-TRANSFER-HLEXPLORER.md

8.0 Hyperledger Composer 设置

TODO

9.0 Hyperledger Cello设置

TODO

10.0 构建Hyperledger Explorer

注意,请在每次git pull之后重复以下步骤!

在终端执行如下命令安装、测试并构建项目

./main.sh install

在终端执行如下命令清理/node_modules、client/node_modules、client/build、client/coverage、app/test/node_modules目录

./main.sh clean

在终端执行如下命令测试REST API、UI组件并生成代码覆盖报告;

./main.sh test

或者:

1cd blockchain-explorer 2npm install 3cd blockchain-explorer/app/test 4npm install 5npm run test 6cd client/ 7npm install 8npm run test:ci -- -u --coverage 9npm run build

10.1 配置Hyperledger Explorer启用HTTPS

参考:CONFIG-HTTPS-HLEXPLORER.md

11.0 运行Hyperledger Explorer

首先进入应用目录:

cd blockchain-explorer/app

然后修改explorerconfig.json来更新同步属性,例如同步类型、平台等。

如果修改了explorerconfig.json中的参数,请重新启动同步进程。

如果同步进程和Hyperledger Explorer不在同一台主机上,那么在Explorer的explorerconfig.json中应当将同步类型设置为host:

1"sync": { 2 "type": "host" 3}

如果同步进程和Hyperledger Explorer安装在同一台主机上,则设置 为local类型:

1"sync": { 2 "type": "local" 3}

另外开启一个终端:

  • cd blockchain-explorer/
  • ./start.sh 启动后台
  • ./start.sh debug 以调试方式启动后台
  • ./start.sh print 显示帮助信息
  • 在浏览器中打开http(s)://localhost:8080
  • ./stop.sh 终止node服务器

如果Sync进程在单独主机中,那么在新的终端中:

  • cd blockchain-explorer/
  • ./syncstart.sh 启动同步节点
  • ./syncstop.sh 停止同步节点
  • 如果之前在浏览器中访问了hyperledger explorer,请先清理浏览器缓存
  • 如果Hyperledger Fabric网络部署在另一台机器上,请切换start.sh/syncstart.sh 中的DISCOVERY_AS_LOCALHOST标志位false

11.1 Hyperledger Explorer日志配置

使用如下的环境变量,可以控制Hyperledger Explorer中每个组件(例如app、db和console)的日志输出等级,例如:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < MARK < OFF。 每个文件按时间(7天)和大小(8MB)滚动。

  • LOG_LEVEL_APP:应用层日志等级,日志写入logs/app/app.log,默认为DEBUG
  • LOG_LEVEL_DB:后端日志等级,日志写入logs/db/db.log,默认为DEBUG
  • LOG_LEVEL_CONSOLE:控制台日志等级,日志写入logs/console/console.log,默认为INFO
  • LOG_CONSOLE_STDOUT :iang控制台日志目标从文件切换为标准输出设备,默认值:false

12.0 使用Docker运行Hyperledger Explorer

如果以下条件满足的话,可以利用docker自动部署Hyperledger Explorer:

  • 安装了bash
  • 在部署机器上安装有docker
  • 在部署机器上安装有docker compose

12.1 Docker仓库

Hyperledger Explorer docker仓库:https://hub.docker.com/r/hyperledger/explorer/

Hyperledger Explorer PostgreSQL docker 仓库:https://hub.docker.com/r/hyperledger/explorer-db

12.2 使用docker compose运行Hyperledger Explorer

修改示例docker-compose.yaml文件以匹配你自己的环境:

  • networks > mynetwork.com > external > name

    networks: mynetwork.com: external: name: net_byfn

  • services > explorer.mynetwork.com > volumes

    volumes:

    • ./examples/net1/config.json:/opt/explorer/app/platform/fabric/config.json
    • ./examples/net1/connection-profile:/opt/explorer/app/platform/fabric/connection-profile
    • ./examples/net1/crypto:/tmp/crypto
  • 如果Hyperledger Explorer是通过桥接网络连接到Fabric网络 的,你需要设置DISCOVERY_AS_LOCALHOST为false以便禁止将 主机名映射为localhost:

    explorer.mynetwork.com: ... environment: ... - DISCOVERY_AS_LOCALHOST=false

  • 在启动Fabric网络后,运行如下命令启动Hyperledger Explorer和explorer-db服务

    cd /blockchain-explorer docker-compose up -d

  • 运行如下命令停止服务但不删除持久化数据:

    docker-compose down

  • 在docker-compose.yaml中,为持久化数据分配了两个命名 卷(用于postgresql数据和用户钱包),运行以下命令清理 这些数据:

    docker-compose down -v

12.3 ~ 18.0

TODO


原文链接:Hyperledger Explorer官方文档中文版 - 汇智网

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )