Hyperledger Composer (2018年5月28日時点) をIDCFクラウドに導入する手順

ブロックチェーンを用いたアプリケーションを開発ができる「Hyperledger Composer」導入について、公式ドキュメントが英語で、たまにトラブルに遭遇するので、トラブル回避のための記録です。

IDCFクラウドの標準のイメージテンプレートでは、ストレージが標準15GBなのでストレージ不足のため、標準のイメージテンプレートは使わずに、付属のISOファイルから仮想サーバーを立てています。IDCFクラウド付属のISO「Ubuntu-16.0.4.2-server-amd64.iso」を使用しました。ストレージは、25GB以上は欲しいです。 またIDCFクラウド仮想サーバーのマシンタイプは最低限「light.S2」が望ましいです。「light.S1」で動かすのは厳しいです。マシンタイプ「light.S2」でストレージ30GB、月2,000円と表示されました。

次はnode.js についてです。Hyperledger Composer は、ブロックチェーン基盤としてHyperledger Fabricを使用します。Hyperledger Composer 0.19.4 までは、パッケージマネージャを使ってnode.jsを導入していました。(Qiitaで書いた記事)

5月28日時点で、nvm でnode.jsを導入することでトラブルが減りましたので、公式のHyperledger Composer Docs で述べられている「prereqs-ubuntu.sh」を使った方が良いです。

$ sudo apt-get update -y && sudo apt-get install git wget nano curl software-properties-common build-essential
$ sudo apt-get upgrade -y
$ curl -O https://hyperledger.github.io/composer/unstable/prereqs-ubuntu.sh
$ chmod u+x prereqs-ubuntu.sh
$ ./prereqs-ubuntu.sh
$ sudo reboot

再起動後、再びSSH接続。次のコマンドを順次実行していきます。

$ npm install -g composer-cli
$ npm install -g composer-rest-server
$ npm install -g generator-hyperledger-composer
$ npm install -g yo
$ npm install -g composer-playground
$ mkdir ~/fabric && cd ~/fabric
$ curl -O https://raw.githubusercontent.com/hyperledger/composer-tools/master/packages/fabric-dev-servers/fabric-dev-servers.tar.gz
$ tar -xvf fabric-dev-servers.tar.gz
$ ./downloadFabric.sh
$ ./startFabric.sh
$ ./createPeerAdminCard.sh

これにて、Hyperledger Composerの標準的な導入は終わりです。 5月28日時点、「composer-cli」「composer-rest-server」「generator-hyperledger-composer」「composer-playground」の各バージョンは、0.19.6 が入りました。 5月28日以降でトラブルが起きる場合は、@0.19.6 を各コマンドの末尾につけてバージョン指定でインストールします。

次にRESTが使えるか確認のため、yo hyperledger-composer を使って、RESTでデータを扱うアプリ(ビジネスネットワーク)を作っていきます。composer-rest-server を実行して、”Error: Cannot find module 'ieee754'” と出た場合は、次のコマンドを実行してから、composer-rest-serverを実行し直します。

$ npm install -g ieee754 --save-dev

composer-rest-server 起動後、別のネットワーク環境から、curl -X POST にて、外部からRESTが使えるか確認します。こちらでは確認済みですが、自宅や会社のネットワークに引っかかることがありますので、動作確認は非常に重要です。