6
3

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.

1年目エンジニアがHyperledger-Fabricのサンプルを触ってみた!(準備編)

Last updated at Posted at 2019-01-17

#はじめに

文系出身エンジニアです。1年目です。

Blockchainに携わることとなり、とりあえずHyperledgerのサンプルアプリでも動かしてみようか、という次第でこの記事を書いてます。

基本的には、以下のチュートリアルでやっていることをなぞっているだけです。すみません。
[Getting Started]
(https://hyperledger-fabric.readthedocs.io/en/release-1.4/getting_started.html)

ただの作業ログだと思って見てください。

#環境

  • ホストOS:MacOS(v10.13.6)
  • ゲストOS:VirtualBox(v5.2.22)上に構築したUbuntu(v16.04.5)
    VMの構築については、以下の記事がわかりやすいと思います。(気が向いたら書きます)

[環境構築メモ Virtual Box に Ubuntu を入れ SSH 接続する]
(https://qiita.com/amoO_O/items/ff1aa16bf1b60f34bb5d)

ホストからSSHでゲストにつなぎ、Terminalで操作しています。

#前提アプリのインストール

  • Docker 18.09.1
  • Docker Compose 1.8.0
  • go1.6.2
  • Python 2.7.12
  • Node.js v10.15.0
  • npm 6.5.0

以下のチュートリアルをやります。
[Prerequisites]
(https://hyperledger-fabric.readthedocs.io/en/release-1.4/prereqs.html)

##Docker

  • パッケージインデックスを更新
$ sudo apt-get update
  • 前提ソフトウェアのインストール
$ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  • GPG公開鍵の取得
$ sudo apt-key fingerprint 0EBFCD88

フィンガープリントはスクリーンショットなどで保存しておくといいらしい(使ったことはない)

  • aptリポジトリの設定
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  • docker-ceのインストール
$ sudo apt-get update
$ sudo apt-get install -y docker-ce
  • Dockerコマンドを、sudo無しで実行できるようにする
$ sudo usermod -aG docker $(whoami)
  • 一旦ログアウトしてログイン
$ exit
$ ssh [username]@[remotehostIP] -p [ポート番号]
  • 導入できたか確認
$ docker version
Client:
 Version:           18.09.1
 API version:       1.39
 Go version:        go1.10.6
 Git commit:        4c52b90
 Built:             Wed Jan  9 19:35:23 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.1
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.6
  Git commit:       4c52b90
  Built:            Wed Jan  9 19:02:44 2019
  OS/Arch:          linux/amd64
  Experimental:     false

##Docker Compose

  • インストール
$ sudo apt install docker-compose
  • 導入できたか確認
$ docker-compose --version
docker-compose version 1.8.0, build unknown

##Go

  • こちらから該当OSのバイナリをダウンロードするリンクをコピーする
$ sudo wget https://dl.google.com/go/go1.11.4.linux-amd64.tar.gz
#Linuxなので、Linux用のリンクを貼ってます。
  • zipを解答したものをローカルに配置
$ sudo tar -C /usr/local -xzf ~/fabric/go1.11.4.linux-amd64.tar.gz

/usr/local/go/bin に実行ファイル「go」が入ってるか確認してください

  • Goのインストール
$ sudo apt install golang-go
  • 確認
$ go version
go version go1.6.2 linux/amd64

##Python 2.x

  • ubuntuには最初からpythonが入ってるので確認のみです
$ python -V
Python 2.7.12

##C++ビルドツール(サーバー内でNode.jsアプリを利用する場合)

  • build-essentialと、libssl-devの2つをインストール
$sudo apt-get -y install build-essential libssl-dev

##Node.js(サーバー内でNode.jsアプリを利用する場合)

  • nvmのインストール用Shellスクリプトをダウンロードして実行する
    参照先
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
  • ログアウトしてログイン
$ exit
$ ssh [username]@[remotehostIP] -p [ポート番号]
  • nvmがインストールされたことを確認する。成功すると「nvm」と表示される。
$ command -v nvm
  • Node.jsのLTSバージョンをインストールする
$ nvm install --lts
  • LTSバージョンがデフォルトになるよう設定する
$ nvm use --lts
$ nvm alias default 'lts/*'
  • npmを最新のものに更新する
$ npm install npm@latest -g
  • 確認します
$ node --version
v10.15.0
$ npm --version
6.5.0

#サンプルアプリ、バイナリ、Docker imageなどもろもろインストール

以下のチュートリアルをやります。
[Install Samples, Binaries and Docker Images]
(https://hyperledger-fabric.readthedocs.io/en/release-1.4/install.html)

  • Hyperledger/fabric-samples repositoryのインストール
$ curl -sSL http://bit.ly/2ysbOFE | bash -s 1.4.0
  • 確認
$ docker images
hyperledger/fabric-javaenv     1.4.0               3d91b3bf7118        2 days ago          1.75GB
hyperledger/fabric-javaenv     latest              3d91b3bf7118        2 days ago          1.75GB
hyperledger/fabric-tools       1.4.0               0a44f4261a55        7 days ago          1.56GB
hyperledger/fabric-tools       latest              0a44f4261a55        7 days ago          1.56GB
hyperledger/fabric-ccenv       1.4.0               5b31d55f5f3a        7 days ago          1.43GB
hyperledger/fabric-ccenv       latest              5b31d55f5f3a        7 days ago          1.43GB
hyperledger/fabric-orderer     1.4.0               54f372205580        7 days ago          150MB
hyperledger/fabric-orderer     latest              54f372205580        7 days ago          150MB
hyperledger/fabric-peer        1.4.0               304fac59b501        7 days ago          157MB
hyperledger/fabric-peer        latest              304fac59b501        7 days ago          157MB
hyperledger/fabric-ca          1.4.0               1a804ab74f58        7 days ago          244MB
hyperledger/fabric-ca          latest              1a804ab74f58        7 days ago          244MB
hyperledger/fabric-zookeeper   0.4.14              d36da0db87a4        3 months ago        1.43GB
hyperledger/fabric-zookeeper   latest              d36da0db87a4        3 months ago        1.43GB
hyperledger/fabric-kafka       0.4.14              a3b095201c66        3 months ago        1.44GB
hyperledger/fabric-kafka       latest              a3b095201c66        3 months ago        1.44GB
hyperledger/fabric-couchdb     0.4.14              f14f97292b4c        3 months ago        1.5GB
hyperledger/fabric-couchdb     latest              f14f97292b4c        3 months ago        1.5GB
hyperledger/fabric-baseos      amd64-0.4.14        75f5fb1a0e0c        3 months ago        124MB

こんな感じになると思います。
Fabricのサンプルと、imageのタグ名が一致していて、latestタグも付いています。

  • パスを通す
$ export PATH=[ダウンロードしたディレクトリ]/fabric-samples/bin:$PATH

#まとめ
長くなりましたが、この記事では、
1.VirtualBox上にFabric用のVM構築(人任せ)
2.前提アプリのインストール
3.Fabricのサンプルやらいろいろダウンロード
しました。

次回は、fabric-sampleの中のfirst-networkというサンプルを用いて、ブロックチェーンネットワークの設定をするところまでやってみたいと思います。

###最後に
初めてQiitaを書きましたが、自分の記事が読みにくくて吐きそうです。がんばります。
この記事もどんどんアップデートしていきます。

6
3
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
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?