超级账本作曲家:"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 服务器)
我的问题是关于 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 服务器)