[Hyperledger Fabric] 4. Ubuntu 16.04 64ビット環境でFabricネットワークを手動で起動
13117 ワード
一、前期準備
アイテム
バージョン#バージョン#
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に切り替えるを使用します).コマンド:
ファイルの実行可能権限の追加
方法3:公式に提供されたソースコードを使用して生成ツールを再コンパイルし、コマンド:
コマンドの実行:
2.1.組織関係とアイデンティティ証明書の生成
次のコマンドを使用すると、Fabricネットワークに指定したトポロジーの組織とアイデンティティファイルを生成し、crypto-configディレクトリに保存できます.
コマンド:
crypto-configでyamlプロファイルは、組織関係とアイデンティティ証明書を生成し、実行に成功した結果は次のとおりです.
crypto-configディレクトリ構造を表示するには、次のコマンドを使用します.
2.2.Orderingサービス起動初期ブロックの生成
ローカルでは単純soloモードを使用し、本番環境ではkafkaクラスタサービスを使用してください.
1)Orderingサービスシステムチャネルの初期ブロックファイルを生成する
次のように、Orderingサービス初期ブロックの生成に成功しました.
説明:
非soloモードで生成するorderer.genesis.blockは、Ordererノード(Orderer構成でORDERER_GENERAL_GENESISFILEが指定したファイルパスと一致し、デフォルトパスは/etc/hyperledger/fabricパスの下)にコピーし、Orderingサービスを開始するときに使用する必要があります.
2.3.新規アプリケーション・チャネルの構成トランザクション・ファイルの生成
新しいアプリケーションチャネルは、そのチャネルに属する組織構造情報を含むトランザクションファイルの構成を事前に準備する必要があります.これらの情報は、アプリケーションチャネルの初期ブロックに書き込まれます.また、生成された構成取引情報ファイルは、後続のステップでクライアントによって使用されるため、クライアントノード上に置くことができる.
1)configtxを使用する.yamlプロファイルのTwoOrgsChannelテンプレートは、Org 1とOrg 2がその後に作成されるアプリケーションチャネルに属することを指定します.
コマンドの実行:
次のように、アプリケーション・チャネルの構成トランザクション・ファイルの新規作成に成功しました.
2.4.アンカーノード構成更新ファイルの生成
アンカーノード構成更新ファイルは、組織のアンカーノードを構成するために使用できますが、対応する組織名を個別に指定する必要があります.
具体的な生成手順:
1)組織1:Org 1 MSPの生成
2)組織2:Org 2 MSPの生成
アンカーノード構成更新ファイルの生成に成功しました.次のようにします.
説明:
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の下に関連ファイルを自分でコピーしてください.
Ordererノードのデフォルトプロファイルでは、単純なOrdererノード機能を指定します.通常、使用時には、必要に応じていくつかの重要な構成を指定する必要があります.
環境変数構成エントリ:to be add
ローカルOrdererノードを起動するには、次の手順に従います.
4.Peerノードの起動
5.操作ネットワーク
6.容器ベース方式
三、FAQ
1.cryptogenではファイルを生成できません
症状:
可能な理由:
1)操作バージョンに対応していない
2)ファイル破損
3)実行権限なし
解決方法:
1)対応バージョンの再ダウンロード
2)実行可能権限付与
再ダウンロードツール(configtxgen、configtxlator、cryptogen):
2.Orderingサービスシステムチャネルの初期ファイルの生成に失敗しました
症状:
理由:
FABRIC未確認CFG_PATHこの変数パスは、予め現在のパスとして設定することができる.
解決方法:
コンソールで次のコマンドを実行します.
解決後:
追加説明:なし
3.orderer start起動失敗
症状:
理由:
解決方法:
関連コマンド:
解決後:
追加の説明:
4.コメントcompose-compose-cli.yamlのscript.sh後コマンドライン方式でfabricネットワークを手動で起動できませんでした
起動コマンド:
理由:
dockerデーモン起動時にsockファイルのURL位置を正しく選択できません.
解決方法:
システムから起動したdockerサービスを追加し、Ubuntuを再起動すればよい.
関連コマンド:
解決後:
追加の説明:
5.peerノードの接続
理由:
上の図のヒントに基づいてorderer.に接続することを知る.example.com:7050エラー、具体的なエラーは、認証握手に失敗し、x 509証明書署名が許可されていないことを示しています.
解決方法:
証明書への署名
関連コマンド:
解決後:
追加の説明:
6.docker-compose-cliに入ります.yamlプロファイルで指定したcliコンテナではチャネルの創世ブロックを生成できません
理由:
同じチャネルが以前に確立されたため、同じチャネルが存在し、名前が競合しています.
解決方法:
dockerを削除し、再起動します.
関連コマンド:
解決後:
生成チャネルの創世ブロック:mychannel.block
追加の説明:
1)同じ名前のchannelが作成されているかどうかを確認します.
2)以前の構築環境を整理し、仮想マシンでスナップショットを構築または作成した場合は、スナップショットの状態に戻してコンテナを再ダウンロードし、手順に従ってテストすることをお勧めします.
アイテム
バージョン#バージョン#
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サービス初期ブロックの生成に成功しました.
説明:
非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}
次のように、アプリケーション・チャネルの構成トランザクション・ファイルの新規作成に成功しました.
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
アンカーノード構成更新ファイルの生成に成功しました.次のようにします.
説明:
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の下に関連ファイルを自分でコピーしてください.
Ordererノードのデフォルトプロファイルでは、単純なOrdererノード機能を指定します.通常、使用時には、必要に応じていくつかの重要な構成を指定する必要があります.
環境変数構成エントリ:to be add
ローカルOrdererノードを起動するには、次の手順に従います.
orderer start
4.Peerノードの起動
5.操作ネットワーク
6.容器ベース方式
三、FAQ
1.cryptogenではファイルを生成できません
症状:
可能な理由:
1)操作バージョンに対応していない
2)ファイル破損
3)実行権限なし
解決方法:
1)対応バージョンの再ダウンロード
2)実行可能権限付与
再ダウンロードツール(configtxgen、configtxlator、cryptogen):
2.Orderingサービスシステムチャネルの初期ファイルの生成に失敗しました
症状:
理由:
FABRIC未確認CFG_PATHこの変数パスは、予め現在のパスとして設定することができる.
解決方法:
コンソールで次のコマンドを実行します.
FABRIC_CFG_PATH=.
解決後:
追加説明:なし
3.orderer start起動失敗
症状:
理由:
解決方法:
関連コマンド:
解決後:
追加の説明:
4.コメントcompose-compose-cli.yamlのscript.sh後コマンドライン方式でfabricネットワークを手動で起動できませんでした
起動コマンド:
CHANNEL_NAME=businesschannel TIMEOUT=300 docker-compose –f docker-compose-cli.yaml up -d
理由:
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
解決後:
追加の説明:
5.peerノードの接続
理由:
上の図のヒントに基づいてorderer.に接続することを知る.example.com:7050エラー、具体的なエラーは、認証握手に失敗し、x 509証明書署名が許可されていないことを示しています.
解決方法:
証明書への署名
関連コマンド:
解決後:
追加の説明:
6.docker-compose-cliに入ります.yamlプロファイルで指定したcliコンテナではチャネルの創世ブロックを生成できません
理由:
同じチャネルが以前に確立されたため、同じチャネルが存在し、名前が競合しています.
解決方法:
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
追加の説明:
1)同じ名前のchannelが作成されているかどうかを確認します.
2)以前の構築環境を整理し、仮想マシンでスナップショットを構築または作成した場合は、スナップショットの状態に戻してコンテナを再ダウンロードし、手順に従ってテストすることをお勧めします.