1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Hyperledger fabric をビルドしてみる

Last updated at Posted at 2017-10-14

HyperledgerプロジェクトのHyperledger fabricは、バイナリをダウンロードしてつかうことができます。

ここでは、OSSとしてソースが公開されているのだから、あるいは、とにかく最新の状況に追随したいなどの理由があるかと思いますが、せっかくですからソースからビルドしてみたいと思います。

1. Hyperledger fabricのビルド

GithubのリポジトリをみてもHyperledger fabric関連のものが10以上公開されています。ここでは、まずfabric-baseimageをビルドして開発用のコンテナを作成し、fabric-baseimageを使用してfabric-cafabricをビルドしていきます。

2. fabric-baseimageのビルド

最初に、以下の手順でfabric-baseimageをビルドします。準備としてfabricの開発に利用されているGoをインストール済みで環境変数も設定されているものとします。

ここでは、Go 1.9.1をインストールして、以下の設定となっています。

GOPATH=/usr/local
GOROOT=/usr/local/go

それでは、始めましょう。

cd /usr/local
mkdir -p github.com/hyperledger
cd github.com/hyperledger
git clone https://github.com/hyperledger/fabric-baseimage.git

現在のリリースをタグで確認してみます。

cd fabric-baseimage
git tag
...
v0.4.2

現時点(2017/10/14)では、v0.4.2 までリリースされています。

クローンしたディレクトリで、タグをv0.4.2にして実際にビルドしてみます。

git checkout refs/tags/v0.4.2
make

ここで、Makefileを見るとv0.4.2にしていますからIS_REELEASE=trueですが、マスターブランチの場合以下となっています。

VERSION ?= 0.4.3
IS_RELEASE=false

この状態でビルドすると、v0.4.3のスナップショットが作成されるようになっています。ここでは、v0.4.2でビルドしてみます。

$ docker images
REPOSITORY                     TAG                 IMAGE ID            CREATED           SIZE
hyperledger/fabric-baseimage   armv7l-0.4.2        33ebe04e2ec2        12 hours ago        1.15GB
hyperledger/fabric-baseimage   latest              33ebe04e2ec2        12 hours ago        1.15GB
hyperledger/fabric-basejvm     armv7l-0.4.2        9e1e5e3400b1        15 hours ago        456MB
hyperledger/fabric-basejvm     latest              9e1e5e3400b1        15 hours ago        456MB
hyperledger/fabric-baseos      armv7l-0.4.2        fe695ff1313f        15 hours ago        171MB
hyperledger/fabric-baseos      latest              fe695ff1313f        15 hours ago        171MB
armv7/armhf-ubuntu             latest              4d7ccbc584c8        11 months ago       122MB

そう、Raspberry Piでビルドしていますが、私の環境では3時間弱でした(クラウドでは30分弱)。

3. fabric-caのビルド

続けてfabric-caをビルドしてみます。

cd /usr/local/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric-ca.git
cd fabric-ca
git tag
git checkout refs/tags/v1.0.3

クローンしてタグを見ると現時点(2017/10/14)ではv1.0.3がリリースされていましたので、このバージョンにしています。

ところがMakefileBASEIMAGE_RELEASEを見ると0.3.1ですから、fabric-baseimageとはバージョンの整合が取れていないようです。ここは、fabric-baseimage0.3.1にしても良いのですが、Makefileを修正して0.4.2でビルドしちゃいましょう。

$ vi Makefile
BASEIMAKE_RELEASE = 0.4.2
$ make docker

ビルドできると、次のようにコンテナが作成されます。私の環境では、約8分ほど(クラウドでは2分弱)でビルドできました。

$ docker images
REPOSITORY                     TAG                 IMAGE ID            CREATED           SIZE
hyperledger/fabric-ca          armv7l-1.0.3        7fa1e410181c        6 minutes ago       240MB
hyperledger/fabric-ca          latest              7fa1e410181c        6 minutes ago       240MB

4. fabricのビルド

最後にfabricをビルドします。

cd /usr/local/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git
cd fabric
git tag
git checkout refs/tags/v1.0.3

fabricも現在(2017/10/14)の最新のタグでビルドしてみます。fabric-caと同様にというか、こちらはbaseimageとして0.3.2を使用しているようですから修正して0.4.2でビルドすることにします。

$ vi .baseimage-release
0.4.2
$ make docker

ビルドできると、以下のように沢山のコンテナが作成されます。私の環境では、約28分(クラウドでは7分弱)でした。

$ docker images
REPOSITORY                     TAG                 IMAGE ID            CREATED           SIZE
hyperledger/fabric-tools       armv7l-1.0.3        23b8093b375e        4 minutes ago       1.21GB
hyperledger/fabric-tools       latest              23b8093b375e        4 minutes ago       1.21GB
hyperledger/fabric-couchdb     armv7l-1.0.3        6df83554f29a        7 minutes ago       1.37GB
hyperledger/fabric-couchdb     latest              6df83554f29a        7 minutes ago       1.37GB
hyperledger/fabric-kafka       armv7l-1.0.3        cd4eb25a856d        18 minutes ago      1.18GB
hyperledger/fabric-kafka       latest              cd4eb25a856d        18 minutes ago      1.18GB
hyperledger/fabric-zookeeper   armv7l-1.0.3        0fdf2dcbdf9c        19 minutes ago      1.2GB
hyperledger/fabric-zookeeper   latest              0fdf2dcbdf9c        19 minutes ago      1.2GB
hyperledger/fabric-testenv     armv7l-1.0.3        b9d161f73949        20 minutes ago      1.28GB
hyperledger/fabric-testenv     latest              b9d161f73949        20 minutes ago      1.28GB
hyperledger/fabric-buildenv    armv7l-1.0.3        5850e536d9df        24 minutes ago      1.2GB
hyperledger/fabric-buildenv    latest              5850e536d9df        24 minutes ago      1.2GB
hyperledger/fabric-orderer     armv7l-1.0.3        1f93ac8b56ad        25 minutes ago      190MB
hyperledger/fabric-orderer     latest              1f93ac8b56ad        25 minutes ago      190MB
hyperledger/fabric-peer        armv7l-1.0.3        4ec6198cf40e        26 minutes ago      193MB
hyperledger/fabric-peer        latest              4ec6198cf40e        26 minutes ago      193MB
hyperledger/fabric-javaenv     armv7l-1.0.3        82fecd854b30        27 minutes ago      1.26GB
hyperledger/fabric-javaenv     latest              82fecd854b30        27 minutes ago      1.26GB
hyperledger/fabric-ccenv       armv7l-1.0.3        cbe8d829188d        28 minutes ago      1.18GB
hyperledger/fabric-ccenv       latest              cbe8d829188d        28 minutes ago      1.18GB

5. fabric-samplesを動かす

一通りビルドできたら、Hyperledger fabric 1.0.1 をドキュメント通りに動かすの手順で動かしてみます。

今までと同様にタグを見るとv1.0.2になっていますので、これを使用してみます。

cd /usr/local/src/github.com/hyperledger
git clone https:/github.com/hyperledger/fabric-samples.git
cd fabric-samples
git tag
git checkout refs/tags/v1.0.2

後は、上記のページのように実行してみます。Raspberry Piを使用しても、無事に実行できているようです。

__(おまけ)__fabricのバージョンがあがっているためか、上記のページを書いた頃よりも倍以上速くなっているようでした。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?