执行peer channel create时遇核心配置文件读取错误:不支持的配置类型
我来帮你排查这个问题!你执行的通道创建命令是:
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 初始化核心配置时发生致命错误:读取核心配置文件出错:不支持的配置类型的内容
这个错误的核心是peer节点无法正确读取核心配置文件(core.yaml),常见的原因和解决方法如下:
检查core.yaml的YAML语法正确性
YAML对缩进、符号格式要求很严格,比如冒号后面必须加空格,列表项缩进要统一,字符串引号配对等。你可以用yamllint工具(本地安装后直接运行yamllint /path/to/core.yaml)来检查语法问题,手动修正那些报错的地方。确认core.yaml文件未被篡改
有时候误操作会导致配置文件内容被修改成非YAML格式(比如不小心粘贴了JSON内容,或者文件出现乱码)。如果是使用官方Fabric示例的配置,建议从Fabric源码仓库里复制一份干净的core.yaml替换掉当前的文件,确保文件内容是标准的YAML格式。验证FABRIC_CFG_PATH环境变量设置
peer节点会通过这个环境变量找到配置文件目录。执行echo $FABRIC_CFG_PATH,看看输出的路径是不是包含正确core.yaml的目录(默认通常是/etc/hyperledger/fabric)。如果路径不对,用export FABRIC_CFG_PATH=/path/to/your/config/directory命令重新设置,之后再尝试运行通道创建命令。权限检查
确保当前用户对core.yaml所在的目录和文件有读取权限,避免因为权限不足导致无法读取配置内容。可以用ls -l /path/to/core.yaml查看权限,必要时用chmod调整。
按照上面的步骤逐一排查,应该就能解决这个配置读取的问题啦!
内容的提问来源于stack exchange,提问作者Soph

