Bootstrap

fabric1.4浏览器搭建

准备工作

explorer 依赖 nodejs 8.11(高版本的不支持)、PostgreSQL 9.5 和以上版本、jq 命令。

启动 PostgreSQL 数据库

这里的数据库使用何种方式启动不重要,自己觉得顺手就行

$ docker run -idt \
    -e POSTGRES_USER="postgres" \
    -e POSTGRES_PASSWORD="password" \
    -p 5432:5432  \
    postgres:latest

本地还需要安装 psql,一个用于连接 postgres 数据库的命令:

$ yum install -y epel-release  postgresql    # CentOS 上安装方法

确定能用下面的命令进入数据库,密码是 password:

$ psql -h 127.0.0.1 -U postgres
Password for user postgres:
psql (11.2, server 12.1 (Debian 12.1-1.pgdg100+1))
WARNING: psql major version 11, server major version 12.
         Some psql features might not work.
Type "help" for help.

postgres=#

blockchain-explorer配置

把 blockchain-explorer 下载到 ~/hyperledger-fabric-1.4.4 目录中:

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

这里使用的是 v0.3.9.5 版本,explorer 和 fabric 的版本适配情况见 blockchain-explorer release:

$ cd blockchain-explorer
$ git checkout -b v0.3.9.5    # v0.3.9.5 适配 fabric 1.4

核实配置文件 app/explorerconfig.json

{
  "persistence": "postgreSQL",
  "platforms": ["fabric"],
  "postgreSQL": {
    "host": "127.0.0.1",
    "port": "5432",
    "database": "fabricexplorer",
    "username": "hppoc",
    "passwd": "password"
  },
  "sync": {
    "type": "local",
    "platform": "fabric",
    "blocksSyncTime": "3"
  }
}

初始化 blockchain-explorer 使用的数据库
创建数据库

$ cd app/persistence/fabric/postgreSQL/db
vim createdb.sh
#这里使用的是docker启动的数据库,如果使用物理机方式下面方法方法可能不适用或者不需要
linux*) psql postgres -h 127.0.0.1 -U postgres -v dbname=$DATABASE -v user=$USER -v passwd=$PASSWD -f ./explorerpg.sql ;
psql postgres -h 127.0.0.1 -U postgres -v dbname=$DATABASE -v user=$USER -v passwd=$PASSWD -f ./updatepg.sql ;;

就是加上 -h 127.0.0.1 -U postgres
./createdb.sh

设置 fabric 对接文件
blockchain-explorer 中的 app/platform/fabric/config.json 是用来连接 fabric 的配置文件:

$ ls app/platform/fabric/config.json

app/platform/fabric/config.json

修改config中的文件路径等信息
下面命令一次性修改全部
Mac 上执行:

$ sed -i "" -e "s#/fabric-path#/Users/lijiao/hyperledger-fabric-1.4.4#" app/platform/fabric/config.json

Linux 上执行:

$ sed -i -e "s#/fabric-path#/Users/lijiao/hyperledger-fabric-1.4.4#" app/platform/fabric/config.json

编译启动 blockchain-explorer
安装依赖包,构建 blockchain-explorer:

$ npm config set registry https://registry.npm.taobao.org  # 添加淘宝镜像源,加快速度
$ cd blockchain-explorer
$ npm install
$ cd client   # 进入 client 目录
$ npm install
$ npm run build

启动

$ cd blockchain-explorer
$ node ./main.js
....显示信息...
write_set size >>>>>>>>> :  0.5014553070068359 MB
Insert sql is INSERT INTO transactions  ( "blockid","txhash","createdt","chaincodename","chaincode_id","status","creator_msp_id","endorser_msp_id","type","read_set","write_set","channel_genesis_hash","validation_code","envelope_signature","payload_extension","creator_nonce","chaincode_proposal_input","endorser_signature","creator_id_bytes","payload_proposal_hash","endorser_id_bytes" ) VALUES( 
... 省略 ...

第二次执行将跳过前面操作(方便自己使用的笔记,请忽略)

cd  $GOPATH/src/github.com/hyperledger/blockchain-explorer
 nohup node ./main.js  &

错误:
如果peer数量显示不对首先需要检查服务发现是否能发现其他的节点
同组织的可以查看boot节点是否指定

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;