Hyperledger Fabric通道创建报错:未设置Admin OU分类需声明管理员
解决Hyperledger Fabric MSP管理员未声明错误
错误提示administrators must be declared when no admin ou classification is set说明你的admin MSP配置未正确声明管理员身份,且未启用Admin OU分类,Fabric无法自动识别管理员权限。以下是两种直接的修复方案:
方法1:通过admincerts目录配置管理员
这是最简便的方式,Fabric会自动扫描admincerts目录下的证书作为合法管理员身份:
- 进入CLI容器后,创建admincerts目录(如果不存在):
mkdir -p /tmp/hyperledger/org1/admin/msp/admincerts - 将管理员的签名证书复制到该目录:
注:cp /tmp/hyperledger/org1/admin/msp/signcerts/* /tmp/hyperledger/org1/admin/msp/admincerts/signcerts下的证书是当前admin身份的签名证书,复制到admincerts后,MSP会自动将其标记为合法管理员。
方法2:修改MSP的config.yaml配置
如果不想使用目录扫描,可以直接在配置文件中显式声明管理员证书:
- 编辑admin的MSP配置文件:
vi /tmp/hyperledger/org1/admin/msp/config.yaml - 添加
Admins字段,填入管理员证书的完整内容(保持证书格式完整):
注:确保NodeOUs: Enable: false Admins: - "-----BEGIN CERTIFICATE----- MIICZjCCAc+gAwIBAgIUY...(此处替换为你的完整管理员证书内容) -----END CERTIFICATE-----"NodeOUs.Enable为false(与你未设置Admin OU的情况一致)。
验证修复
完成上述操作后,重新执行通道创建命令:
peer channel create -c mychannel -f /tmp/hyperledger/org1/peer1/assets/channel.tx -o orderer1-org0:7050 --outputBlock /tmp/hyperledger/org1/peer1/assets/mychannel.block --tls true --cafile /tmp/hyperledger/org1/peer1/tls-msp/tlscacerts/tls-0-0-0-0-7052.pem
内容的提问来源于stack exchange,提问作者Ivan
相关产品推荐
相关产品推荐

