超级账本作曲家:"The current identity, with the name 'admin' and the identifier 'xxx' has not been registered"

hyperledger-composer: "The current identity, with the name 'admin' and the identifier 'xxx' has not been registered"

我的问题是关于 Hyperledger Composer 中的身份验证。

我创建了一个商业网络(在此之上还有一个 angular 应用程序,但那个 angular 应用程序与这个问题无关)。

我启动了 rest 服务器并启用了身份验证和多用户模式。

转到位于 localhost:3000 的其余服务器,请求因缺少身份验证而被阻止 - 正如预期的那样。

在启动其余服务器之前,我有 运行 以下命令:

export COMPOSER_PROVIDERS='{
  "github": {
    "provider": "github",
    "module": "passport-github",
    "clientID": "<MY CLIENT ID>",
    "clientSecret": "MY CLIENT SECRET",
    "authPath": "/auth/github",
    "callbackURL": "/auth/github/callback",
    "successRedirect": "http://localhost:4200",
    "failureRedirect": "/"
  }
}'

即身份验证需要GitHub-登录。所以我去了 http://localhost:3000/auth/github 并登录了 GitHub。

然后我回到http://localhost:3000/explorer并尝试发送请求。我收到以下错误:"A business network card has not been specified".

我以为这意味着我需要导入当前用户的名片。在这种情况下,当前用户是当我使用以下命令启动业务网络时自动创建的 NetworkAdmin:

composer network start --networkName composer-app --networkVersion 0.0.1 --card PeerAdmin@hlfv1 --networkAdmin admin --networkAdminEnrollSecret adminpw

所以我通过选择相应的文件并发送相关的 HTTP 请求(见截图)导入了这个 NetworkAdmin 的业务网卡:

确认卡导入成功后,我再次尝试发送请求

这次我收到以下错误信息:

"Error trying to ping. Error: 2 UNKNOWN: error executing chaincode: transaction returned with failure: Error: The current identity, with the name 'admin' and the identifier '57e1bd6da04f49b1703d4813d4950c4c5cd6641fce3f805fae2545023fb2f16b', has not been registered"

所以我想我正在做某事 wrong/misunderstanding 某事。

有人知道我做错了什么吗?

您导入的网络管理员卡似乎有问题。颁发身份(并创建卡)时,将创建一次性秘密。当卡片第一次使用时,秘密被交换为 Certificates/Keys 并且一次性秘密无效。

我猜你已经导入了你用来启动 REST 服务器的 .card 文件 - 所以现在这个秘密是无效的。如果我是对的,您需要在命令行中使用 composer card export -c admin@<my-network> -f admin-plus-cert.card 导出卡片并将新的 .card 文件导入 REST 服务器钱包。

成功导入该卡后,您可以继续访问业务网络,并颁发新身份(使用新卡,并将其也导入 REST 服务器)