Hyperledger作曲家管理员证书无法部署网络

时间:2017-10-30 09:58:37

标签: hyperledger-fabric hyperledger hyperledger-composer

我遇到了业务网络部署问题(作曲家版本0.14.2):

  1. 我向fabric-ca请求身份(注册为 admin 密码 adminpw ,与fabric-ca-server的bootstrapping身份相同)
  2. 我收到证书和私钥后,我将该身份导入到userID adminCC (匹配以前的证书和此userID的密钥),我尝试使用enrollmentID adminCC 和businessnetworkadmin adminCC
  3. 我收到错误消息Error: Error trying deploy. Error: Error trying install composer runtime. Error: chaincode error (status: 500, message: Authorization for INSTALL has been denied (error-Failed verifying that proposal's creator satisfies local MSP principal during channelless check policy with policy [Admins]: [This identity is not an admin]))
  4. 有关此问题的任何帮助吗?不应该向结构请求证书 - 可以是具有管理员权限的证书吗?

2 个答案:

答案 0 :(得分:1)

您收到的错误来自对等方,说您使用的身份没有管理员权限,因此不允许将链码安装到其上。 fabric-ca-server设置中的管理员标识只是fabric-ca-server的bootstrap标识,因此在fabric-ca-server上只有发行者权限,从中获取它并且没有任何部分的管理员权限面料网络。

答案 1 :(得分:0)

如果您之前在v0.13.2或更低版本上投放,则升级到v0.14.0v0.14.2时会发生重大变化。您可以阅读更多here。但它的主旨是所有以前版本的Composer,所有名称为admin(不区分大小写)的数字证书都具有"特权访问权限#34;到业务网络 - 本质上它就像访问控制规则被禁用一样。他们用更安全的模型取而代之。因此,您可以更改permissions.pcl文件并添加:

rule NetworkAdminUser {
    description: "Grant business network administrators full access to user resources"
    participant: "org.hyperledger.composer.system.NetworkAdmin"
    operation: ALL
    resource: "**"
    action: ALLOW
}

rule NetworkAdminSystem {
    description: "Grant business network administrators full access to 
system resources"
    participant: "org.hyperledger.composer.system.NetworkAdmin"
    operation: ALL
    resource: "org.hyperledger.composer.system.**"
    action: ALLOW
}

然后在归档BNA之后,为了正确部署,请使用:

composer network deploy -p hlfv1 -a {ban_location/ban_name.bna} -i PeerAdmin -s randomString -A admin -S adminpw

在此之后,你可以像以前一样使用adminadminpw的旧命令:

composer-rest-server -p hlfv1 -n my-network -i admin -s adminpw -N never