Fabric Explorer部署
参考链接:
github源码:源码
gitee: gitee Fabric Explorer
博客搭建流程:Hyperledger Explorer 区块链浏览器与已搭建fabric网络结合
一、系统要求
- Linux系统(例如Ubuntu18.04或CentOS7.+);
二、环境要求
node:v8.17.0 +
postgreSQL:9.0及其以上
jq:(1.5/1.6)
docker:见官网
Fabric Explorer: v1.1.3
三、开始搭建
-
安装node,官网上下载对应版本
-
安装jq
sudo apt-get install jq //外网安装命令 //内网下载对应的离线安装包
-
安装postgreSQL
注意:
- 下载下来的安装包不要放在root目录下,放在home目录下最好
- 创建一个postgres用户,将postgresql 指定给该用户
//外网安装命令 sudo apt-get install postgresql //内网下载对应的离线安装包 ./crteapgserver.sh //创建pgserver ./startpgserver.sh //启动pg数据库 查看5432端口是否启动起来,启动起来了说明启动成功
-
安装 docker(可选)
-
克隆对应版本blockchain-explorer代码
git clone https://github.com/hyperledger/blockchain-explorer.git
-
进入blockchain-explorer
cd blockchain-explorer
-
PostgreSQL数据库设置
-
首先进入app目录:
cd blockchain-explorer/app
-
然后修改explorerconfig.json以更新PostgreSQL数据库的配置:
"postgreSQL": { "host": "127.0.0.1", //本机127.0.0.1,其他机器对应ip即可 "port": "5432", "database": "fabricexplorer", "username": "hppoc", "passwd": "password" }, "sync": { "type":"local", //postgis在本机是local,在其他机器上是host "platform": "fabric", "blocksSyncTime": "1" }
-
配置数据库的另一种替代方式是使用环境变量,例如:
export DATABASE_HOST=127.0.0.1 export DATABASE_PORT=5432 export DATABASE_DATABASE=fabricexplorer export DATABASE_USERNAME=hppoc export DATABASE_PASSWD=pass12345
**注意:**在每次执行git pull之后,你可能需要修改数据库目录的 权限。执行以下命令进行权限修改:
cd blockchain-explorer/app/persistence/fabric/postgreSQL chmod -R 775 db/
接下来运行数据库创建脚本。
-
由于我本地没有配置pg的环境变量 所以配置数据库的时候修改了一点脚本,进入;
//编辑createdb.sh vi blockchain-explorer/app/persistence/fabric/postgreSQL/db/createdb.sh PSQL="psql" 改成 PSQL="/home/datastore/database/postgresql/bin/psql" //pg所在路径,我的pg路径为/home/datastore/database/postgresql/bin/psql //如果没有配置环境则会报错命令找不到
-
在Linux下执行如下命令,创建pg的用户名和密码:
cd blockchain-explorer/app/persistence/fabric/postgreSQL/db sudo -u postgres ./createdb.sh
-
在MacOS执行如下命令:
cd blockchain-explorer/app/persistence/fabric/postgreSQL/db ./createdb.sh
-
现在可以连接到PostgreSQL数据库,运行DB状态命令:
-
\l
:查看创建的fabricexplorer数据库 -
\d
:查看创建的数据表 -
如果你的Postgresql启用了TLS,请参考Postgresql官方文档。
-
-
Hyperledger Explorer身份授权配置
- 首先进入浏览器应用目录:
cd blockchain-explorer/app
- 然后修改explorerconfig.json以更新授权配置(JWT):
"jwt": { "secret" : "a secret phrase!!", "expiresIn": "2 days" } //secret:用于签名消息载荷的密文 //expiresIn:过期时间,以秒为单位的数值或一个时间字符串,例如:60,2 days,10h,7d等,可参考zeit/ms
-
配置Hyperledger Fabric
-
开启另一个终端,进入以下目录:
cd blockchain-explorer/app/platform/fabric
-
修改config.json文件来定义fabric网络的连接配置文件:
{ "network-configs": { "first-network": { "name": "atln", //fabric网络名称 "profile": "./connection-profile/first-network.json", //网络配置文件目录 "enableAuthentication": false } }, "license": "Apache-2.0" } //first-network:是连接配置的名称,可以随意修改 //name:你的fabric网络的名字 //profile:你的连接配置文件的路径
-
修改JSON文件first-network.json中的连接配置信息:
-
修改fabric-path指向你的fabric网络硬盘路径:
vi /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" //更改对应的路径下自己网络xxxxx_sk,比如我的是aaacd899a6362a5c8cc1e6f86d13bfccc777375365bbda9c710bb7119993d71c_sk
-
adminUser是网络的管理用户
-
adminPassword是管理用户的密码
-
enableAuthentication标志用来启用登录页,设置为false将跳过 身份验证
-
-
构建Hyperledger Explorer
**注意:**请在每次git pull之后重复以下步骤!
cd blockchain-explorer npm install cd blockchain-explorer/app/test npm install npm run test cd client/ npm install npm test -- -u --coverage npm run build //以上没有错误证明搭建完成
-
运行Hyperledger Explorer
-
首先进入应用目录:
cd blockchain-explorer/app
-
然后修改explorerconfig.json来更新同步属性,例如同步类型、平台等。
-
如果修改了explorerconfig.json中的参数,请重新启动同步进程。
-
如果同步进程和Hyperledger Explorer不在同一台主机上,那么在 Explorer的explorerconfig.json中应当将同步类型设置为host:
"sync": { "type": "host" }
-
如果同步进程和Hyperledger Explorer安装在同一台主机上,则设置 为local类型:
"sync": { "type": "local" }
-
另外开启一个终端:
- 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
-