1. akehoyayoi

    Posted

    akehoyayoi
Changes in title
+Hyperledger Fabricのブロックの内容を見る
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,100 @@
+Hyperledger Fabricをお仕事で調査しているのですが、イマイチブロックチェーンのブロックの内容が分からないため、悶絶しておりました。何がロギングされているんや、といった具合に。で、SDKアクセスで見れないこともないんですが、今回は `Hyperledger Explorer` というツールを用いてかっこいい感じで見てみます。
+
+# 前提
+
+Hyperleder Fabricをローカル環境(Mac)で動かそうとしている
+
+# Hyperleder Fabricを動かす
+
+自分が書くよりもいろんな方が書かれているのでそれを参考にしてもらうのがお互い幸福度が上がりそうです。
+FABCARというサンプルを動かすことを想定しています。
+
+[Docker Composeを使ってHyperledger Fabricのサンプルチェーンコードfabcarを試してみる](https://qiita.com/masayuki5160/items/02d86ff1a1b43ef510cb)
+[ブロックチェーン基盤 Hyperledger Fabric v1.0 アプリケーションの実装](http://hiroki-sawano.hatenablog.com/entry/2017/11/19/173926)
+
+# Hyperledger Explorerを動かす
+
+[Hyperledger Explorer](https://github.com/hyperledger/blockchain-explorer)を動かしていきます
+README読めば大体わかりますが下記のようにコマンド打ち込んでいけばOKです
+
+Postgresqlのインストールが必要なので、brewでインストールしておきましょう
+
+```bash
+brew install postgresql # postgresqlのインストール
+brew services start postgresql # 起動
+```
+
+SQLの実行は下記のコマンドで実行可能です。尚、DBを指定しているのは、DBを作成するクエリだとしても、DBの指定なしにpsqlを実行出来ないためです。
+
+```bash
+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です。下記のように設定します。
+
+```json:config.json
+{
+ "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です
+
+```bash
+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
+```
+
+起動に成功すると下記のような画面が確認できます
+
+![image.png](https://qiita-image-store.s3.amazonaws.com/0/8350/1cac7477-936f-17aa-d7b4-7ad50ce40672.png)
+
+ブロックの中身も下記のように確認できます
+
+![画像がペーストされた日時- 2018_07_07 11_02 午前.png](https://qiita-image-store.s3.amazonaws.com/0/8350/54e39f41-069b-85ee-1ccc-6650b2ec6e42.png)