オープンソースのブロックチェーン Hyperledger Fablic を試してみる を書いたときには、自分で EC2 上に環境を立てていたのですが
IBM が Bluemix 上で提供している IBM Blockchain が、非常に敷居が低かったので紹介します。
Bluemix でサービスを作成・起動
まずは Bluemix のダッシュボードにアクセスします。
https://new-console.ng.bluemix.net/
右上にある「カタログ」リンクをクリックし、blockchain で検索します。
1件だけヒットするはずなので、そのパネルをクリックしてください。
サービスの概要ページに遷移します。
ここで必要があればサービス名や資格情報名を変更してください(特に大きな影響はないようです)。
スクロールすると価格プランが出ます。
Starter Developer plan には以下の機能をあり、すべて無料で使えます。
- 4つの検証ピアサーバと1つのCAサーバ
- チェーンコードのデプロイと実行・参照テスト
- ログと操作、APIのダッシュボード
- サンプルアプリとそのソースコード
「作成」ボタンを押すとすぐにサービスが作成されます。
「LAUNCH」ボタンを押すと、以下のような IBM Blockchain のダッシュボードが開きます。
IBM Blockchain でできること
IBM Blockchain のダッシュボードはかなり高機能で、それぞれ上部にあるタブから以下のことが行なえます。
Network
ネットワーク上にあるピアサーバと、デプロイされたチェーンコードの状態を確認できます。
Blockchain
チェーンに書き込まれたブロックやトランザクションの情報を確認できます。
- チェーン上のブロック数
- 時間あたりブロック数
- ブロックあたりトランザクション数
- デプロイトランザクション数(チェーンコードを設置した数)
- インボケーショントランザクション数(チェーンコードを実行した数)
- ブロックIDと、ブロックに含まれるトランザクションのタイプ、UUID、チェーンコードID、ペイロード
- 各ブロック・トランザクションのタイムスタンプ
Demo Chaincode
チェーンコードのサンプルアプリを設置・実行・参照できます。
「Deploy」ボタンを押すとサンプルアプリがチェーンコードとして設置されます。
少し待って設置が完了すると、チェーンコードの選択ボックスと、実行可能な操作と参照のボタンが現れます。
ボタンを押すと下のログ部分に結果が表示され、またしばらく待つと Block タブからも追加されたブロックを確認することができます。
「Links」からはサンプルアプリのソースコードを確認することができます。
APIs
ピアサーバに向けて REST API を叩くことができます。
URL横の「VP0~3」のボタンをクリックすると、向き先のピアサーバが変わります。
各APIはcurlコマンドなどで実行することもできますし、ダッシュボード上から叩くこともできます。
また、各APIを叩く際にユーザログインが必要になることがあります。
「Network's Enroll IDs」をクリックすると、始めにネットワークに登録されているユーザのIDとパスワードが表示されるので、それを使って Registrar API を叩くとログインができます。
それぞれのAPIについての詳細はこちらに書いていますので参考にしてください。
Hyperledger Fablic の REST API メモ
Logs
ピアサーバ・CA サーバのログを確認することができます。
チェーンコードを設置・実行した後や、APIを叩いた後に確認すると、ピアサーバやCAサーバで何が行われているのかを大まかに把握できます。
IBM Blockchain でできないこと
IBM Blockchain のバックエンドでは、Hyperledger Fablic の v0.5 (developer preview) が使われています。
現在の Hyperledger Fablic は v0.6 なので、チェーンコードのAPIなどに若干の違いがあります。
NodeSDK のバージョンが 5.3.0 でないとエラーになるといった問題もありました。
また、PaaS なので当たり前ですが、ピアサーバやCAサーバに直接入ることができないので、上手くいかないときの原因特定が難しいです。
とはいえ、IBM Blockchain はピアサーバやCAサーバを用意せずに一通り試すことができるメリットがあるので、まずどんなものか見てみたい方には非常におすすめです。
自分でチェーンコードを書いて、API経由でデプロイ・実行ができればもう一歩進めそうですね。
追加: Hyperledger Fablic のチェーンコード実装メモ を書きました。