隐式政策评估失败-满足0个子政策,

时间:2019-10-21 06:59:21

标签: hyperledger-fabric hyperledger

当我尝试通过运行来创建频道时出现此错误。

peer channel create -o orderer.aj.io:7050 -c channel1 -f /config/channel1.tx

这是我的日志------------

2019-10-21 05:50:13.950 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Error: got unexpected status: FORBIDDEN -- implicit policy evaluation failed - 0 sub-policies were satisfied, but this policy requires 1 of the 'Writers' sub-policies to be satisfied: permission denied

2 个答案:

答案 0 :(得分:0)

此错误的意思是您用来创建频道的用户没有“写”权限,换句话说,不是管理员。

在大多数情况下,当您使用对等加密材料而不是管理员创建通道时,会发生这种情况(请检查CORE_PEER_MSPCONFIGPATH环境变量指向的位置)。

答案 1 :(得分:0)

正如另一位用户在另一篇文章中提到的那样:1.4.3中有一项新功能,该功能使您可以为admin指定OU,而不必将证书明确放置在admincerts文件夹中。

在加密配置中,您设置了EnableNodeOUs: true,这将自动为所有受支持的角色启用OU。

您会看到类似的东西

NodeOUs:
  Enable: true
  ClientOUIdentifier:
    Certificate: cacerts/ca.sampleorg-cert.pem
    OrganizationalUnitIdentifier: client
  PeerOUIdentifier:
    Certificate: cacerts/ca.sampleorg-cert.pem
    OrganizationalUnitIdentifier: peer
  AdminOUIdentifier:
    Certificate: cacerts/ca.sampleorg-cert.pem
    OrganizationalUnitIdentifier: admin
  OrdererOUIdentifier:
    Certificate: cacerts/ca.sampleorg-cert.pem
    OrganizationalUnitIdentifier: orderer

msp/config.yaml文件中(在您的情况下,在crypto-config/peerorganisation/org1.example.com/msp/crypto.yaml中)。

请注意AdminOUIdentifier字段。这意味着,由CA为您的组织颁发的包含OU=admin的任何证书现在都被视为管理员。在组织MSP下为admin用户生成的证书也是使用OU = admin生成的(例如,主题:C = US,ST = California,L = San Francisco,OU = admin,CN = Admin @ sampleorg)。

另一个原因可能是在configtx.yaml中,您没有为每个部分正确设置策略(这是我的问题)。 检查第一个网络样本中的configtx.yaml文件,并尝试进行相应设置