【问题标题】:How do I resolve the error on hyperledger fabric?如何解决超级账本结构上的错误?
【发布时间】:2017-07-11 11:57:38
【问题描述】:

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

$  ./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/ bin:/usr/local/bin:/usr/bin:/bin:/mingw64/bin:/usr/bin:/c/Users/ayush/bin:/c/ProgramData/Oracle/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 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 Files/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/程序m 文件/Docker 工具箱:/c/Users/ayush/AppData/Roaming/npm:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/bin/vendor_perl:/usr/bin/core_perl) 未找到加密工具。退出

问题是什么,我该如何解决?

【问题讨论】:

    标签: hyperledger-fabric


    【解决方案1】:

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

    没有找到加密工具。退出

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

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

    更新

    您缺少:“Platform specific binaries”,请参阅此处如何获取它们。

    【讨论】:

    • 我关注了这个但它说make: *** No rule to make target 'cryptogen'. Stop.
    • 您需要获取二进制文件,在文档的答案中发布了一个链接,该链接解释了如何执行此操作。
    • 查看更新,您需要获取平台特定的二进制文件。
    • 您能在设置中添加详细信息吗?
    • 更新了新位置。
    【解决方案2】:

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

    brew tap hyperledger/fabric
    
    brew install fabric-tools
    

    然后用./byfn.sh -m generate command重试

    【讨论】:

    • 谢谢,在平台特定的二进制文件没有答案之后,这对我有用。
    【解决方案3】:

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

    which cryptogen
    

    【讨论】:

      【解决方案4】:

      主要问题出在最后一行错误中 “找不到加密工具。正在退出”

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

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

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

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

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

      导出 PATH=$PATH:[path-to-bin-directory]

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

      【讨论】:

        【解决方案5】:

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

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

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

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

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

        【讨论】:

          【解决方案6】:

          第一步:cd fabric-samples

          第二步:

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

          第三步:cd fabric-samples/first-network

          第四步:./byfn.sh -m generate

          您将看到一个关于将会发生什么的简短描述,以及一个是/否命令行提示符。以 y 响应或按回车键以执行所描述的操作。

          【讨论】:

            【解决方案7】:

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

            【讨论】:

              【解决方案8】:

              cryptogen 命令位于您安装(或解压缩)fabric tarball 的 bin 目录下。所以你只需要更新你的 $PATH 变量,以便 shell 知道在哪里可以找到 cryptogen 命令。 这段代码应该可以工作:

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

              其中&lt;home&gt; 是您的主目录,例如/home/sindelio &lt;fabric&gt; 是安装结构的位置。

              【讨论】:

                【解决方案9】:

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

                导出 PATH=$PATH:PATH_TO_FABRIC_SAMPLES/bin

                【讨论】:

                  【解决方案10】:

                  可能错过了这一步

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

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

                  运行命令 cd Fabric-Samples

                  【讨论】:

                    【解决方案11】:

                    在 cd 之后将特定于平台的二进制文件下载到您的工作区。

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

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

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2023-02-21
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2021-09-27
                      • 1970-01-01
                      相关资源
                      最近更新 更多