读取核心配置文件时出错:不支持的配置类型

Error when reading core config file: Unsupported Config Type

我正在尝试使用以下命令将通道配置事务工件传递给订购者:

peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls --cafile 
/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

但是我得到一个错误:

2018-03-17 20:55:21.380 GMT [main] main -> ERRO 001 Fatal error
 when initializing core config : error when reading core 
config file: Unsupported Config Type ""

这个错误是什么意思?我该如何解决?

使用docker ps -a

CONTAINER ID        IMAGE                                                                                                    COMMAND                  CREATED             STATUS                       PORTS                                              NAMES
5c27fce33911        hyperledger/fabric-tools:latest                                                                          "/bin/bash"              3 minutes ago       Up 3 minutes                                                                    cli
aabf72f81352        hyperledger/fabric-peer:latest                                                                           "peer node start"        3 minutes ago       Up 3 minutes                 0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp     peer0.org1.example.com
73ddcafb5ce6        hyperledger/fabric-orderer:latest                                                                        "orderer"                3 minutes ago       Up 3 minutes                 0.0.0.0:7050->7050/tcp                             orderer.example.com
205448f5479a        hyperledger/fabric-peer:latest                                                                           "peer node start"        3 minutes ago       Up 3 minutes                 0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp     peer1.org1.example.com
4e5ba2999f54        hyperledger/fabric-peer:latest                                                                           "peer node start"        3 minutes ago       Up 3 minutes                 0.0.0.0:9051->7051/tcp, 0.0.0.0:9053->7053/tcp     peer0.org2.example.com
fcc6b25b6422        hyperledger/fabric-peer:latest                                                                           "peer node start"        3 minutes ago       Up 3 minutes                 0.0.0.0:10051->7051/tcp, 0.0.0.0:10053->7053/tcp   peer1.org2.example.com
2f1536ffe265        dev-peer0.org1.example.com-fabcar-1.0-5c906e402ed29f20260ae42283216aa75549c571e2e380f3615826365d8269ba   "chaincode -peer.add…"   24 hours ago        Exited (255) 3 minutes ago                                                      dev-peer0.org1.example.com-fabcar-1.0
6ae48101bc34        hyperledger/fabric-ca                                                                                    "sh -c 'fabric-ca-se…"   24 hours ago        Exited (255) 3 minutes ago   0.0.0.0:7054->7054/tcp                             ca.example.com
dc9e5bb3cc8e        hyperledger/fabric-couchdb                                                                               "tini -- /docker-ent…"   24 hours ago        Exited (255) 3 minutes ago   4369/tcp, 9100/tcp, 0.0.0.0:5984->5984/tcp         couchdb

这是 orderer.example.com 的日志

导出 FABRIC_CFG_PATH=$PWD。它会解决这个问题。

你能试试运行这个命令吗:echo $FABRIC_CFG_PATH

无论您得到什么值,您能否导航到该目录并确认您是否可以在其中看到 configtx.yaml 文件。

根据文档 here,它说错误是由于不恰当地设置该变量的值造成的。

您应该在 CLI 容器内才能执行 peer channel create 命令。

您将使用 docker exec 命令进入 CLI 容器:

docker exec -it cli bash

如果成功,您应该会看到以下内容:

root@0d78bb69300d:/opt/gopath/src/github.com/hyperledger/fabric/peer#

在那边,你应该运行这样的peer channel create命令:

root@0d78bb69300d:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

在 运行 执行此命令之前,请注意您还应该 运行 用于为 CHANNEL_NAME 创建环境变量的命令和 PEER0 的其他环境变量CLI 容器.

这是找不到 core.yaml 时出现的错误。与上面提到的 Mukesh 一样,CLI 容器中的 运行 命令不会抛出错误。

有关详细信息,请参阅 this link