为参与者颁发身份无法在 RestAPI 上运行,但可以在命令行中运行

问题描述 投票:0回答:1

我已经使用开发人员环境教程中提供的 Fabric 部署了自定义 .bna。然后,我启动了composer-rest-server,如下所示:

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

然后,我创建了一些参与者,并尝试在 RestAPI Loopback(位于 3000/explorer)中发出身份,并在其中发送一个

curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ \ 
   "participant": "", \ 
   "userID": "" \ 
 }' 'http://localhost:3000/api/system/issueIdentity'

但我收到以下错误:

{
  "error": {
    "statusCode": 500,
    "name": "Error",
    "message": "error trying invoke chaincode. Error: chaincode error (status: 500, message: Error: Invalid fully qualified participant identifier)",
    "stack": "Error: error trying invoke chaincode. Error: chaincode error (status: 500, message: Error: Invalid fully qualified participant identifier)\n    at _initializeChannel.then.then.then.then.catch (/usr/lib/node_modules/composer-rest-server/node_modules/composer-connector-hlfv1/lib/hlfconnection.js:839:34)"
  }
}

但是当我使用命令行尝试相同的操作时,如下:

composer identity issue -n 'app' -i admin -s adminpw -u username -a "org.company.app.user#bob" -p hlfv1

命令成功并且身份已创建。我曾与不同的参与者尝试过,但结果相同。另外,尽管出现错误,如果我尝试使用相同的 userID 发出新身份,则会收到错误,然后它会说该身份已注册。

版本均为最新的composer(0.9.1)和Fabric(RC1)。

hyperledger-fabric hyperledger-composer
1个回答
2
投票

路易斯

我认为问题是您的“curl”命令中需要“完全限定”的参与者名称。

所以:

curl -X POST --header '内容类型:application/json' --header '接受:application/json' -d '{ \ "参与者": "org.acme.acmeis.user#orgadmin1", \ “用户ID”:“戴夫”\ }' 'http://localhost:3000/api/system/issueIdentity'

其中 orgadmin1 是您已添加的参与者,“dave”是您的身份。

© www.soinside.com 2019 - 2024. All rights reserved.