结构示例中给出的应用程序未检测到HyperledgerFabric测试网络的名称

我刚刚根据文档从 Hyperledger Fabric 存储库重新安装了 Fabric Samples v2.2.0 。

但是当我尝试通过运行钱包来运行asset-transfer-basic位于fabric-samples/asset-transfer-basic/application-javascript目录中的应用程序时,node app.js会创建一个管理员和用户。但随后它尝试调用中给出的函数app.js并显示此错误

error: [Transaction]: Error: No valid responses from any peers. Errors:
    peer=peer0.org1.example.com:7051, status=500, message=error in simulation: failed to execute transaction 
aa705c10403cb65cecbd360c13337d03aac97a8f233a466975773586fe1086f6: could not launch chaincode basic_1.0:b359a077730d7
f44d6a437ad49d1da951f6a01c6d1eed4f85b8b1f5a08617fe7: error starting container: error starting container:
 API error (404): network _test not found

调用函数的事务响应

这个错误以前从未发生过。但不知何故,在重新安装 docker 和 Hyperledger Fabric 后,fabric-samples它似乎从未找到网络_test

注意:在重新安装网络名称之前net_test。但是现在当我尝试时,docker network ls它显示了一个名为docker_test. 我正在使用适用于 Linux 的 Windows 子系统 (WSL) 版本 1。

NETWORK ID     NAME          DRIVER    SCOPE
b7ac05456f46   bridge        bridge    local
acaa5856b871   docker_test   bridge    local
866f58b9078d   host          host      local
4812f94efb15   none          null      local

如何解决在我尝试运行应用程序时出现的问题?

回答

在我看来,CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE设置似乎是错误的。
你可以检查docker-compose.yamlcore.yaml

1. docker-compose.yaml

  • 我将根据您当前的情况将fabric-samples/test-network 解释为定位。
  • 您可以在CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODEdocker-compose.yaml 中签入
  • 也许在您的情况下(fabric-samples/test-network), 的值${COMPOSE_PROJECT_NAME}设置不正确,因此设置为_test
  • 确保该值设置正确并将其更改为您的网络名称。
# hyperledger/fabric-samples/test-network/docker/docker-compose-test-net.yaml
# based v2.2
...
  peer0.org1.example.com:
    container_name: peer0.org1.example.com
    image: hyperledger/fabric-peer:2.2
    environment:
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      # - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=${COMPOSE_PROJECT_NAME}_test
      - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=docker_test
...

2. 核心.yaml

如果对端没有设置该值,则docker-compose.yaml需要查看对端core.yaml引用的值。

你可以找到networkMode参数core.yaml

# core.yaml
...
vm:
    docker:
        hostConfig:
            # NetworkMode: host
            NetworkMode: docker_test
...

如果两者都没有设置,它将被设置为默认值。但是,正如您所看到的_test,在两个部分之一中设置了错误的值,您需要将该值更正为您想要的值。


以上是结构示例中给出的应用程序未检测到HyperledgerFabric测试网络的名称的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>