如何解决超级边缘结构上的错误?

时间:2017-07-11 11:57:38

标签: hyperledger-fabric

在尝试按照构建第一个网络的教程时,我得到了以下输出:

$  ./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 / bin:/ mingw64 /斌:在/ usr / local / bin目录:在/ usr / bin中:/ bin中:/ mingw64 / bin中:在/ usr / bin中:/ C /用户/ AYUSH /斌:/ C / ProgramData /甲骨文/的Java / javapath:/ C /程序文件/ Docker / Docker / Resources / bin:/ c / Windows / system32:/ c / Windows:/ c / Windows / System32 / Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/ c / Program Files (x86)/ NVIDIA公司/ 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 Files / nodejs:/ C /用户/ AYUSH /应用程序数据/本地/程序/ Python的/ Python36 /脚本:/ C /用户/ AYUSH /应用程序数据/本地/程序/ Python的/ Python36:/ C /用户/ AYUSH /应用程序数据/本地/微软/ WindowsApps: / C /蟒:/ C /语言程序m文件/ Docker工具箱:/ c / Users / ayush / AppData / Roaming / npm:/ usr / bin / vendor_perl:/ usr / bin / core_perl:/ usr / bin / vendor_perl:/ usr / bin / core_perl)   找不到加密工具。离开

问题是什么?如何解决?

11 个答案:

答案 0 :(得分:7)

问题的关键在于最后一句话:

  

找不到密码工具。离开

在尝试使用cryptogen运行示例之前,您需要确保已编译./byfn.sh工具。只需从Fabric主文件夹运行:

make cryptogen configtxgen peer orderer peer-docker orderer-docker tools-docker

更新

您遗失了:“Platform specific binaries”,请点击此处了解如何获取它们。

答案 1 :(得分:2)

如果您使用的是Mac,请在终端中执行以下操作:

brew tap hyperledger/fabric

brew install fabric-tools

然后使用./byfn.sh -m generate command

再试一次

答案 2 :(得分:2)

我现在得到了答案。 这个问题是由于缺乏密码,这确实是一个命令工具。获取它的最简单方法是将特定于平台的二进制文件下载到本地计算机中,   这是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

答案 3 :(得分:2)

主要问题在于最后一行错误 "找不到加密工具。离开"

请按照以下步骤解决此问题 -

  1. 使用命令
  2. 下载特定于平台的二进制文件
      

    curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/v1.0.5/scripts/bootstrap.sh | bash -s 1.0.5

    运行命令后,它会在bin目录下载各种工具,如cryptogen,configtxgen等。

    1. 使用以下命令
    2. 将bin目录添加到PATH变量
        

      export PATH = $ PATH:[path-to-bin-directory] ​​

      现在尝试再次构建网络。 我希望这有助于某人。

答案 4 :(得分:1)

请按照以下步骤解决此问题:

1.使用命令

下载特定于平台的二进制文件

curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh | bash -s 1.1.0"

运行命令后,它会在bin目录下载各种工具,如cryptogen,configtxgen等。

1.使用以下命令将bin目录添加到PATH变量 export PATH =。/ bin:$ PATH

答案 5 :(得分:0)

不确定它是否还是一个问题..... 您可以尝试使用@Artem已经提到的内容, 要么 您可以将......fabric-samples/bin文件夹添加到包含工具的路径中。它是具有fabric-samples

byfn.sh文件夹

答案 6 :(得分:0)

cryptogen命令位于您安装(或未压缩)结构tarball的bin目录下。因此,您只需要更新$ PATH变量,以便shell知道可以找到cryptogen命令的位置。 这段代码应该有效:

export "$PATH:/<home>/<fabric>/bin"

<home>是您的主目录,例如/home/sindelio 并且<fabric>是安装结构的地方。

答案 7 :(得分:0)

第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

您将看到有关将会发生什么的简短说明,以及是/否命令行提示。用y回答或按回车键执行描述的操作。

答案 8 :(得分:0)

除非关闭终端,否则以下解决方案有效:

export PATH = $ PATH:PATH_TO_FABRIC_SAMPLES / bin

答案 9 :(得分:0)

可能错过了此步骤

下载特定于平台的二进制文件

https://hyperledger-fabric.readthedocs.io/en/release-1.1/samples.html

运行命令 cd布样

答案 10 :(得分:0)

在cd进入工作区后,下载特定于平台的二进制文件。

curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/v1.4.0/scripts/bootstrap.sh | bash

确保您的二进制文件版本与您的配置文件匹配