オープンソースのブロックチェーン環境である Hyperledger Fabric に待望の V1.0 がリリースされ、同時に初の公式版リリースとなりました:
http://hyperledger-fabric.readthedocs.io/en/latest/releases.html
オープンソースなので、(前提環境さえあれば)誰でも同環境をダウンロードして構築することができます。というわけで、以下ではその導入手順を紹介します。
【前提環境】
まず前提として以下の環境が必要になります:
Docker: 17.x for Linux or Mac OS X
Docker-Compose
Node.js V6.x(V8.x は未対応)
Docker は 17.x であればプラットフォームは問いません。自分は Ubuntu 14.04 および Mac OS X で確認しました。
今回紹介する方法では Fabric Composer のコマンドラインインターフェースを使って環境セットアップを行います。この Fabric Composer コマンドラインインターフェース(composer-cli)の導入前提として Node.js 環境が必要です。なお Node.js V6.x を用意してください、V8.x には未対応です。
【Hyperledger Fabric コマンドラインインターフェースを導入】
Node.js と同時に導入する npm を使って composer-cli をインストールします:
【Hyperledger Fabric サポートツールを導入】
Hyperledger Fabric V1.0 環境を docker 内に構築するためのツールをダウンロード&展開します。以下の例では fabric というフォルダを作ってその中にダウンロード&展開していますが、ここは作業用ディレクトリなので任意の空フォルダで構いません:
【サポートツールを使って Hyperledger Fabric V1.0 環境を導入】
展開したサポートツールを使って Hyperledger Fabric V1.0 (の docker イメージ)をダウンロードして、実行します(docker サービスが稼働している必要があります):
ここまでの作業で Hyperledger Fabric V1.0 が起動しました! docker コマンドでこの時点での稼働サーバーの(プロセスの)様子を確認します(青字が出力内容):
1つのピア(peer0.org1.example.com)や、CA、CouchDB(Cloudant) などが docker 上で稼働していることが確認できました。
【デフォルトプロファイルの作成】
最後に Composer を使ってデフォルトのプロファイルを作成します。これもサポートツールを使って実行します:
【Hyperledger Fabric V1.0 の停止】
サービスを停止する場合もサポートツールで用意されているコマンドを使います:
このコマンドを実行した後に再度 docker プロセスを確認すると、先程まで動いていたサーバーが止まっていることが確認できます:
というわけで、Docker (+Docker Compose) 環境があれば簡単に Hyperledger Fabric V1.0 が動かせるようになりました!
ここまでの内容だと、単に Hyperledger Fabric v1.0 を使ったブロックチェーンのネットワークを動かすまでの説明であって、UIとかで動いている様子を見れるわけではないのでちとわかりにくい部分があるかもしれません。そのあたりやアプリケーション開発に関してはおいおいと。。
http://hyperledger-fabric.readthedocs.io/en/latest/releases.html
オープンソースなので、(前提環境さえあれば)誰でも同環境をダウンロードして構築することができます。というわけで、以下ではその導入手順を紹介します。
【前提環境】
まず前提として以下の環境が必要になります:
Docker: 17.x for Linux or Mac OS X
Docker-Compose
Node.js V6.x(V8.x は未対応)
Docker は 17.x であればプラットフォームは問いません。自分は Ubuntu 14.04 および Mac OS X で確認しました。
今回紹介する方法では Fabric Composer のコマンドラインインターフェースを使って環境セットアップを行います。この Fabric Composer コマンドラインインターフェース(composer-cli)の導入前提として Node.js 環境が必要です。なお Node.js V6.x を用意してください、V8.x には未対応です。
【Hyperledger Fabric コマンドラインインターフェースを導入】
Node.js と同時に導入する npm を使って composer-cli をインストールします:
※Node.js V8.x だとここでコケます。Node.js V6 環境で行ってください。$ sudo npm install -g composer-cli
【Hyperledger Fabric サポートツールを導入】
Hyperledger Fabric V1.0 環境を docker 内に構築するためのツールをダウンロード&展開します。以下の例では fabric というフォルダを作ってその中にダウンロード&展開していますが、ここは作業用ディレクトリなので任意の空フォルダで構いません:
$ mkdir fabric (作業用フォルダ)
$ cd fabric
$ curl -O https://raw.githubusercontent.com/hyperledger/composer-tools/master/packages/fabric-dev-servers/fabric-dev-servers.zip
$ unzip fabric-dev-servers.zip
【サポートツールを使って Hyperledger Fabric V1.0 環境を導入】
展開したサポートツールを使って Hyperledger Fabric V1.0 (の docker イメージ)をダウンロードして、実行します(docker サービスが稼働している必要があります):
$ ./downloadFabric.sh $ ./startFabric.sh
ここまでの作業で Hyperledger Fabric V1.0 が起動しました! docker コマンドでこの時点での稼働サーバーの(プロセスの)様子を確認します(青字が出力内容):
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d2561aba32f0 hyperledger/fabric-peer:x86_64-1.0.0 "peer node start -..." 22 minutes ago Up 22 minutes 0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp peer0.org1.example.com
b189b5837328 hyperledger/fabric-couchdb:x86_64-1.0.0 "tini -- /docker-e..." 22 minutes ago Up 22 minutes 4369/tcp, 9100/tcp, 0.0.0.0:5984->5984/tcp couchdb
5dc8e344f9f3 hyperledger/fabric-ca:x86_64-1.0.0 "sh -c 'fabric-ca-..." 22 minutes ago Up 22 minutes 0.0.0.0:7054->7054/tcp ca.org1.example.com
5552ed31eb7d hyperledger/fabric-orderer:x86_64-1.0.0 "orderer" 22 minutes ago Up 22 minutes 0.0.0.0:7050->7050/tcp orderer.example.com
1つのピア(peer0.org1.example.com)や、CA、CouchDB(Cloudant) などが docker 上で稼働していることが確認できました。
【デフォルトプロファイルの作成】
最後に Composer を使ってデフォルトのプロファイルを作成します。これもサポートツールを使って実行します:
$ ./createComposerProfile.sh
【Hyperledger Fabric V1.0 の停止】
サービスを停止する場合もサポートツールで用意されているコマンドを使います:
$ ./stopFabric.sh
このコマンドを実行した後に再度 docker プロセスを確認すると、先程まで動いていたサーバーが止まっていることが確認できます:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
というわけで、Docker (+Docker Compose) 環境があれば簡単に Hyperledger Fabric V1.0 が動かせるようになりました!
ここまでの内容だと、単に Hyperledger Fabric v1.0 を使ったブロックチェーンのネットワークを動かすまでの説明であって、UIとかで動いている様子を見れるわけではないのでちとわかりにくい部分があるかもしれません。そのあたりやアプリケーション開発に関してはおいおいと。。