Ubuntu部署LedgerData Refiner
说明
最近看了一篇论文Ledgerdata Refiner: A Powerful Ledger Data Query Platform for Hyperledger Fabric,文章中针对Fabric设计了一款可视化数据分析工具(类似Hyperledger Exploer,但拥有更多功能),鉴于网上目前还没有什么部署教程,故写下本文以做记录。官方github中提供了codebase和docker两种部署方式,因为我们使用的是2.3版本的Fabric,故这里使用codebase,若大家在部署中遇到什么问题,也可以去看看官方的部署指南。
环境
software | version |
---|---|
ubuntu | 18.04 |
fabric | 2.3 |
go | 1.15.7 |
PostgreSQL | 10 |
部署
Fabric的安装
这里假设大家事先已经安装好了fabric,具体的安装教程网上也有很多,这里不再做赘述。
PostgreSQL的安装
通过论文我们可以了解到,Refiner通过将数据存储在第三方数据库中以实现富查询。Refiner要求postgresql版本至少为9.5,现在ubuntu仓库中的版本已经更新到10,故直接安装即可。
在终端中,使用以下命令安装 PostgreSQL:
sudo apt update
sudo apt install postgresql postgresql-contrib
安装完成后,可以通过执行以下命令来检查 PostgreSQL 是否正在运行:
service postgresql status
默认情况下,PostgreSQL 会创建一个拥有所权限的特殊用户 postgres。要实际使用 PostgreSQL,你必须先登录该账户:
sudo su postgres
现在,使用 psql 来启动 PostgreSQL Shell
psql
你可以输入 \q 以退出,输入 ? 获取帮助
根据官方文档,我们需要为Refiner创建单独的用户和数据库以正常使用(复制时注意分号)
CREATE USER refiner WITH PASSWORD '123456';//创建用户refiner
ALTER USER refiner WITH SUPERUSER;//授予refiner管理员权限
ALTER USER refiner WITH CREATEDB;//允许refiner创建数据库
CREATE DATABASE ledgerdata_refiner OWNER refiner;//创建数据库与用户关联
grant all on database ledgerdata_refiner to refiner;//把数据库的所有权限赋给用户
使用 \du 命令,你可以查看 PostgreSQL 用户:
\du
使用\l命令查看现有的所有表
\l
Refiner的安装
首先,将文件git到本地
go get github.com/FujitsuLaboratories/Ledger-Data-Refiner
考虑到有时候网速实在是太慢了,这里给出gitee的地址
git clone https://gitee.com/hello_world_2233/Ledger-Data-Refiner.git
找到git到本地的文件,首先修改config/config.ini
[database]
db_host = 127.0.0.1
db_port = 5432
db_user = refiner
db_password = 123456
db_name = ledgerdata_refiner
接着修改 config/connection-config.yaml,将${FABRIC_PROJECT_PATH}/ ${CRYPTOCONFIG_PATH}修改为本地的路径。我这里的路径如下:
/home/yuan/go/src/github.com/hyperledger/fabric-samples/test-network/organizations/
大家如果搞不清楚的自己的地址是什么的话,可以先跑下fabric-samples中的test-network,这个路径其实就是orderorganziations和peerorganziations的父目录。
note:
因为我们使用的是2.3版本的fabric,一些文件的名称发生了变化,故这里在修改时需要格外改一下文件名,具体位置如下所示:
返回主目录下,编译文件
make build
运行Ledgerdata Refiner
./ledgerdata-refiner
至此,Ledgerdata Refiner部署完成。大家可以通过访问http://localhost:30052查看。ledgerdata refiner使用swagger提供API文档,可以访问 http://localhost:30052/swagger/index.html 查看
结果
参考文献
[1] Ledgerdata Refiner: A Powerful Ledger Data Query Platform for Hyperledger Fabric
[2] 官方github地址
[3] 如何在 Ubuntu 上安装和配置 PostgreSQL