在Ubuntu16.04中搭建Hyperledger Explorer
前提:在Ubuntu16.04中成功部署hyperledge composer,部署成功之后通过虚拟机IP:8888,可以进行访问
总结:我部署成功hyperledge composer之后启动的是fabric 1.1.0的网络,所以我用的hyperledge explorer的版本是3.5的(注意下载完hyperledge explorer之后,一定要转换一下explorer的版本,换成和fabric版本能够对应的版本,并且一定要确认一下版本是否转换成功)可以用 psql postgres://hppoc:123456@127.0.0.1:5432/fabricexplorer
连接到数据库,测试一下数据库方面是不是没有问题了
一:环境依赖
nodejs 8.11.x(node我用的是8.11.4,npm 5.6.0)
PostgreSQL 9.5 or greater(我用的是9.5.14)
Jq [https://stedolan.github.io/jq/]
Docker 18.09.4
docker-compose 1.23.2
二:部署过程
1,安装PostgreSQL
安装:apt install postgresql
编译;vi /etc/postgresql/9.5/main/postgresql.conf
将下面 listen_addresses = 'localhost'注释去掉并改为 listen_addresses = '*'
#Connection Settings-
#listen_addresses = 'localhost'
# what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
….
将下面password_encryption = on 注释打开
#password_encryption = on
切换用户su - postgres
通过 psql 命令进入postgresql客户端
修改用户密码:ALTER USER postgres PASSWORD '123456'
;
信任远程连接:vi /etc/postgresql/9.5/main/pg_hba.conf
修改如下内容,信任指定服务器连接
#TYPE DATABASE USER CIDR-ADDRESS METHOD
#"local" is for Unix domain socket connections only
local all all trust
#IPv4 local connections:
#IPv4 local connections:
host all all 127.0.0.1/32 md5
增加
host all all 0.0.0.0/0 md5
#IPv6 local connections:
host all all ::1/128 trust
重启数据库服务
systemctl restart postgresql
2.下载explorer代码并切换到3.5版本
git clone https://github.com/hyperledger/blockchain-explorer.git
git checkout -b release-3.5 origin/release-3.5
查看是否转换成功:
git branch –a
如果看到下面界面说明转换成功:
3.数据库设置
cd blockchain-explorer
cd blockchain-explorer/app/persistence/postgreSQL/db
更改pgconfig.json文件
{"pg": { "host": "127.0.0.1",
"port": "5432",
"database": "fabricexplorer",
"username": "hppoc",
"passwd": "password" }}
更改脚本权限 chmod -R 775 ./*
创建用户 ./createdb.sh
连接数据库 sudo -u postgres psql
(可以用 \l
查看创建的数据库,用 \q
退出数据库)
4.Fabric 网络部署根据已经部署好的fabric网络更改配置文件:
blockchain-explorer/app/platform/fabric/config.json方法一:
{ "network-config": {
"org1": {
"name": "Org1",
"mspid": "Org1MSP",
"peer1": {
"requests": "grpc://127.0.0.1:7051",
"events": "grpc://127.0.0.1:7053",
"server-hostname": "peer0.org1.example.com",
"tls_cacerts":
"/home/lxq/explorer/deploy/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" },
"admin": {
"key": "/home/lxq/explorer/deploy/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore", "cert": "/home/lxq/explorer/deploy/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts" } } },
"channel": "composerchannel",
"orderers": [ {
"mspid": "OrdererMSP",
"server-hostname": "orderer.example.com",
"requests": "grpc://127.0.0.1:7050",
"tls_cacerts":
"/home/lxq/explorer/deploy/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt" } ],
"keyValueStore": "/tmp/fabric-client-kvs", "configtxgenToolPath": "/composer-path/playground/fabric-samples/bin", "SYNC_START_DATE_FORMAT": "YYYY/MM/DD",
"syncStartDate": "2018/01/01",
"eventWaitTime": 30000,
"license": "Apache-2.0",
把上面的代码复制到blockchain-explorer/app/platform/fabric目录下的config.json文件里,然后把上面代码里的路径部分替换成IBM给的deploy文件夹下的crypto-config所在位置的绝对路径。
方法二: 3.5版本的hyperledge explorer没有hyperledge composer配置文件的例子,而官方给的最新版本里面有hyperledge composer配置文件的例子(config-composer.json文件),这时候你可以重新下载一个hyperledge explorer最新版本,把里面的config-composer.json文件里面的东西拷贝一下,拷贝到config.json文件,然后修改一下tls_cacerts,key, cert等路径,改成你的crypto-config所在位置的绝对路径就可以了)
5.构建Hyperledger Explorer
cd blockchain-explorer
npm install
cd blockchain-explorer/app/test
npm install
npm run test
cd clientnpm install
npm test -- -u --coverage
npm run build
以上没有错误
证明搭建完成
6.运行 Hyperledger Explorer
cd blockchain-explorer
/start.sh
开启后台执行
或者通过node main.js
启动http://localhost:8080
查看结果.