Hyperledger Fabricのブロック状態を可視化できるblockchain explorerを構築してみます。
前提となる環境
前回、ローカル環境にHyperledger Fabricを構築しました。
こちらの手順にてあらかじめFabricの各サービスを起動しておきます。
Block explorerは8080ポートを使用します。ほかのアプリケーションが8080ポートを使用していないことを確認します。
なお、以下の手順はFabric CAを使用しない場合の設定です。
Hyperledger Fabric Explorerの構築
構築に必要なファイルの準備
fabric-samplesフォルダと同階層に、blockchain-explorerコードをGitからcloneします。
cloneしたらtest-networkの証明書関連の情報を、explorerのフォルダにコピーします。
$ pwd
/c/Users/dssfan/fabric-samples
$ cd ../
$ git clone https://github.com/hyperledger-labs/blockchain-explorer
$ cd blockchain-explorer
$ cp -r ../fabric-samples/test-network/organizations .
設定ファイルの修正
blockchain-explorer下にコピーしたorganizations以下の証明書のパスを設定ファイルに記載します。
User1の情報として記載されている部分を、Adminの情報に置き換えます。
赤字:修正前
緑字:修正後
$ git diff
diff --git a/examples/net1/connection-profile/test-network.json b/examples/net1/connection-profile/test-network.json
index 44eb3dc..53b0812 100644
--- a/examples/net1/connection-profile/test-network.json
+++ b/examples/net1/connection-profile/test-network.json
@@ -29,11 +29,11 @@
"Org1MSP": {
"mspid": "Org1MSP",
"adminPrivateKey": {
- "path": "/tmp/crypto/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/priv_sk"
+ "path": "/tmp/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/e956a7d3bd5d1ad6cd0c666e64fdc9efc5b38f92831a82951e51815a477bc7ae_sk"
},
"peers": ["peer0.org1.example.com"],
"signedCert": {
- "path": "/tmp/crypto/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/User1@org1.example.com-cert.pem"
+ "path": "/tmp/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/cert.pem"
}
}
},
blockchain explorerの起動
環境変数の情報を読み込み、Dockerを起動します。
この起動により、フロントエンドのサービスおよびブロック情報を格納するデータベースサービスが起動します。
docker psコマンドにより、hyperledger/explorerおよびhyperledger/explorer-dbが起動できていれば設定の完了です。
hyperledger/explorerが起動できない場合は、証明書等の設定に誤りがある可能性が高いので、パスおよびファイル名を確認します。
$ pwd
/c/Users/dssfan/blockchain-explorer
$ source .env
$ docker-compose up -d
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d5a74bf3bb1f hyperledger/explorer:latest "docker-entrypoint.s…" 51 minutes ago Up 51 minutes 0.0.0.0:8080->8080/tcp explorer.mynetwork.com
580d4fbde358 hyperledger/explorer-db:latest "docker-entrypoint.s…" 52 minutes ago Up 52 minutes (healthy) 5432/tcp explorerdb.mynetwork.com
6c76513a2f42 basic_ccaas_image:latest "/tini -- /usr/src/a…" 4 hours ago Up 4 hours 9999/tcp peer0org2_basic_ccaas
4dc843b2ec54 basic_ccaas_image:latest "/tini -- /usr/src/a…" 4 hours ago Up 4 hours 9999/tcp peer0org1_basic_ccaas
40df41fc37a5 hyperledger/fabric-tools:latest "/bin/bash" 4 hours ago Up 4 hours cli
15571810f48f hyperledger/fabric-orderer:latest "orderer" 4 hours ago Up 4 hours 0.0.0.0:7050->7050/tcp, 0.0.0.0:7053->7053/tcp, 0.0.0.0:9443->9443/tcp orderer.example.com
f201a78c1a91 hyperledger/fabric-peer:latest "peer node start" 4 hours ago Up 4 hours 0.0.0.0:9051->9051/tcp, 7051/tcp, 0.0.0.0:9445->9445/tcp peer0.org2.example.com
d97a72574304 hyperledger/fabric-peer:latest "peer node start" 4 hours ago Up 4 hours 0.0.0.0:7051->7051/tcp, 0.0.0.0:9444->9444/tcp peer0.org1.example.com
8d97d04e59de hyperledger/fabric-ca:latest "sh -c 'fabric-ca-se…" 4 hours ago Up 4 hours 0.0.0.0:9054->9054/tcp, 7054/tcp, 0.0.0.0:19054->19054/tcp ca_orderer
f21a5c3f7b1d hyperledger/fabric-ca:latest "sh -c 'fabric-ca-se…" 4 hours ago Up 4 hours 0.0.0.0:8054->8054/tcp, 7054/tcp, 0.0.0.0:18054->18054/tcp ca_org2
1e7d906c03b7 hyperledger/fabric-ca:latest "sh -c 'fabric-ca-se…" 4 hours ago Up 4 hours 0.0.0.0:7054->7054/tcp, 0.0.0.0:17054->17054/tcp ca_org1
blockchain explorerの表示
ブラウザから確認
ブラウザを起動し、http://localhost:8080にアクセスします。
ログイン画面が表示されます。
User: exploreradmin
Password:exploreradminpw
を入力します。
以下の画面が表示されます。
トランザクション情報の確認
メニューからtransactionsをクリックします。
確認するTxIdをクリックします。
ダイアログにある、ReadもしくはWriteからトランザクションの入出力情報を確認することができます。
blockchain explorer構築手順は以上です。
補足
ブロック情報の初期化
ブロック情報はデータベースに保持されています。
データベースを初期化する場合は以下のコマンドを実行し、Dockerボリュームを削除します。
$ pwd
/c/Users/dssfan/blockchain-explorer
$ docker-compose down -v
$ docker volume rm blockchain-explorer_pgdata
$ docker volume rm blockchain-explorer_walletstore
次回は
DataSpiderSDKによりアダプタの実装例を紹介したいと思います。