结构示例中给出的应用程序未检测到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.yaml
或core.yaml
1. docker-compose.yaml
- 我将根据您当前的情况将fabric-samples/test-network 解释为定位。
- 您可以在
CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE
docker-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
,在两个部分之一中设置了错误的值,您需要将该值更正为您想要的值。
THE END
二维码