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
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
明日はチェインコードのはデプロイをしてみます。