无法在Hyperledger Composer中发出标识

时间:2017-12-03 18:10:33

标签: hyperledger hyperledger-composer

我正在尝试向已存在于网络中的参与者发出身份。

 return this.bizNetworkConnection.connect(this.cardname)
     .then((result) => {
         let email = 'user@gmail.com',
             username = email.split('@')[0];

         this.businessNetworkDefinition = result;

         return this.bizNetworkConnection.issueIdentity('org.test.Person#user@gmail.com', username);
     })
    .then((result) => {
        console.log(`userID = ${result.userID}`);
        console.log(`userSecret = ${result.userSecret}`);

     })

我希望我会在控制台上看到userID和userSecret,但是我收到了如下所述的错误。

按照他们的文档开发人员教程:

  1. 如果我在上面的连接函数中使用PeerAdmin @ hlfv1的卡名,我会收到错误消息。 "尝试ping时出错。错误:尝试查询业务网络时出错。错误:缺少\" chaincodeId \"提案请求中的参数"
  2. 如果我在上面的connect函数中使用admin @ tutorial-network的卡名,我会收到错误" fabric-ca请求寄存器失败并显示错误[[{\" code \&#34 ;:400,\"消息\":\"授权失败\"}]]"
  3. 对于选项1,我知道给定卡中缺少网络名称,而选项2意味着管理员无权发出身份。但是,我似乎无法找到任何文件指导我如何使用它们来实现我的目标。任何帮助都非常欢迎。

    虽然我列出了我用来实现相同的javascript代码,但我不介意是否有人可以使用composer cli来解释我所缺少的内容。

1 个答案:

答案 0 :(得分:1)

请参阅https://hyperledger.github.io/composer/latest/managing/identity-issue.html

您肯定会使用admin@tutorial-network卡,因为PeerAdmin无权发放身份(管理员)。

您是否已经做过:1)composer card import -f networkadmin.card(根据教程)? 2)composer network ping -c admin@tutorial-network使用该卡(现在在卡片商店中),从而填充管理员的凭证(证书/私钥)。

只有在那时,管理员才会被认为是发出更多身份的身份。您是否可以在某个阶段启动新的dockerized CA服务器,因为您执行了导入等操作?

如果您通过命令行发出test身份(使用admin @ tutorial-network?会失败)会发生什么?