hyperledger-fabricにブロックチェーンを学ぶ(2/9)サンプルを動かす
hyperledger-fabricにブロックチェーンを学ぶ(1/9)ブロックチェーンとは
⇒ hyperledger-fabricにブロックチェーンを学ぶ(2/9)サンプルを動かす
hyperledger-fabricにブロックチェーンを学ぶ(3/9)ブロックを見る
hyperledger-fabricにブロックチェーンを学ぶ(4/9)kafkaを入れる
hyperledger-fabricにブロックチェーンを学ぶ(5/9)可視化する
環境構築
-
用意するもの
- CentOS7 メモリ4GB以上 ※コメント参照
-
ブロックチェーンネットワーク環境
- fabric-sdk:1.4
- チェーンコード:golang
- クライアント:node.js
-
ブロックチェーンネットワーク構成
(fabric-sample/balance-transfer)- 1組織2Peer
- 2組織
- orderer1つ
- kafkaなし
ブロックチェーンネットワーク構成を図で表すと以下のとおり
ordererはトランザクションを順番に処理するためのもの。
単一障害点となるので冗長化したほうがよい(対応方法調査中...)
インストール手順
- インストールするもの
- git
- jq
- docker
- node
- golang
- fabric-sample (git clone)
sudo yum install -y git
sudo yum install -y jq
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum install -y docker-ce
nodeはpackage.jsonで指定されているバージョンを入れる。たぶん最新でも動く。
curl -sL https://rpm.nodesource.com/setup_8.x | sudo bash -
sudo yum install -y nodejs-8.9.4 # node8.9, npm 5.6
sudo yum install -y golang
mkdir -p /var/www
cd /var/www/
git clone https://github.com/hyperledger/fabric-samples.git
実行手順
-
事前準備
- dockerの起動
- node clientの起動
- channelの作成
- channelに参加
- chaincodeのインストール
- channelの初期化
-
実行
- チェーンコード実行
- ブロック取得
- channel情報取得
事前準備から実行は、シェル2つで完了
cd /var/www/fabric-samples/balance-transfer
./runApp.sh
./testAPIs.sh
マシンパワーを必要とするため、すんなり動かない事があると思います。
fabricSDKの呼び出しはいくつか直していきますが、今回はchannelの初期化に手を入れます。
channelの初期化(instantiate)呼び出しは、instantiate-chaincode.js で行われます。
instantiate-chaincode.js の timeout を 60秒から180秒へ変更(2カ所)
let results = await channel.sendInstantiateProposal(request, 60000); //instantiate takes much longer
↓
let results = await channel.sendInstantiateProposal(request, 180000); //instantiate takes much longer
}, 60000);
↓
}, 180000);
node clientの起動時にnpm installが実行されます。このときgccエラーが出ることがあるので、以下を参考にしてください。
Failed install script 'node-gyp rebuild'
npm install -g node-gyp
npm config set python /usr/bin/python
yum install gcc-c++
Author And Source
この問題について(hyperledger-fabricにブロックチェーンを学ぶ(2/9)サンプルを動かす), 我々は、より多くの情報をここで見つけました https://qiita.com/ctrlzr/items/550a2a019c3c763d4f47著者帰属:元の著者の情報は、元の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 .