在尝试按照构建第一个网络的教程时,我得到了以下输出:
$ ./byfn.sh -m generate
使用通道'mychannel'生成证书和创建块,并将CLI超时'10000'继续(是/否)?你正在进行......其中:没有加密(/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 /斌:/ mingw64 / bin中:在/ usr / local / bin目录:在/ usr / bin中:/ bin中:/ mingw64 / bin中:在/ usr / bin中:/ C /用户/ AYUSH /斌:/ C / ProgramData /甲骨文/的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 /围棋/斌:/ C /计划文件/的NodeJS:/ C /用户/ AYUSH /应用程序数据/本地/程序/ Python的/ Python36 /脚本:/ C /用户/ AYUSH /应用程序数据/本地/程序/ Python的/ Python36:/ C /用户/ AYUSH /应用程序数据/本地/微软/ 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
运行示例之前,您需要确保编译了./byfn.sh
工具。只需从Fabric主文件夹运行:
make cryptogen configtxgen peer orderer peer-docker orderer-docker tools-docker
更新
你错过了:“Platform specific binaries”,请看这里如何获得它们。
可能错过了这一步
下载特定于平台的二进制文件
./byfn.sh -m generate
在cd Fabric-Samples中运行命令
如果您使用的是Mac,请在终端中执行以下操作:
brew tap hyperledger/fabric
brew install fabric-tools
然后再用./byfn.sh -m generate command
再试一次
我现在得到了答案。这个问题是由于缺乏密码,这确实是一个命令工具。获得它的最简单方法是将特定于平台的二进制文件下载到本地计算机,这是sh:
cd fabric-samples
curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap-1.0.1.sh | bash
这个sh会下载一个bash文件,它会提取最新的Fabric docker镜像和平台专用工具,其内容如下:
#!/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
然后你可以通过type命令测试加密是否存在:
which cryptogen
主要问题是在最后一行错误中说“找不到加密工具。退出”
请按照以下步骤解决此问题 -
curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/v1.0.5/scripts/bootstrap.sh | bash -s 1.0.5
运行该命令后,它将在bin目录下载各种工具,如cryptogen,configtxgen等。
export PATH = $ PATH:[path-to-bin-directory]
现在尝试再次构建网络。我希望这可以帮助别人。
请按照以下步骤解决此问题:
1.使用命令下载特定于平台的二进制文件
curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh | bash -s 1.1.0“
运行该命令后,它将在bin目录下载各种工具,如cryptogen,configtxgen等。
1.使用以下命令export PATH =。/ bin:$ PATH将bin目录添加到PATH变量
不确定它是否仍然是一个问题.....你可以尝试使用@Artem已经提到的,或者你可以将......fabric-samples/bin
文件夹添加到你的路径,其中有工具。它与fabric-samples
相同的byfn.sh
文件夹
cryptogen命令位于您安装(或未压缩)结构tarball的bin目录下。因此,您只需要更新$ PATH变量,以便shell知道可以找到cryptogen命令的位置。这段代码应该有效:
export "$PATH:/<home>/<fabric>/bin"
其中<home>
是您的主目录,例如/home/sindelio
和<fabric>
是安装结构的地方。
第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
第四步:赌场
您将看到有关将发生什么的简要说明,以及是/否命令行提示。用y响应或点击返回键以执行所描述的操作。
除非您关闭终端,否则以下解决方案有效:
export PATH = $ PATH:PATH_TO_FABRIC_SAMPLES / bin