[Hyperledger Fabric] 4. Ubuntu 16.04 64ビット環境でFabricネットワークを手動で起動


一、前期準備
アイテム
バージョン#バージョン#
URLの更新またはダウンロード
Ubuntu
16.04,64ビット

Hyperledger Fabric
1.0.3
公式サイトによると:http://hyperledger-fabric.readthedocs.io/en/latest/samples.html
依存項目(優先順位を問わず)
docker
17.05.0-ce
yes|cp -f ./docker.repo/etc/yum.repos.d/docker.repo sudo apt-get install –y docker-engine systemctl start docker.service   docker.repoの内容は次のチュートリアルを参照してください.
docker-compose
1.9.0 build 2585387
pip install docker-compose
go
1.7.5
sudo apt-get install –y golang
python
2.7.5
sudo apt-get install –y python
python-pip
9.0.1
sudo apt-get install -y python-pip pip install --upgrade pip backports.ssl_match_hostname
git
1.8.3.1
sudo apt-get install –y git
nodejs
6.11.3
sudo apt-get install –y nodejs
npm
3.10.10
nodejsは統合されています
 
説明:
1.関連ツールのインストールはすべて64ビットで、バージョンによってはIDEが正常に起動できないか、一部の構成を完了できない可能性があります.バージョン情報に注意してください.
2.後続のインストール中に一部のツールがあり、解凍するだけでインストールが完了するので、解凍した問題を統一的に同じディレクトリにインストールして管理しやすいことをお勧めします.
 
 
 
二、配置手順
環境構築の詳細は私の個人ブログを参照してください.https://blog.csdn.net/mimica/article/details/78412038
 
1.ネットワークトポロジ

 
2.手動で関連プロファイルを作成する準備
bootstrap-*を追加します.shダウンロードの署名、証明書の生成などのツール--configtxgen、configtxlator、cryptogen、orderer、peer
 
方法1:環境変数にパスを追加し、永続的に有効にします.環境変数のパス:
vim/etc/environment
 
方法2:ツールを/usr/binに直接コピーする方法1と同様に、root権限が必要です(rootに切り替えるを使用します).コマンド:
sudo yes|cp –f  [  fabric        ]/fabric-samples/script/bin/configtxlator /usr/bin/
sudo yes|cp –f  [  fabric        ]/fabric-samples/script/bin/configtxgen /usr/bin/
sudo yes|cp –f  [  fabric        ]/fabric-samples/script/bin/cryptogen /usr/bin/
sudo yes|cp –f  [  fabric        ]/fabric-samples/script/bin/orderer /usr/bin/
sudo yes|cp –f  [  fabric        ]/fabric-samples/script/bin/peer /usr/bin/

 
ファイルの実行可能権限の追加
chmod –R a+x configtxlator configtxgen cryptogen orderer peer

 
方法3:公式に提供されたソースコードを使用して生成ツールを再コンパイルし、コマンド:
    :~/go/src/github.com/hyperledger/fabric

コマンドの実行:
make cryptogen
make configtxgen
make configtxlator

2.1.組織関係とアイデンティティ証明書の生成
次のコマンドを使用すると、Fabricネットワークに指定したトポロジーの組織とアイデンティティファイルを生成し、crypto-configディレクトリに保存できます.
コマンド:
cryptogen generate --config=./crypto-config.yaml --output ./crypto-config

 
crypto-configでyamlプロファイルは、組織関係とアイデンティティ証明書を生成し、実行に成功した結果は次のとおりです.

 
crypto-configディレクトリ構造を表示するには、次のコマンドを使用します.
tree –L 4 crypto-config

2.2.Orderingサービス起動初期ブロックの生成
ローカルでは単純soloモードを使用し、本番環境ではkafkaクラスタサービスを使用してください.
1)Orderingサービスシステムチャネルの初期ブロックファイルを生成する
FABRIC_CFG_PATH=. configtxgen -profile TwoOrgsOrdererGenesis –outputBlock ./orderer.genesis.block

 
次のように、Orderingサービス初期ブロックの生成に成功しました.
[Hyperledger Fabric] 4. 在 Ubuntu16.04 64位环境下手动启动Fabric网络_第1张图片
 
説明:
非soloモードで生成するorderer.genesis.blockは、Ordererノード(Orderer構成でORDERER_GENERAL_GENESISFILEが指定したファイルパスと一致し、デフォルトパスは/etc/hyperledger/fabricパスの下)にコピーし、Orderingサービスを開始するときに使用する必要があります.
 
2.3.新規アプリケーション・チャネルの構成トランザクション・ファイルの生成
新しいアプリケーションチャネルは、そのチャネルに属する組織構造情報を含むトランザクションファイルの構成を事前に準備する必要があります.これらの情報は、アプリケーションチャネルの初期ブロックに書き込まれます.また、生成された構成取引情報ファイルは、後続のステップでクライアントによって使用されるため、クライアントノード上に置くことができる.
1)configtxを使用する.yamlプロファイルのTwoOrgsChannelテンプレートは、Org 1とOrg 2がその後に作成されるアプリケーションチャネルに属することを指定します.
コマンドの実行:
CHANNEL_NAME=businesschannel
 
FABRIC_CFG_PATH=. configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./businesschannel.tx -channelID ${CHANNEL_NAME}

 
次のように、アプリケーション・チャネルの構成トランザクション・ファイルの新規作成に成功しました.
[Hyperledger Fabric] 4. 在 Ubuntu16.04 64位环境下手动启动Fabric网络_第2张图片
 
2.4.アンカーノード構成更新ファイルの生成
アンカーノード構成更新ファイルは、組織のアンカーノードを構成するために使用できますが、対応する組織名を個別に指定する必要があります.
具体的な生成手順:
1)組織1:Org 1 MSPの生成
FABRIC_CFG_PATH=. configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./Org1MSPanchors.tx -channelID ${CHANNEL_NAME} -asOrg Org1MSP

 
2)組織2:Org 2 MSPの生成
FABRIC_CFG_PATH=. configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./Org2MSPanchors.tx -channelID ${CHANNEL_NAME} -asOrg Org2MSP

 
アンカーノード構成更新ファイルの生成に成功しました.次のようにします.
[Hyperledger Fabric] 4. 在 Ubuntu16.04 64位环境下手动启动Fabric网络_第3张图片
 
説明:
1)生成されたアンカーノード構成更新ファイルは、後続のステップでクライアントによって使用されるため、クライアントノード上に配置することもできる.
2)すべての起動用プロファイルが対応するノードに生成されて配備された後、サービスの起動操作を行うことができる.
a)Orderノードの起動
b)Peerノードの起動
 
3.Ordererノードの起動
起動ノードのすべての構成が完了しているかどうかを確認します.
1)/etc/hyperledger/fabricの下に作成したorderer.を置く.yaml.
このファイルは公式sampleconfig/orderer.を参照できます.yamlファイル作成.(yamlファイルの構文は自分で検索してください)
2)生成したmsp、tlsファイルディレクトリを/etc/hyperledger/fabricの下に配置します.
3)初期ブロックファイルordererを/etc/hperledger/fabricの下に置く.genesis.block.
 
注意:ordererノードを起動するには、/etc/hyperledger/fabricの下に関連ファイルを自分でコピーしてください.
  [Hyperledger Fabric] 4. 在 Ubuntu16.04 64位环境下手动启动Fabric网络_第4张图片
 
Ordererノードのデフォルトプロファイルでは、単純なOrdererノード機能を指定します.通常、使用時には、必要に応じていくつかの重要な構成を指定する必要があります.
環境変数構成エントリ:to be add
ローカルOrdererノードを起動するには、次の手順に従います.
orderer start

 
4.Peerノードの起動
5.操作ネットワーク
6.容器ベース方式
 
 

 
三、FAQ
1.cryptogenではファイルを生成できません
症状:
[Hyperledger Fabric] 4. 在 Ubuntu16.04 64位环境下手动启动Fabric网络_第5张图片
 
可能な理由:
1)操作バージョンに対応していない
2)ファイル破損
3)実行権限なし
 
解決方法:
1)対応バージョンの再ダウンロード
2)実行可能権限付与
 
再ダウンロードツール(configtxgen、configtxlator、cryptogen):
[Hyperledger Fabric] 4. 在 Ubuntu16.04 64位环境下手动启动Fabric网络_第6张图片
 
2.Orderingサービスシステムチャネルの初期ファイルの生成に失敗しました
症状:
[Hyperledger Fabric] 4. 在 Ubuntu16.04 64位环境下手动启动Fabric网络_第7张图片
 
理由:
FABRIC未確認CFG_PATHこの変数パスは、予め現在のパスとして設定することができる.
 
解決方法:
コンソールで次のコマンドを実行します.
FABRIC_CFG_PATH=.

 
解決後:
[Hyperledger Fabric] 4. 在 Ubuntu16.04 64位环境下手动启动Fabric网络_第8张图片
 
追加説明:なし
 
3.orderer start起動失敗
症状:
[Hyperledger Fabric] 4. 在 Ubuntu16.04 64位环境下手动启动Fabric网络_第9张图片
理由:
 
解決方法:
 
関連コマンド:
 
解決後:
 
追加の説明:
 
 
4.コメントcompose-compose-cli.yamlのscript.sh後コマンドライン方式でfabricネットワークを手動で起動できませんでした
起動コマンド:
CHANNEL_NAME=businesschannel TIMEOUT=300 docker-compose –f docker-compose-cli.yaml up -d

  [Hyperledger Fabric] 4. 在 Ubuntu16.04 64位环境下手动启动Fabric网络_第10张图片
 
理由:
dockerデーモン起動時にsockファイルのURL位置を正しく選択できません.
 
解決方法:
システムから起動したdockerサービスを追加し、Ubuntuを再起動すればよい.
 
関連コマンド:
1.        root  :su
2.       docker      :systemctl enable docker
3.                   ,    docker  :
               systemctl start docker
               systemctl restart docker
4.       root ,  docker      :sudo docker ps

 
解決後:
[Hyperledger Fabric] 4. 在 Ubuntu16.04 64位环境下手动启动Fabric网络_第11张图片
[Hyperledger Fabric] 4. 在 Ubuntu16.04 64位环境下手动启动Fabric网络_第12张图片
追加の説明:
 
5.peerノードの接続
 
理由:
[Hyperledger Fabric] 4. 在 Ubuntu16.04 64位环境下手动启动Fabric网络_第13张图片
上の図のヒントに基づいてorderer.に接続することを知る.example.com:7050エラー、具体的なエラーは、認証握手に失敗し、x 509証明書署名が許可されていないことを示しています.
 
解決方法:
証明書への署名
 
関連コマンド:
 
解決後:
 
追加の説明:
 
6.docker-compose-cliに入ります.yamlプロファイルで指定したcliコンテナではチャネルの創世ブロックを生成できません
[Hyperledger Fabric] 4. 在 Ubuntu16.04 64位环境下手动启动Fabric网络_第14张图片
理由:
同じチャネルが以前に確立されたため、同じチャネルが存在し、名前が競合しています.
 
解決方法:
dockerを削除し、再起動します.
 
関連コマンド:
1)             :sudo docker rm [container id]
2)               :sudo docker rm –f [container id]
3)             :sudo docker rm –f $(sudo docker ps -aq)

解決後:
生成チャネルの創世ブロック:mychannel.block
[Hyperledger Fabric] 4. 在 Ubuntu16.04 64位环境下手动启动Fabric网络_第15张图片
追加の説明:
1)同じ名前のchannelが作成されているかどうかを確認します.
2)以前の構築環境を整理し、仮想マシンでスナップショットを構築または作成した場合は、スナップショットの状態に戻してコンテナを再ダウンロードし、手順に従ってテストすることをお勧めします.