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

Docker 结构示例中给定的应用程序未检测到Hyperledger结构测试网络的名称,docker,hyperledger-fabric,hyperledger,docker-network,Docker,Hyperledger Fabric,Hyperledger,Docker Network,我刚刚从Hyperledger结构存储库中重新安装了结构示例v2.2.0 但是,当我试图通过运行node app.js来运行asset transfer basic位于fabric samples/asset transfer basic/application javascript目录下的asset transfer basic应用程序时,将创建钱包并注册管理员和用户。但随后它尝试调用app.js中给出的函数并显示此错误 error: [Transaction]: Error: No vali

我刚刚从Hyperledger结构存储库中重新安装了结构示例v2.2.0

但是,当我试图通过运行
node app.js
来运行
asset transfer basic
位于
fabric samples/asset transfer basic/application javascript
目录下的
asset transfer basic
应用程序时,将创建钱包并注册管理员和用户。但随后它尝试调用
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结构
结构示例后,似乎从未找到网络
\u test

注意:重新安装前,网络名称为
net\u test
。但现在当我尝试
docker network ls
时,它显示了一个名为
docker\u test
的网络。我正在使用Windows Linux子系统(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\u VM\u DOCKER\u HOSTCONFIG\u NETWORKMODE设置似乎是错误的
您可以检查
docker compose.yaml
core.yaml

1.docker-compose.yaml
  • 我将根据您当前的情况解释面料样品/测试网络的目标
  • 您可以在DOCKER-compose.yaml中签入
    CORE\u VM\u DOCKER\u HOSTCONFIG\u NETWORKMODE
  • 也许在您的示例(结构示例/测试网络)中,
    ${COMPOSE\u PROJECT\u NAME}
    的值设置不正确,因此它被设置为
    \u test
  • 确保该值设置正确,并将其更改为您的网络名称
#hyperledger/fabric samples/test network/docker/docker-compose-test-net.yaml
#基于v2.2
...
peer0.org1.example.com:
容器名称:peer0.org1.example.com
图片:hyperledger/fabric对等:2.2
环境:
-核心虚拟机端点=unix:///host/var/run/docker.sock
#-CORE\u VM\u DOCKER\u HOSTCONFIG\u NETWORKMODE=${COMPOSE\u PROJECT\u NAME}\u test
-CORE\u VM\u DOCKER\u HOSTCONFIG\u NETWORKMODE=DOCKER\u测试
...

2.core.yaml 如果尚未在
docker compose.yaml
对等中设置值,则需要检查对等引用的
core.yaml

您可以在
core.yaml

#core.yaml
...
虚拟机:
码头工人:
主机配置:
#网络模式:主机
网络模式:docker\u测试
...


如果两者都未设置,则会将其设置为默认值。但是,正如您所看到的,正在记录测试,两个部分中的一个设置了错误的值,您需要将该值更正为您想要的值。

我从某人那里复制了该值。该值适用于我

请在docker compose文件所在的目录中创建一个名为“.env”的文件。在“.env”文件中添加以下行:-


尝试将所有组件放在一个公共网络中,目前,您的组件位于不同的网络中。请描述此过程。我是docker的新用户。请按照文档中提供的相同步骤进行操作,或者亲自参考我将停止尝试使用wsl 1来完成此操作,这将带来有趣的挑战。您最好从WSL2开始使用。我每次都遵循这个过程,但同样的错误也发生了。我更改了我的
DOCKER compose test net.yaml
${compose\u PROJECT\u NAME}文件中
CORE\u VM\u DOCKER\u HOSTCONFIG\u NETWORKMODE
变量的值_测试
docker\u测试
,应用程序能够找到
docker\u测试
网络。我更改了两个文件。但是,稍后当我在
core.yaml
中重新进行更改时,应用程序仍然工作。
core.yaml
是初始对等引导时设置的值,如果设置了环境变量,它将被环境变量覆盖。换句话说,如果两者都设置了,那么它们将被设置为
docker compose.yaml
的env值。我很高兴你的问题解决了。了解这些文件很有帮助。是否有任何资源/文档有助于理解
织物样本
附带的
.yaml
文件的内容?我不知道是否有帮助。就我而言,我通过将代码与官方文件中介绍的内容进行比较来理解它。
COMPOSE_PROJECT_NAME=net