Hyperledger Fabricをお仕事で調査しているのですが、イマイチブロックチェーンのブロックの内容が分からないため、悶絶しておりました。何がロギングされているんや、といった具合に。で、SDKアクセスで見れないこともないんですが、今回は Hyperledger Explorer
というツールを用いてかっこいい感じで見てみます。
前提
Hyperleder Fabricをローカル環境(Mac)で動かそうとしている
Hyperleder Fabricを動かす
自分が書くよりもいろんな方が書かれているのでそれを参考にしてもらうのがお互い幸福度が上がりそうです。
FABCARというサンプルを動かすことを想定しています。
Docker Composeを使ってHyperledger Fabricのサンプルチェーンコードfabcarを試してみる
ブロックチェーン基盤 Hyperledger Fabric v1.0 アプリケーションの実装
Hyperledger Explorerを動かす
Hyperledger Explorerを動かしていきます
README読めば大体わかりますが下記のようにコマンド打ち込んでいけばOKです
Postgresqlのインストールが必要なので、brewでインストールしておきましょう
brew install postgresql # postgresqlのインストール
brew services start postgresql # 起動
SQLの実行は下記のコマンドで実行可能です。尚、DBを指定しているのは、DBを作成するクエリだとしても、DBの指定なしにpsqlを実行出来ないためです。
psql -d postgres
postgres=# \i app/persistance/postgreSQL/db/explorerpg.sql
postgres=# \i app/persistance/postgreSQL/db/updatepg.sql
ドキュメントによれば app/platform/fabric/config.json
の修正が必要ですが、これは先に作成したfabcarで参照しているデータにアクセス出来ればOKです。下記のように設定します。
{
"network-config": {
"org1": {
"name": "peerOrg1",
"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": "<fabric-samples-PATH>/basic-network/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt"
},
"admin": {
"key": "<fabric-samples-PATH>/basic-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore",
"cert": "<fabric-samples-PATH>/basic-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts"
}
}
},
"channel": "mychannel",
"orderers": [
{
"mspid": "OrdererMSP",
"server-hostname": "orderer.example.com",
"requests": "grpc://127.0.0.1:7050",
"tls_cacerts": "<fabric-samples-PATH>/basic-network/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt"
}
],
"keyValueStore": "/tmp/fabric-client-kvs",
"configtxgenToolPath": "<fabric-samples-PATH>/bin",
"SYNC_START_DATE_FORMAT": "YYYY/MM/DD",
"syncStartDate": "2018/01/01",
"eventWaitTime": "30000",
"license": "Apache-2.0",
"version": "1.1"
}
上記の config.json
は元々の設定から下記の設定を変更しています。
- peerを2つから1つに変更(fabric-samplesの構成が一つだけ)
- grpcsからgrpcに変更(ローカル環境なのでSSL通信しません)
あとは手順通りにnpmを実行していけばOKです
blockchain-explorer:$ npm install
blockchain-explorer:$ cd app/test
blockchain-explorer:$ npm install
blockchain-explorer:$ npm run test
blockchain-explorer:$ cd ../../client/
blockchain-explorer:$ npm install
blockchain-explorer:$ npm test ---u --coverage
blockchain-explorer:$ npm run build
blockchain-explorer:$ cd ..
blockchain-explorer:$ ./start.sh
起動に成功すると下記のような画面が確認できます
ブロックの中身も下記のように確認できます