1
4

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.

【EC2】Hyperledger Fabric v1.4.4 チュートリアル環境構築

1
Last updated at Posted at 2019-11-18

環境

  • EC2(Amazon Linux 2)
  • Docker v18.09
  • Docker-compose v1.24
  • Go lang v1.12
  • Node.js v8.9.4
  • npm v5.6.0
  • Python v2.7
  • Hyperledger Fabric v1.4.4

Fabcarディレクトリ構成

  • Chaincodeファイル
    ~/fabric-samples/chaincode/fabcar/go/配下
    ~/fabric-samples/chaincode/fabcar/javascript/lib/配下

  • Chaincode実行用SDKファイル
    ~/fabric-samples/fabcar/javascript/配下

Docker, Docker-composeインストール

1.パッケージのアップデート

$ sudo yum -y update

2.Dockerインストール

# インストール
$ sudo yum install -y docker

# dockerグループにユーザーを登録
$ sudo usermod -a -G docker ec2-user 

# 確認
$ cat /etc/group | grep docker

3.Docker-composeインストール→Docker起動

# インストール
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# バイナリに対して実行権限付与
$ sudo chmod +x /usr/local/bin/docker-compose

# 確認
$ docker-compose -v

# Docker起動
$ sudo service docker start

# 一度ログアウトして、dockerの環境情報を確認
$ docker info

Nodebrew(nvm)インストール

Nodebrewの場合

# インストール
$ curl -L git.io/nodebrew | perl - setup

# PATH通す
$ export PATH=$HOME/.nodebrew/current/bin:$PATH >> ~/.bash_profile

# 使用するNode.js(npm)のバージョン指定
$ nodebrew install-binary v8.9.4
$ nodebrew use v8.9.4

nvmの場合

# nvmインストール
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash

# nvmバージョン&インストール可能Node.jsバージョンの確認
$ nvm --version
$ nvm ls-remote

# 使用するNode.js(npm)のバージョンをインストール
$ nvm install v8.9.4

お好きな方で構築してください。

Goインストール

# インストール
$ sudo yum install golang

# PATH通す
$ export GOPATH=$HOME/go
$ export PATH=$PATH:$GOPATH/bin

# 確認
$ echo $GOPATH
$ go version

Fabricチュートリアル

1.ネットワーク起動

startFabric.shを実行することで、peer(Chaincodeを実行するコンテナ)やorderer(Chaincodeの実行順序を制御するコンテナ)、CA(アカウントを管理するコンテナ)用のDockerコンテナが起動し、peerにChaincodeをインストール/インスタンス化/初期化するところまでやってくれます。

# サンプルプログラムのインストール
$ curl -sSL http://bit.ly/2ysbOFE | bash -s // バージョン指定しない場合最新版インストール(2019/12/23時点: v1.4.4)→今回はこっち
$ curl -sSL http://bit.ly/2ysbOFE | bash -s 1.4.1  // バージョン指定する場合

$ cd fabric-samples/fabcar

# ブロックチェーンネットワークの起動
$ ./startFabric.sh javascript

# 起動コンテナの確認
$ docker ps --format "{{.Names}}"

ちなみにEC2のインスタンスタイプがt2.microではメモリ不足でChaincodeをインストールできないので、t3a.small(自分はこれでできました)以上にしましょう。

2.Chaincodeの確認

ちゃんとインスタンス化までできているか確認してみましょう。

# インストール済みChaincode確認
$ docker exec cli peer chaincode list --installed

# インスタンス化済みChaincode確認
$ docker exec cli peer chaincode list --instantiated -C mychannel

3.Chaincodeの実行

コンテナにインストールされたChaincodeを叩きにいきます。

# サンプルプログラムのディレクトリに移動
$ cd javascript

# ライブラリのインストール
$ npm install  // npm ERR!がでて、'fabric-network'を正常にインストールできていない場合、gccをインストールしてみる
$ sudo yum install gcc-c++

# gRPCバイナリをインストール
$ npm rebuild

# ユーザー作成&登録
$ node enrollAdmin.js
$ node registerUser.js
$ ls wallet
admin  user1

# 台帳(StateDB)のデータを参照
$ node query.js

# 台帳(StateDB)のデータを更新
$ node invoke.js

# ブロックチェーンネットワークの停止
$ cd ../../basic-network
$ ./stop.sh

npm installするときは、gccインストールするのを忘れずに。
次回はより実践的な内容で、Chaincodeを自作する(Node.js)記事でも書いてみます。

参考

参考になる記事が少ないので、オフィシャルドキュメントを参考にすることをおすすめします(一つ目)。
peer chaincode - Hyperledger Fabric docs - Read the Docs
Hyperledger Fabric v1.4 のプログラミングモデル
AWSのEC2でDockerを試してみる

1
4
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
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?