#はじめに
文系出身エンジニアです。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を書きましたが、自分の記事が読みにくくて吐きそうです。がんばります。
この記事もどんどんアップデートしていきます。