Composer Rest Server多用户错误说明

时间:2018-08-16 13:02:05

标签: hyperledger blockchain hyperledger-composer

我正在尝试Composer rest服务器多用户模式-

这是我的设置:

  • 我有3个NetworkAdmin用户alice,bob和charles

  • 通过这些管理员,我向jdoe,dave发出了身份(对于爱丽丝 和bob)各自以其ACL作为参与者。

  • 所以 alice 是具有参与者/身份的管理员- jdoe

    鲍勃是具有参与者/身份的管理员-戴夫

    查尔斯是管理员。

  • 设置类似于Using two business cards in the same composer rest server configuration

->我为启用了多用户模式的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 ,我创建了一个同时也是NetworkAdmin的参与者“ restadmin

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

不知道为什么。建议?

1 个答案:

答案 0 :(得分:3)

区别在于方案2,您已导出带有凭据(证书/密钥)的卡-在方案1中,它们正在尝试重新注册(因为您仅在卡中拥有机密,未设置凭据) )。

当身份由结构授权证书(CA)服务器发布时,将创建一次机密(即所创建卡的一部分)。第一次使用该卡(例如,使用该卡连接或ping业务网络)时,该机密将交换为证书/密钥(凭证),然后一次性机密将失效。对于方案1,您需要将其导出(例如,通过带有作曲卡的命令行export -c jdoe @ -f jdoe-plus-cert.card),然后将该新的.card文件导入REST API钱包(例如/ Import)端点),它也将在REST API中为您工作。