"尝试调用链码时出错。错误:链码错误(状态:500,消息:TypeError:无法读取属性' getFullyQualifiedIdentifier'为null)",

时间:2017-07-26 13:03:10

标签: access-control hyperledger-composer

我在遵循教程时遇到错误。

https://hyperledger.github.io/composer/unstable/managing/current-participant.html

我创建了一个参与者并向其发放了身份。但是在我的事务处理器函数中,当我通过rest apis使用getCurrentParticipant函数验证当前参与者的参与者ID时,我得到以下错误。

{   "错误":{     " statusCode":500,     " name":"错误",     " message":"尝试调用链码时出错。错误:链码错误(状态:500,消息:TypeError:无法读取属性' getFullyQualifiedIdentifier'为null)",     " stack":"错误:尝试调用链码时出错。错误:链码错误(状态:500,消息:类型错误:无法读取属性' getFullyQualifiedIdentifier'为null)\ _在_initializeChannel.then.then.then.then.catch(/home/praval/.nvm/版本/节点/ v6.11.1 / LIB / node_modules /作曲家静止服务器/ node_modules /作曲家连接器-hlfv1 / LIB / hlfconnection.js:847:34)"   } }

有人可以解释原因吗?

1 个答案:

答案 0 :(得分:0)

看起来从证书到参与者的映射不到位。最简单的测试方法是使用composer identity issue命令,然后使用composer network ping - 这将返回当前参与者。一旦有效,那么getCurrentParticipant()应该有效。

https://hyperledger.github.io/composer/managing/identity-issue.html

当您composer network ping时,您的参与者将尝试访问网络元数据。下面的ACL规则将允许此访问。请确保您使用的是包含此规则的最新版本的basic-sample-network。

rule SystemACL {
  description:  "System ACL to permit all access"
  participant: "org.hyperledger.composer.system.Participant"
  operation: ALL
  resource: "org.hyperledger.composer.system.**"
  action: ALLOW
}