在运行fabric环境时,特别是使用docker-compose或者运行2.3.0及以下版本的fabric-sample的test-network时,基本都会遇到这个错误。
这个错误会导致你在安装智能合约时发生合约无法启动,也无法调用的问题。
导致这个错误的原因是因为fabric-samples/test-network/docker/docker-compose-test-net.yaml的配置文件中有一个
- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=${COMPOSE_PROJECT_NAME}_test
${COMPOSE_PROJECT_NAME}在智能合约启动时,此值获取到的会是空值,从而导致标题的错误提示。这个也被官方收录进issue中,并在fabric-samples的main分支中已经改为固定值,如下:
- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=fabric_test
需要注意的是使用docker-compse启动时,创建的network名字会在前边加上当前docker-compse文件的目录名字。所以如果我们在使用老版本的fabric-sample时,自己可修改${COMPOSE_PROJECT_NAME}值为当前你存放compose文件的文件夹名称。
查看创建的docker network可以使用docker network ls查看。