Macでブロックチェーンに触れてみた (Hyperledger-fabric)
Macでブロックチェーンを動かしてみる
Hyperledger FabricはDockerコンテナとしてあるので、それをMacOSで利用することができます。
環境構築を行い、サンプル実行までの方法をまとめています。
サンプル実行できたらOKって感じなので中身は薄いです。
公式サンプルの「fabcar」でHyperledger Fabricの動作確認を行っていきます。
自分の環境では、以下の手順でいけました!
Go, node, Git, npmのバージョン
インストール前にそれぞれのバージョンを記載しておきました。
参考にしてください。
$ go version
go version go1.9.1 darwin/amd64
$ node -v
v8.11.4
$ git --version
git version 2.14.3 (Apple Git-98)
$ npm -v
3.10.10
Dockerは最新のやつで大丈夫そう。
Go,nodebrew, Docker, npmのインストール
Goのインストール
Homebrewでインストール
$brew install go
パスを通す
$ echo 'export GOPATH=$HOME/go' >> ~/.bash_profile
$ echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.bash_profile
$ source ~/.bash_profile
nodebrewのインストール
culrでインストール
$ curl -L git.io/nodebrew | perl - setup
nodeのバージョン一覧表示
nodebrew ls-remote
$brew install go
$ echo 'export GOPATH=$HOME/go' >> ~/.bash_profile
$ echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.bash_profile
$ source ~/.bash_profile
$ curl -L git.io/nodebrew | perl - setup
nodebrew ls-remote
インストール可能なバージョンの一覧が表示されます。
$ nodebrew install-binary v8.11.4
$ nodebrew ls
v6.2.1
v8.1.0
v8.11.4
v8.15.1
v10.12.0
current: v8.11.4
currentが現在利用中のバージョンとなっています。
Dockerのインストール
公式サイトからDocker for Macをインストールしました。
Docker for Mac
とりあえずインストールできたらOKです。
Hyperledger Fabricの環境構築
ここから環境構築していきます。
$ mkdir -p $GOPATH/src/github.com/hyperledger
$ cd $GOPATH/src/github.com/hyperledger
$ git clone https://github.com/hyperledger/fabric.git
$ cd fabric
$ git branch
* release-1.4
$ git checkout ae4e37d
$ git branch
* (HEAD detached at ae4e37dba)
release-1.4
[git branch] で現在のブランチ名の左側に「*」が表示されます。
[git checkout ブランチ名 (ここではae4e37dというハッシュ値) ] でブランチを切り替えて、
[git branch]で確認してみると切り替わっていることが確認できます。
$ cd $GOPATH/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
$ go build --tags nopkcs11 ./
buildは何も出力がなかったら成功です。
サンプルの実行準備
公式サンプルの「fabcar」でHyperledger Fabricの動作確認を行っていきます。
ここではその準備を行っていきます。
$ git clone https://github.com/hyperledger/fabric-samples.git -b v1.0.6
$ cd fabric-samples/fabcar/
$ npm install
(略)
(warningは無視)
セットアップスクリプトを実行する前にDockerを起動しておきます。
F4を押してアプリケーション一覧の中から起動します。
./startFabric.sh
[docker ps] で起動しているコンテナを確認します。
$ docker ps --format "{{.Names}}"
dev-peer0.org1.example.com-fabcar-1.0
cli
peer0.org1.example.com
couchdb
orderer.example.com
ca.example.com
6個起動していればOKです。
サンプルの実行
いよいよサンプルの実行です。
$ node enrollAdmin.js
(略)
Successfully enrolled admin user "admin"
(略)
$ node registerUser.js
(略)
Successfully loaded admin from persistence
Successfully registered user1 - secret:beiNjAAEqimU
Successfully enrolled member user "user1"
User1 was successfully registered and enrolled and is ready to intreact with the fabric network
$ node query.js
(略)
Successfully loaded user1 from persistence
Query has completed, checking results
Response is [{"Key":"CAR0", "Record":{"colour":"blue","make":"Toyota","model":"Prius","owner":"Tomoko"}},
{"Key":"CAR1", "Record":{"colour":"red","make":"Ford","model":"Mustang","owner":"Brad"}},
{"Key":"CAR2", "Record":{"colour":"green","make":"Hyundai","model":"Tucson","owner":"Jin Soo"}},
{"Key":"CAR3", "Record":{"colour":"yellow","make":"Volkswagen","model":"Passat","owner":"Max"}},
{"Key":"CAR4", "Record":{"colour":"black","make":"Tesla","model":"S","owner":"Adriana"}},
{"Key":"CAR5", "Record":{"colour":"purple","make":"Peugeot","model":"205","owner":"Michel"}},
{"Key":"CAR6", "Record":{"colour":"white","make":"Chery","model":"S22L","owner":"Aarav"}},
{"Key":"CAR7", "Record":{"colour":"violet","make":"Fiat","model":"Punto","owner":"Pari"}},
{"Key":"CAR8", "Record":{"colour":"indigo","make":"Tata","model":"Nano","owner":"Valeria"}},
{"Key":"CAR9", "Record":{"colour":"brown","make":"Holden","model":"Barina","owner":"Shotaro"}}]
何やら、車の情報がたくさん出力されました。これでHyperledger Fabricのサンプルは実行できました。
SDK for Node.jsを利用した、Hyperledger FabricとのやりとりによってState DBの内容を取得しているそうです。詳しくは勉強中なので今後まとめていきたいと思います。
Author And Source
この問題について(Macでブロックチェーンに触れてみた (Hyperledger-fabric)), 我々は、より多くの情報をここで見つけました https://qiita.com/komiya_5467/items/aceee9347b4153d44e2c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .