サマーインターン2018ブロックチェーン回のFabricネットワーク構築スクリプトおよびAPI
- HyperLedgerFabric v1.2
- python 2.7.x
- go 1.9.x
- node 8.11.x
- npm 5.6.x
pip install pyyaml # -> 未インストールなら
./bin/get-docker-image.sh # -> Docker Imageがpullされてなければ
npm install
npm run linklocal
指定する引数などは「-h」で確認可
コンテナやネットワークなどすべてを削除
※停止中のものを含め現在のユーザーのコンテナやネットワークをまとめて消してしまうので注意
python script/clean.py
コンテナを起動
python script/up.py
チャンネルを作成してpeerを登録
python script/setup_channel.py
※既存のチャンネルにpeerを登録する機能は載せていない
チェーンコードをinstall/instantiate/upgrade
バージョン名は動的に生成され、instantiateとupgradeのどちらを使うべきかは自動で判断される。
python script/deploy_chaincode.py
npm run register
fabric-samplesのものをそのまま利用。
npm run linklocal
本来であれば、
チェーンコード毎に用途別でエンドポイントを作成して、
それぞれバリデーション等々を行うべきですが、
今回に関しては期間の都合やテーマの関係でAPI部分に関しては、
触れない想定なので指定のchaincodeにメソッドと引数を渡すだけのもの用意しています。
node api/app.js
https://excitejapanpub.github.io/summer-intern-2018-blockchain-fabric/.
chaincode/以下に公式で提供されているfabcarのほかにいくつかサンプルを用意したので
簡単な説明を載せておきます。
- entry (勤怠など日毎になんらかのデータを登録して行くサンプル)
- point (簡単なポイント管理)
- rental (備品の貸し出し管理)
- smartLock (スマートロックの施錠管理)
- supply (在庫および配送状況管理)
簡単化のため必要最低限のメソッドと処理しか実装していないので、
不足を感じた部分があれば実際にチェーンコードを作成する際に追加してみてください