Hyperledger Explorer（v0.3.7版）で確認できる情報

Hyperledger Explorerを動作させてみて、画面から確認できる情報をまとめました。
利用したHyperledger Explorerのバージョンは、v0.3.7です。

Githubプロジェクト
https://github.com/hyperledger/blockchain-explorer/blob/master/README.md


また、Hyperledger ExplorerやHyperledger Fabricの導入方法は他記事としてまとめています。
こちらのリンクから各記事に遷移できますので、ご興味があれば。

参考
[Hyperledger Fabric 1.2.1を動かして、ブロックチェーンの動作を確認・検証しよう](https://qiita.com/kyoko7tam/items/6e0eea28ac8340f6897e)

## 背景
Blockchain関連の仕事をしていると、「Blockの中身が見たい」という要望がよくあがります。
しかし、Blockchainを利用したアプリケーションを作っても、Blockの中身を見るためのバックオフィスアプリケーションの開発には工数がかさみます。開発者はAPI経由で確認できますが、利用者はバックエンドでBlockchainが動いているかどうか見えにくく、確認は困難です。

そんな要望には、公式のHyperlederプロジェクトで提供されている、Hyperledger Explorerを利用することが効果的ではと考え、どういう情報が取得できるか、を調査しました。

## Hyperledger Explorerを利用するシーン
・実際にはBlockの中身を気にしなくてよいものの、せっかくBlockchainと利用したアプリケーションなのだから、そのBlockの中身がどうなっているか見たい。
・APIなんて使ったことない。APIの戻り値を見てもよくわからない。
・バックオフィスアプリケーションが必要だけどそこまで開発している工数がない

## Hyperledger Explorerとは
公式サイト
https://www.hyperledger.org/projects/explorer


公式サイトから抜粋
>Hyperledger Explorer is a blockchain module and one of the Hyperledger projects hosted by The Linux Foundation. Designed to create a user-friendly Web application, Hyperledger Explorer can view, invoke, deploy or query blocks, transactions and associated data, network information (name, status, list of nodes), chain codes and transaction families, as well as any other relevant information stored in the ledger. Hyperledger Explorer was initially contributed by IBM, Intel and DTCC. Check the current status of Hyperledger Explorer here.


翻訳すると、以下のように書かれています。つまり、Hyperledger Explorerは、ブロック、トランザクションなどを表示してくれる、と言っています。
>Hyperledger Explorerは、ブロック、トランザクションおよび関連データ、ネットワーク情報（名前、ステータス、ノードのリスト）、チェーンコードおよびトランザクションファミリなどを表示、呼び出し、展開またはクエリできます。

## Hyperledger Explorer インストール手順
導入方法は、こちらの記事を参考にしてください。
[ブロックチェーン可視化ツール Hyperledger Explorer で Hyperledger Fabric ブロックチェーンを見てみよう（v1.2.1対応版)](https://qiita.com/hi5san/items/c28b71205534d93be46c)



ここから、各画面で何が見られるかを記載します。
## Dashboard 画面
メイン画面です。起動するとDASHBOARDが画面が表示されます。
私が起動したときは夜モードで開きました。
![dashboard_night.png](https://qiita-image-store.s3.amazonaws.com/0/305972/d25275f2-e2de-254b-ede1-41fda1e75990.png)

画面右上をクリックすると昼モードにかえることができます。
![dashboard_morning.png](https://qiita-image-store.s3.amazonaws.com/0/305972/21f9150c-ea9a-7128-d6ad-11627ef27bc0.png)


DASHBOARD画面では、以下を見ることができます。
- Peerの数・名前・状態
- 各Blockのチャネル、データハッシュ
- Block/Transactionのタイムライン
- Blockchainの組織


画面上部には6つタブがあり、Dashboardは一番左のタブにあります。
- DASHBOARD
- NETWORK
- BLOCKS
- TRANSACTIONS
- CHAINCODES
- CHANNELS


## NETWORK 画面、BLOCKS 画面
NETWORKタブでは、各Peerの名前とURLなどがわかります。
![NETWORK.png](https://qiita-image-store.s3.amazonaws.com/0/305972/6befb2aa-2692-e14c-997c-3a81abcbe100.png)

各画面で共通の機能で、テキストボックスに値を入力すると表示内容がフィルタリングされます。
![NETWORK_filter.png](https://qiita-image-store.s3.amazonaws.com/0/305972/f9833e78-d546-7103-e7c9-8aeb00ea8142.png)

BLOCKSのタブはこちら。
各BlockのDataハッシュやBlockハッシュを確認することができます。
![BLOCKS.png](https://qiita-image-store.s3.amazonaws.com/0/305972/28223caa-f08c-9e4b-de5f-1c4a33fde0f2.png)


# TRANSACTIONS 画面
TRANSACTIONSタブでは、その名のとおりトランザクションの一覧が表示されています。
![TRANSACTIONS.png](https://qiita-image-store.s3.amazonaws.com/0/305972/bbae60af-6ced-39f5-aaf4-4bdd760d4d2a.png)

Tx Idが「628b9c...」のリンクを押下すると、トランザクションの詳細がモーダルウィンドウで表示されます。
折りたたまれている情報をすべて表示するとこのように見えます。
![TRANSACTION_detail_1.png](https://qiita-image-store.s3.amazonaws.com/0/305972/6c46fff7-127f-167a-ad90-d16d031e68ab.png)

Read Write SetはJSONが折りたたまれています。すべて表示した形がこちら。
[BYFN](https://hyperledger-fabric.readthedocs.io/en/release-1.3/build_network.html)のシナリオである、「a」が「100」を、「b」が「200」を持っていることがわかります。
![TRANSACTION_detail_2.png](https://qiita-image-store.s3.amazonaws.com/0/305972/a72ce1e0-98ab-2f77-70c2-437e39382317.png)

Tx Idが「725f64...」のリンクを押下したときのWrite Setがこちら。
「a」から「b」に「10」が移動したことがわかります。
![TRANSACTION_detail_3.png](https://qiita-image-store.s3.amazonaws.com/0/305972/81274e1f-084a-c3ca-d68d-3ac453f4ce07.png)


## CHAINCODES 画面
CHAINCODESのタブでは、chaincodeの名前、配置パスがわかります。
![CHAINCODES_1.png](https://qiita-image-store.s3.amazonaws.com/0/305972/6d54c643-7c65-e2c5-8b9e-c29711924e66.png)

ただし、Chaincode Namesのリンクで何を表現しようとしているかはわかりませんでした。Chaincodeの中身を表示させようとしているのかもしれませんが、執筆時点では「Location not found」と表示されます。
もしかしたら、私のローカル設定次第では表示できるのかもしれません。
![CHAINCODES_2.png](https://qiita-image-store.s3.amazonaws.com/0/305972/cbedf594-42b6-62eb-b29e-2d9a6b341121.png)


# CHANNELS
CHNNALESタブでは、channel情報がわかります。
私の今回の設定ではChannelが一つなので面白くない表示ですが、Multi Channelの場合は複数表示されるのかもしれません。
![CHANNELS.png](https://qiita-image-store.s3.amazonaws.com/0/305972/2baa22bd-2d7c-7209-c191-5172596e65b1.png)



# 今後
本記事は、Hyperledger Explorer(v0.3.7)の画面を載せることで、Hyperledger Explorerを導入しようとされている方にどんな情報が画面上表示されているかを伝える目的で執筆いたしました。

おそらくHyperledger Explorerは、Hyperledger FabricのAPIをたたいて情報を取得していると思いますので、今後は画面とAPIの関係性を確認できたらいいな、と思っています。