结构样本中给出的应用程序未检测到 Hyperledger Fabric 测试网络的名称
The Name of Hyperledger Fabric Test Network is not detected by an Application given in the fabric samples
我刚刚根据 documentation.
从 Hyperledger Fabric 存储库重新安装了 Fabric Samples v2.2.0
但是当我尝试 运行 asset-transfer-basic
位于 fabric-samples/asset-transfer-basic/application-javascript
目录的应用程序时 运行ning 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
Response of a transaction to invoke a function
此错误以前从未发生过。但是不知何故,在重新安装 docker 和 Hyperledger Fabric fabric-samples
之后,它似乎永远找不到网络 _test
。
N.B。 : 在重新安装网络名称之前是 net_test
。但现在当我尝试 docker network ls
时,它显示了一个名为 docker_test
的网络。我正在为 Linux (WSL) 版本 1 使用 Windows 子系统。
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是定位
- 您可以在docker-compose.yaml
签到CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE
- 可能在你的情况下(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。 core.yaml
如果没有在docker-compose.yaml
peer中设置值,需要查看peer引用的core.yaml
您可以在core.yaml
中找到networkMode
参数
# core.yaml
...
vm:
docker:
hostConfig:
# NetworkMode: host
NetworkMode: docker_test
...
如果两者均未设置,则设置为默认值。但是,如您所见 _test
被记录,两个部分之一设置了错误的值,您需要将该值更正为您想要的值。
我从别人那里复制了这个。这个对我有用!!
请在 docker-compose 文件所在的同一目录中创建一个名为“.env”的文件。在“.env”文件中添加以下行:-
COMPOSE_PROJECT_NAME=net
此问题与 docker 网络有关。完成@nezuko-response.
创建一个文件并将其命名为 ".env",位于 docker-compose 文件所在的同一目录中。
在其中添加以下行:
COMPOSE_PROJECT_NAME=net
使用 docker-compose up
使用新配置更新容器。
或关闭 HL 网络 (./network.sh down
) 并启动 (./network.sh up
),重新启动 test-nework.
否则即使在创建 ".env" 文件后你仍然会得到同样的错误。
的更多解释
运行 ./network down
然后
export COMPOSE_PROJECT_NAME=net
之后
./network start
这对我有用
export COMPOSE_PROJECT_NAME=net
我刚刚根据 documentation.
从 Hyperledger Fabric 存储库重新安装了 Fabric Samples v2.2.0但是当我尝试 运行 asset-transfer-basic
位于 fabric-samples/asset-transfer-basic/application-javascript
目录的应用程序时 运行ning 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
Response of a transaction to invoke a function
此错误以前从未发生过。但是不知何故,在重新安装 docker 和 Hyperledger Fabric fabric-samples
之后,它似乎永远找不到网络 _test
。
N.B。 : 在重新安装网络名称之前是 net_test
。但现在当我尝试 docker network ls
时,它显示了一个名为 docker_test
的网络。我正在为 Linux (WSL) 版本 1 使用 Windows 子系统。
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是定位
- 您可以在docker-compose.yaml 签到
- 可能在你的情况下(fabric-samples/test-network),
${COMPOSE_PROJECT_NAME}
的值设置不正确,所以设置为_test
。 - 确保值设置正确并将其更改为您的网络名称。
CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE
# 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。 core.yaml
如果没有在docker-compose.yaml
peer中设置值,需要查看peer引用的core.yaml
您可以在core.yaml
networkMode
参数
# core.yaml
...
vm:
docker:
hostConfig:
# NetworkMode: host
NetworkMode: docker_test
...
如果两者均未设置,则设置为默认值。但是,如您所见 _test
被记录,两个部分之一设置了错误的值,您需要将该值更正为您想要的值。
我从别人那里复制了这个。这个对我有用!!
请在 docker-compose 文件所在的同一目录中创建一个名为“.env”的文件。在“.env”文件中添加以下行:-
COMPOSE_PROJECT_NAME=net
此问题与 docker 网络有关。完成@nezuko-response.
创建一个文件并将其命名为 ".env",位于 docker-compose 文件所在的同一目录中。
在其中添加以下行:
COMPOSE_PROJECT_NAME=net
使用 docker-compose up
使用新配置更新容器。
或关闭 HL 网络 (./network.sh down
) 并启动 (./network.sh up
),重新启动 test-nework.
否则即使在创建 ".env" 文件后你仍然会得到同样的错误。
的更多解释运行 ./network down
然后
export COMPOSE_PROJECT_NAME=net
之后
./network start
这对我有用
export COMPOSE_PROJECT_NAME=net