トークンエコノミーとITコンサルタント

旧帝大大学院卒業後、SIerからコンサルに転身した筆者が、トークンエコノミー、暗号通貨、構成技術やプロトコルについて学ぶブログになりました。最新の暗号通貨レポートの翻訳、ソースコードの解説、技術動向、週次レポート、など。特に、データ活用ビジネスの分界点・テクノロジー、資産価値を運用するテクノロジーも含めて書いていきます。

hyperLedger fabric環境構築①(インストール〜サンプルコントラクトの実行)

今月は副業のchatbotやアービトラージの実装関連で時間がとれなかったので、最近触り始めたhyperledger fabricの環境構築をまとめます。

特にここ2週間程度は特にBTCのボラティリティが高くなく、取引所間の価格差もあまり発生しなかったのであまり稼げませんでした。

近々アービトラージの実装サンプルも載せようと思います。


さて、hyperleger fabricの環境準備の説明です。

公式チュートリアルを見ればだいたいわかりますが、英語のリンクを辿っているうちに
なにがどうなっているのか混乱するかもしれないので初学者向けにまとめておきます。

1.資材用意

Prerequisites — hyperledger-fabricdocs master documentation

私の動作環境
OS:macOS High Sierra 10.13.4
Docker18.06
Go:10.1
node10.7.0

0.Hyper Ledger fabric のDockerイメージをダウンロード

https://hyperledger-fabric.readthedocs.io/en/release-1.2/install.html

以下コマンド

curl -sSL http://bit.ly/2ysbOFE | bash -s 1.2.0

fabric-samplesのレポジトリが構築されていることを確認

1.テストネットの構築

インストールされたfabric-samplesから、

cd first-network

#テストネットワークの構築

./byfn.sh generate

dockerのコンテナでローカル環境にテスト用のブロックチェーンネットワークが構築されます。

以降はテストネットワークのアップダウンはこれで

./byfn.sh up
./byfn.sh down
2.クライアント側の実装

https://hyperledger-fabric.readthedocs.io/en/release-1.2/write_first_app.html#install-the-clients-launch-the-network

事前に必要なnpmモジュールをインストール
>|vim|npm install fabric-ca-client
|

npm install fabric-ca
3.テストネットへのローンチ環境準備

サンプルのコントラクト
>|vim|./startFabric.sh node
|


startFabricでやっていることは

・チャンネルの作成、チャンネルへのノード登録
・「fabcar」というサンプルのスマートコントラクトを用意

参考
https://hyperledger-fabric.readthedocs.io/en/release-1.2/understand_fabcar_network.html


ログにキーファイルのディレクトリも記載されるので
認証サーバにsshできれば、鍵が作成できていることが確認できる。

docker exec -it ca.example.com bash

鍵のディレクト
/etc/hyperledger/fabric-ca-server-config/XXXX


4.fabric-samplesのレポジトリにあるスクリプトを順次実行
node enrollAdmin.js
node registerUser.js
node query.js

管理者ユーザの割り当て、ブロックチェーンネットワークにユーザ登録、サンプルコントラクトを参照

node query.jsを実行して、以下の結果が得られればサンプルコントラクトの実行まで完了

Successfully loaded user1 from persistence
Query has completed, checking results
Response is [{"Key":"CAR0","Record":{"color":"blue","docType":"car","make":"Toyota","model":"Prius","owner":"Tomoko"}},{"Key":"CAR1","Record":{"color":"red","docType":"car","make":"Ford","model":"Mustang","owner":"Brad"}},{"Key":"CAR2","Record":{"color":"green","docType":"car","make":"Hyundai","model":"Tucson","owner":"Jin Soo"}},{"Key":"CAR3","Record":{"color":"yellow","docType":"car","make":"Volkswagen","model":"Passat","owner":"Max"}},{"Key":"CAR4","Record":{"color":"black","docType":"car","make":"Tesla","model":"S","owner":"Adriana"}},{"Key":"CAR5","Record":{"color":"purple","docType":"car","make":"Peugeot","model":"205","owner":"Michel"}},{"Key":"CAR6","Record":{"color":"white","docType":"car","make":"Chery","model":"S22L","owner":"Aarav"}},{"Key":"CAR7","Record":{"color":"violet","docType":"car","make":"Fiat","model":"Punto","owner":"Pari"}},{"Key":"CAR8","Record":{"color":"indigo","docType":"car","make":"Tata","model":"Nano","owner":"Valeria"}},{"Key":"CAR9","Record":{"color":"brown","docType":"car","make":"Holden","model":"Barina","owner":"Shotaro"}}]

bitFlyer ビットコインを始めるなら安心・安全な取引所で