最初のネットワークを構築するためのチュートリアルを実行しようとすると、次の出力が得られます。
$ ./byfn.sh -m generate
チャネル「mychannel」とCLIタイムアウト「10000」で証明書と生成ブロックを生成しますか?続行しますか(y/n)? y続行...どちらか:(/c/users/ayush/fabric-samples/first-network/../bin:/c/users/ayush/fabric-samples/first-network:c:/usersに暗号なし/ ayush/bin:/ c/Users/ayush/bin:/ mingw64/bin:/ usr/local/bin:/ usr/bin:/ bin:/ c/Program Files/Docker Toolbox:/ c/Users/ayush/bin:/ mingw64/bin:/ usr/local/bin:/ usr/bin:/ bin:/ mingw64/bin:/ usr/bin:/ c/Users/ayush/bin:/ c/ProgramData/Oracle/Java/javapath:/ c/Program Files/Docker/Docker/Resources/bin:/ c/Windows/system32:/ c/Windows:/ c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/Program Files(x86)/ NVIDIA Corporation/PhysX/Common:/ c/Program Files/Intel/WiFi/bin:/ c/Program Files/Common Files/Intel/WirelessCommon:/ cmd:/ c/WINDOWS/system32 :/ c/WINDOWS:/ c/WINDOWS/System32/Wbem:/c/WINDOWS/System32/WindowsPowerShell/v1.0:/c/Gradle/gradle-3.3/bin:/ c/Go/bin:/ c/Programファイル/ nodejs:/ c/Users/ayush/AppData/Local/Programs/Python/Python36/Scripts:/ c/Users/ayush/AppData/Local/Programs/Python/Python36:/ c/Users/ayush/AppData/Local/Microsoft/WindowsApps:/ c/python:/ c/Program Files/Docker Toolbox:/ c/Users/ayush/AppData/Roaming/npm:/ usr/bin/vendor_Perl:/ usr/bin/core_Perl:/ usr/bin/vendor_Perl:/ usr/bin/core_Perl)cryptogenツールが見つかりません。終了する
何が問題で、どうすれば解決できますか?
あなたの問題の鍵は最後の文にあります:
cryptogenツールが見つかりません。終了する
./byfn.sh
を使用してサンプルを実行する前に、cryptogen
ツールがコンパイルされていることを確認する必要があります。ファブリックのホームフォルダーから実行するだけです。
make cryptogen configtxgen peer orderer peer-docker orderer-docker tools-docker
更新
不足しています: " プラットフォーム固有のバイナリ "、それらを取得する方法はこちらを参照してください。
ステップ1: cd fabric-samples
ステップ2:
curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/v1.0.5/scripts/bootstrap.sh | bash -s 1.0.5
ステップ3:cd fabric-samples/first-network
ステップ4:./byfn.sh -m generate
何が発生するかについての簡単な説明と、yes/noコマンドラインプロンプトが表示されます。 yで応答するか、Returnキーを押して、説明されているアクションを実行します。
答えが出ました。この問題は、実際にはコマンドツールである暗号源の欠如が原因で発生します。これを取得する最も簡単な方法は、プラットフォーム固有のバイナリをローカルマシンにダウンロードすることです。これがshです。
cd fabric-samples
curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap-1.0.1.sh | bash
このshは、最新のFabric Dockerイメージとプラットフォーム固有のツールをプルするbashファイルをダウンロードします。その内容は次のとおりです。
#!/bin/bash
#
# Copyright IBM Corp. All Rights Reserved.
#
# SPDX-License-Identifier: Apache-2.0
#
export VERSION=1.0.1
export Arch=$(echo "$(uname -s|tr '[:upper:]' '[:lower:]'|sed 's/mingw64_nt.*/windows/')-$(uname -m | sed 's/x86_64/AMD64/g')" | awk '{print tolower($0)}')
#Set MARCH variable i.e ppc64le,s390x,x86_64,i386
MARCH=`uname -m`
dockerFabricPull() {
local FABRIC_TAG=$1
for IMAGES in peer orderer couchdb ccenv javaenv kafka zookeeper tools; do
echo "==> FABRIC IMAGE: $IMAGES"
echo
docker pull hyperledger/fabric-$IMAGES:$FABRIC_TAG
docker tag hyperledger/fabric-$IMAGES:$FABRIC_TAG hyperledger/fabric-$IMAGES
done
}
dockerCaPull() {
local CA_TAG=$1
echo "==> FABRIC CA IMAGE"
echo
docker pull hyperledger/fabric-ca:$CA_TAG
docker tag hyperledger/fabric-ca:$CA_TAG hyperledger/fabric-ca
}
: ${CA_TAG:="$MARCH-$VERSION"}
: ${FABRIC_TAG:="$MARCH-$VERSION"}
echo "===> Downloading platform binaries"
curl https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/${Arch}-${VERSION}/hyperledger-fabric-${Arch}-${VERSION}.tar.gz | tar xz
echo "===> Pulling fabric Images"
dockerFabricPull ${FABRIC_TAG}
echo "===> Pulling fabric ca Image"
dockerCaPull ${CA_TAG}
echo
echo "===> List out hyperledger docker images"
docker images | grep hyperledger*
これは、Fabric 1.0.1に基づいています。このbashの最新バージョンは、ここから入手できます。 http://hyperledger-fabric.readthedocs.io/en/latest/samples.html
Shの実行が完了すると、現在のディレクトリにbinという名前のフォルダーが作成されます。次に、このフォルダーの下のファイルを検索可能なフォルダーにコピーします。
cp ./bin/* $GOROOT/bin
次に、タイプコマンドで暗号が存在するかどうかをテストできます。
which cryptogen
主な問題は、「cryptogen tool not found。exiting」というエラーの最後の行にあります。
この問題を解決するには、以下の手順に従ってください-
curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/v1.0.5/scripts/bootstrap.sh | bash -s 1.0.5
コマンドを実行すると、cryptディレクトリ、configtxgenなどのさまざまなツールがbinディレクトリにダウンロードされます。
エクスポートPATH = $ PATH:[bin-directoryへのパス]
次に、ネットワークの再構築を試みます。これが誰かのお役に立てば幸いです。
Macを使用している場合は、ターミナルで次のようにします。
brew tap hyperledger/fabric
brew install fabric-tools
その後、./byfn.sh -m generate command
この問題を解決するには、以下の手順に従ってください:
1.コマンドを使用してプラットフォーム固有のバイナリをダウンロードします
curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh | bash -s 1.1.0 "
コマンドを実行すると、cryptディレクトリ、configtxgenなどのさまざまなツールがbinディレクトリにダウンロードされます。
1.以下のコマンドを使用して、binディレクトリをPATH変数に追加しますexport PATH =。/ bin:$ PATH
ワークスペースにcdした後、プラットフォーム固有のバイナリをダウンロードします。
curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/v1.4.0/scripts/bootstrap.sh | bash
およびバイナリのバージョンが構成ファイルと一致していることを確認してください。
cryptogenコマンドは、ファブリックtarballをインストール(または圧縮解除)したbinディレクトリの下にあります。したがって、シェルがcryptogenコマンドがどこにあるかがわかるように、$ PATH変数を更新する必要があります。このコードは動作するはずです:
export "$PATH:/<home>/<fabric>/bin"
ここで、<home>
は/home/sindelio
などのホームディレクトリで、<fabric>
はファブリックがインストールされた場所です。
端末を閉じない限り、次の解決策が機能します。
エクスポートPATH = $ PATH:PATH_TO_FABRIC_SAMPLES/bin
おそらくこのステップを逃した
プラットフォーム固有のバイナリをダウンロード
https://hyperledger-fabric.readthedocs.io/en/release-1.1/samples.html
cd Fabric-Samplesでコマンドを実行する
それでも問題かどうかわからない....すでに@Artemで述べたものを使用するか、ツールのあるパスに......fabric-samples/bin
フォルダを追加することができます。 fabric-samples
と同じbyfn.sh
フォルダ