分享
  1. 首页
  2. 文章

Hyperledger Explorer 安装部署(pg版)

李孝伟 · · 2164 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

IBM区块链系列Hyperledger ,除了最核心的fabric网络外还出了一系列的工具和工程,这里就记录下区块链浏览器的安装部署,现在的版本是使用PostgreSQL数据库来存储数据(之前版本使用mysql)。
浏览器使用Psql和nodejs开发,所以对java或golang小伙伴来说,肯定会碰一些钉子。(官方的安装不是很详细)
先上地址:

https://github.com/hyperledger/blockchain-explorer.git
如果发现bug可以贡献修复

1、依赖环境安装

a) nodejs 8.11.x (Note that v9.x is not yet supported)
b) PostgreSQL 9.5 or greater
c) Jq [https://stedolan.github.io/jq/]
d) git
e) gcc-c++

1)安装git

yum install -y git
查看版本:
[root@fabric-test2 server]# git --version
git version 1.8.3.1

2)nodejs安装

a.下载
wget https://nodejs.org/dist/v8.11.4/node-v8.11.4-linux-x64.tar.xz
b.解压
tar -xvf node-v8.11.4-linux-x64.tar.xz 
c.链接
ln -s /server/node-v8.11.4-linux-x64/bin/node /usr/local/bin/node 
ln -s /server/node-v8.11.4-linux-x64/bin/npm /usr/local/bin/npm
d.测试
[root@fabric-test2 node-v8.11.4-linux-x64]# node -v
v8.11.4
[root@fabric-test2 node-v8.11.4-linux-x64]# npm -v
5.6.0

3)PostgreSQL安装

1.添加RPM
 yum install https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm
2.安装PostgreSQL 9.5
 yum install postgresql95-server postgresql95-contrib
3.初始化数据库
 /usr/pgsql-9.5/bin/postgresql95-setup initdb
4.设置开机自启动
 systemctl enable postgresql-9.5.service
5.启动服务
 systemctl start postgresql-9.5.service
PostgreSQL 安装完成后,会建立一下‘postgres’用户,用于执行PostgreSQL,数据库中也会建立一个'postgres'用户,默认密码为自动生成,需要在系统中改一下。
6.修改用户密码
 su - postgres 切换用户,执行后提示符会变为 '-bash-4.2$'
 psql -U postgres 登录数据库,执行后提示符变为 'postgres=#'
 ALTER USER postgres WITH PASSWORD 'postgres'; 设置postgres用户密码(!!!这个密码要注意下不能包含@符号)
 \q 退出数据库
7.开启远程访问
 vi /var/lib/pgsql/9.5/data/postgresql.conf
 修改#listen_addresses = 'localhost' 为 listen_addresses='*'
 当然,此处‘*’也可以改为任何你想开放的服务器IP
8.信任远程连接
 vi /var/lib/pgsql/9.5/data/pg_hba.conf
 修改如下内容,信任指定服务器连接
 # IPv4 local connections:
 host all all 127.0.0.1/32 md5
 增加
 host all all 0.0.0.0/0 md5
9. 重启PostgreSQL数据服务

4)安装jq

jq的安装需要epel源
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
yum repolist 
安装:
yum install jq -y

5)安装gcc-c++

yum install -y gcc-c++
编译使用

依赖环境准备就绪,接下来是安装了;

2、初始化配置
1)源码下载

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

2)数据库初始化

创建一个用户:
cd blockchain-explorer/app/persistence/postgreSQL
修改执行模式
chmod -R 775 db/
修改pgconfig.json 文件
cd db
vi pgconfig.json 如下:
{
 "pg": {
 "host": "127.0.0.1",
 "port": "5432",
 "database": "fabricexplorer",
 "username": "postgres",
 "passwd": "postgres"
 }
}
其实这里配置后还是需要输入密码,不过这个配置后续有用;
执行脚本:
[root@fabric-test2 db]# ./createdb.sh 
输入数据库密码就好;

3)Fabric 网络搭建
这个之前有教程,不再介绍;

4)Fabric 网络配置

先讲之前的配置备份
cp blockchain-explorer/app/platform/fabric/config.json blockchain-explorer/app/platform/fabric/config.json.bk
配置(以之前fabric分布式部署例子为基础)
vi blockchain-explorer/app/platform/fabric/config.json
配置如下:
{
 "network-config": {
 "org1": {
 "name": "OrgCoreCompanyMSP",
 "mspid": "OrgCoreCompanyMSP",
 "peer1": {
 "requests": "grpcs://10.0.200.114:7051",
 "events": "grpcs://10.0.200.114:7053",
 "server-hostname": "peer0.corecompany.lychee.com",
 "tls_cacerts":
 "/opt/gopath/src/github.com/hyperledger/fabric/lychees/bscf/crypto-config/peerOrganizations/corecompany.lychee.com/peers/peer0.corecompany.lychee.com/tls/ca.crt"
 },
 "admin": {
 "key":
 "/opt/gopath/src/github.com/hyperledger/fabric/lychees/bscf/crypto-config/peerOrganizations/corecompany.lychee.com/users/Admin@corecompany.lychee.com/msp/keystore",
 "cert":
 "/opt/gopath/src/github.com/hyperledger/fabric/lychees/bscf/crypto-config/peerOrganizations/corecompany.lychee.com/users/Admin@corecompany.lychee.com/msp/signcerts"
 }
 }
 },
 "channel": "bscfchannel",
 "orderers": [
 {
 "mspid": "OrdererMSP",
 "server-hostname": "orderer1.lychee.com",
 "requests": "grpcs://10.0.200.111:7050",
 "tls_cacerts":
 "/opt/gopath/src/github.com/hyperledger/fabric/lychees/bscf/crypto-config/ordererOrganizations/lychee.com/orderers/orderer1.lychee.com/tls/ca.crt"
 }
 ],
 "keyValueStore": "/tmp/fabric-client-kvs",
 "configtxgenToolPath": "/opt/gopath/src/github.com/hyperledger/fabric/release/linux-amd64/bin/",
 "SYNC_START_DATE_FORMAT": "YYYY/MM/DD",
 "syncStartDate": "2018年01月01日",
 "eventWaitTime": "30000",
 "license": "Apache-2.0",
 "version": "1.1"
}
这里要注意下:
1、org1 可以随意命名,跟fabric网络无关;
2、可先添加一个节点做测试,等成功后再配置全部;
3、org中的name、mspid等必需根网络配置的一致(fabric网络的configtx.yaml文件);
4、注意ip地址和grpcs/grpc;
5、注意证书文件路径;
6、keyValueStore 这个是client的存放位置,可暂时随意配置个位置。

3、打包部署
这个熟悉前段开发的会比较顺利,但是做java后端和golang的小伙伴可能需要折腾下;(其实就是一个工程打包,下载依赖,部署的过程)

cd blockchain-explorer
npm install
cd client/
npm install
npm run build
如果遇到 root没权限,则需要使用非安全模式,顺便输出下详细日志如下:
cd blockchain-explorer
npm install --unsafe-perm -d
cd client/
npm install --unsafe-perm -d
npm run build --unsafe-perm -d
!!!注意,如果中间出错,重新安装时先要删除node_modules文件夹,client里的也需要;

4、运行

cd blockchain-explorer
./start.sh
日志文件:
logs/app app日志
logs/console 运行日志
logs/db db日志
这几个文件里面的日志要结合看才能更好的解决问题;
console成功日志:
Property config.syncStartDate set to 2018年01月01日
Please open web browser to access :http://127.0.0.1:8080/
pid is 9641
Successfully received the block event[object Object]

5、问题总结

1. make: g++: Command not found
yum install -y gcc-c++
2. getBlockActivity undefined 找不到
这个是npm install问题,删除node_modules,重新安装
3.TypeError: Cannot read property 'forEach' of undefined
这个是fabric网络未配置好,重新检查下app/platform/fabric/config.json 网络配置
4.server.on undefined 找不到
这个是npm install问题,删除node_modules,重新安装
5. TypeError: Cannot read property 'queryChannels' of undefined
这个是fabric网络未配置好,重新检查下app/platform/fabric/config.json 网络配置

6、效果如下:


image.png
image.png
image.png
image.png

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:李孝伟

查看原文:Hyperledger Explorer 安装部署(pg版)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
2164 次点击
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏