"error trying invoke chaincode. Error: chaincode error (status: 500, message: TypeError: cannot read property 'getFullyQualifiedIdentifier' of null)",

"error trying invoke chaincode. Error: chaincode error (status: 500, message: TypeError: cannot read property 'getFullyQualifiedIdentifier' of null)",

我在按照此处的教程进行操作时出现以下错误。

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

我创建了一个 Participant 并为其颁发了身份。但是在我的交易处理器函数中,当我通过 rest api 使用 getCurrentParticipant 函数验证当前参与者的参与者 ID 时,出现以下错误。

{ "error":{ "statusCode": 500, "name": "Error", "message": "error trying invoke chaincode. Error: chaincode error (status: 500, message: TypeError: cannot read property 'getFullyQualifiedIdentifier' of null)", "stack": "Error: error trying invoke chaincode. Error: chaincode error (status: 500, message: TypeError: cannot read property 'getFullyQualifiedIdentifier' of null)\n at _initializeChannel.then.then.then.then.catch (/home/praval/.nvm/versions/node/v6.11.1/lib/node_modules/composer-rest-server/node_modules/composer-connector-hlfv1/lib/hlfconnection.js:847:34)" } }

谁能解释一下原因?

从证书到参与者的映射似乎不存在。最简单的测试方法是使用 composer identity issue 命令,然后使用 composer network ping -- 这将 return 当前参与者。一旦它起作用,那么 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
}