Composer rest server 多用户错误说明

Composer rest server multi user error clarification

我正在尝试 Composer 休息服务器多用户模式 ​​-

这是我的设置:

-> 我在启用多用户模式的情况下为 alice 启动其余服务器,并将身份 jdoe 添加到其钱包中。现在,当我尝试进行休息操作时,它说:

"message": "Error trying login and get user Context. Error: Error trying to enroll user or load channel configuration. Error: Enrollment failed with errors [[{\"code\":20,\"message\":\"Authorization failure\"}]]"

-> bob 也一样 - 如果我尝试添加 dave,它会给出相同的错误。

-> 另外,如果我尝试将身份 dave 和 jdoe 添加到 charles` 钱包,它会给出同样的错误

但是多用户模式适用于以下场景

1) 通过作为管理员的 alice 我创建了一个参与者 'restadmin',他也是 NetworkAdmin

composer participant add -c alice@trade-network -d '{"$class":"org.hyperledger.composer.system.NetworkAdmin", "participantId":"restadmin"}'
composer identity issue -c alice@trade-network -f cards/restadmin.card -u restadmin -a "resource:org.hyperledger.composer.system.NetworkAdmin#restadmin"

composer card import -f  cards/restadmin.card
composer network ping -c restadmin@trade-network

2) 现在我通过 alice

创建另一个参与者 Jam
composer participant add -c alice@trade-network -d '{"$class":"org.example.trading.Trader","tradeId":"trader4", "RepfirstName":"Jam","ReplastName":"J"}'

composer identity issue -c alice@trade-network -f cards/jam.card -u jam -a "resource:org.cdc.MortalityCard.State#state4-ny"

composer card import -f cards/jam.card


composer card export -f cards/jam_exp.card -c jam@trade-network ; rm cards/jam.card

3) 现在可以用了,这太搞笑了,我不知道为什么它在以前的场景中不起作用。现在只有当身份设置为 Jam 时它才有效默认 。它不适用于 jdoe 或 dave

不知道为什么。建议 ?

不同之处在于场景 2,您已经导出带有凭据的卡片 (cert/key) - 在场景 1 中,他们正在尝试再次注册(因为您只有卡片中的秘密,未设置凭据)。

当身份由 Fabric 授权证书 (CA) 服务器颁发时,会创建一个一次性秘密(即创建的卡的一部分)。当卡第一次被 使用 (例如使用卡连接或 ping 业务网络)时,秘密被交换为 Certificates/Keys (凭证)然后是一个-时间秘密失效。对于场景 1,您需要将其导出(例如,通过带有 composer card export -c jdoe@ -f jdoe-plus-cert.card 的命令行),然后将新的 .card 文件导入 REST API 钱包(例如 /Import 端点),然后它也可以在 REST API 中为您工作。