Windows上にhyperledger/fabricを環境構築する。

Blockchain実装の大本命?であるhyperledger/fabricをローカルで動かしてみます。
fabricはethereumとかより非常に構築がしやすくなっています。

事前準備

まずは以下のソフトを入れましょう。

Goをインストールしたら環境変数に2つ登録します。

名前:GOROOT
 値:C:\Go\

名前:GOPATH
 値:C:\gopath    //任意のフォルダを作成する。

fabricのソースのDL

Gopathのなかにフォルダを作ってからGitCloneする。
src以下のフォルダ名は一致していないと後で困るのでここからはつづりミスをしないようきをつけましょう。

cd %GOPATH%
mkdir src\github.com\hyperledger
cd src\github.com\hyperledger
git config --global core.autocrlf false
git clone https://github.com/hyperledger/fabric.git

VMの起動

cd %GOPATH%\src\github.com\hyperledger\fabric\devenv\
vagrant up

最初にイメージをDLしたりするので20分ぐらいかかる。のんびりまちましょう。
これが終わって起動してきたらprovisionします

vagrant up --provision

これまたまあまあ時間がかかるのでのんびり待ちます。
これで基礎のイメージが出来ました。

処理が終わったら接続します。接続するやり方は以下の記事参照
garapon.hatenablog.com

membersrvcとpeerのDockerfileを作成

DockerFileを作ります。

cd $GOPATH/src/github.com/hyperledger/fabric
make peer-image
make membersrvc-image

出来たら確認する。

$ docker images
REPOSITORY                     TAG                 IMAGE ID            CREATED              SIZE
hyperledger/fabric-peer        latest              f30c8c516186        6 seconds ago        1.748 GB
hyperledger/fabric-ccenv       latest              bd03a61e190b        About a minute ago   1.738 GB
hyperledger/fabric-src         latest              0b4d156de3a8        About a minute ago   1.721 GB
hyperledger/fabric-baseimage   latest              6abe2f90116a        About a minute ago   1.687 GB
<none>                         <none>              3c19ba8a6065        6 hours ago          1.385 GB
busybox                        latest              2b8fd9751c4c        4 weeks ago          1.093 MB
hyperledger/fabric-baseimage   x86_64-0.0.10       a2392cc113fd        8 weeks ago          1.076 GB

こんな感じで出来ました。

起動

docker-compose -f docker-compose-4-consensus-batch.yml up --force-recreate -d

すると、MemberserviceとPeer4つがあがってきます。

$ docker ps
CONTAINER ID        IMAGE                           COMMAND                  CREATED             STATUS              PORTS                    NAMES
c80799b160e2        hyperledger/fabric-peer         "sh -c 'sleep 5; peer"   5 minutes ago       Up 4 minutes                                 bddtests_vp2_1
46f1ac71efb7        hyperledger/fabric-peer         "sh -c 'sleep 5; peer"   5 minutes ago       Up 5 minutes                                 bddtests_vp1_1
91c702ef6377        hyperledger/fabric-peer         "sh -c 'sleep 5; peer"   5 minutes ago       Up 5 minutes                                 bddtests_vp3_1
94ad8ce46101        hyperledger/fabric-peer         "sh -c 'sleep 5; peer"   5 minutes ago       Up 5 minutes        0.0.0.0:5000->5000/tcp   bddtests_vp0_1
1d32f4eed13f        hyperledger/fabric-membersrvc   "membersrvc"             5 minutes ago       Up 5 minutes                                 bddtests_membersrvc0_1

こんなかんじで、あがってくるので以下のようなポートにJSON投げまくればOK。

http://127.0.0.1:5000/chaincode 

Logを見たいときは以下

docker logs -f bddtests_vp0_1

明日はチェインコードのはデプロイをしてみます。