まだプログラマーですが何か?

プログラマーネタとアスリートネタ中心。たまに作成したウェブサービス関連の話も http://twitter.com/dotnsf

オープンソースのブロックチェーン環境である 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 をインストールします:
$ sudo npm install -g composer-cli
※Node.js V8.x だとここでコケます。Node.js V6 環境で行ってください。


【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とかで動いている様子を見れるわけではないのでちとわかりにくい部分があるかもしれません。そのあたりやアプリケーション開発に関してはおいおいと。。


ラズベリーパイに go 言語をインストールします。
go_lang1


といっても普通に
$ sudo apt-get install golang

でもインストールは可能です。ただこの方法で go をインストールすると、少し古いバージョン 1.3 が導入されます。このバージョンでも問題なければこの方法でもいいのですが、以下はバージョン 1.8 の導入方法を紹介します。

具体的には Google のサイトから、ラズパイ用にビルドされたバイナリをダウンロードし、展開します:
$ cd /tmp
$ wget https://storage.googleapis.com/golang/go1.8.linux-armv6l.tar.gz
$ sudo tar -C /usr/local -xzf go1.8.linux-armv6l.tar.gz

続いて環境変数を設定します。~/.bashrc に以下の行を追加します:
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

この例では GOPATH を ~/go に設定しています。go 言語のソースコードを書く場合のフォルダを指定しています。

この状態で再ログインするか、source ~/.bashrc を実行すると設定内容が有効になって、go 1.8 が使えるようになります:
$ go version
go version go1.8 linux/arm


「PC 向けのラズベリーパイ環境」である PIXEL for PC を日本語化して、日本語が使えるようにします。PIXEL for PC のインストールは環境しているものとします。必要な場合はこちらのエントリを参照してください:
PIXEL for PC をインストールする


まずは PIXEL のロケールを変更します。メニューから Preferences - Raspberry Pi Configuration を選びます:
2017073001


"Raspberry Pi Configuration" ダイアログが表示されるので、"Localisation" タブを選択し、"Locale", "Timezone", "Keyboard", "WiFi Country" をそれぞれ設定します:
2017073002


ちなみに自分の場合は全て日本で日本語環境で利用する前提でこのようにしました。まず Locale は ja_JP の UTF-8 を指定:
2017073003


Timezone は Asia/Tokyo を指定:
2017073004


Keyboard は Japan - Japanese を指定:
2017073005


そして WiFi Country は Japan を指定しました。英語環境で使いたい場合や日本以外のタイムゾーンで使うケースなどはそれぞれ読み替えてください:
2017073006


最後の OK ボタンをクリックした時に PIXEL を再起動をするよう促されるので、いったん再起動します。再起動すると設定したロケール(上記の場合は日本語)が有効になり、メニューが日本語されたり、時計が日本時間に設定されます:
2017073001


PIXEL にはデフォルトでは日本語入力機能も日本語フォントも(一部しか)導入されていません。これらをまとめて導入します。LXTerminal を起動して以下のコマンドを実行します(赤字はコメント):
$ sudo apt install uim uim-mozc  日本語入力機能
$ sudo apt-get install ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big fonts-vlgothic  日本語フォント

導入後に PIXEL を再起動すると日本語入力が有効になります。なお日本語英語切り替えは Shift + SPACE で行います:
2017073002


 PIXEL でも日本語入力が可能になりました。

このページのトップヘ