Ibm cloud 使用API将链码(智能合约)发布到hyperledger结构的问题

Ibm cloud 使用API将链码(智能合约)发布到hyperledger结构的问题,ibm-cloud,hyperledger,hyperledger-fabric,Ibm Cloud,Hyperledger,Hyperledger Fabric,我已经在Bluemix上部署了hyperledger fabric服务,并从那里获得了凭据,其中一行如下所示: {"enrollId":"user_type1_0","enrollSecret":"XXXXX","group":"group1","affiliation":"0001","username":"user_type1_0","secret":"XXXXX"} 我将以下内容发布到“注册器”REST端点: 机密:{“enrollId”:“用户类型1\u 0”,“enrollSe

我已经在Bluemix上部署了hyperledger fabric服务,并从那里获得了凭据,其中一行如下所示:

   {"enrollId":"user_type1_0","enrollSecret":"XXXXX","group":"group1","affiliation":"0001","username":"user_type1_0","secret":"XXXXX"}
我将以下内容发布到“注册器”REST端点:

机密:{“enrollId”:“用户类型1\u 0”,“enrollSecret”:“xxxxx”}

我得到的答复是:

{“确定”:“用户'user_type1_0'登录成功”。}

然后,我尝试通过将以下内容发布到chaincode REST端点来注册一些chaincode:

QuerySpec{ “jsonrpc”:“2.0”, “方法”:“部署”, “参数”:{ “类型”:1, “链码ID”:{ “路径”:” }, “msg”:{ “函数”:“初始化”, “args”:[ “你好” ] }, “secureContext”:“用户类型1\u 0\uxxxxx” }, “id”:1}

我得到的答复是:

{“jsonrpc”:“2.0”,“错误”:{ “代码”:-32000, “消息”:“注册丢失”, “数据”:“用户未登录。请使用“/register”端点获取安全令牌。”},“id”:1}


有什么想法吗?

Fabric希望您提供EnrolmentID作为安全上下文,但您正在尝试使用“ID+Pass”

是否可以尝试使用另一个SecurityContext值运行部署命令


QuerySpec{“jsonrpc”:“2.0”,“方法”:“部署”,“参数”:{“类型”:1,“链码ID”:{“路径”:”https://github.com/ibm-blockchain/learn-chaincode/finished},“ctorMsg”:{“函数”:“init”,“args”:[“hi there”]},“secureContext”:“user_type1_0”},“id”:1}

您好,它可以工作-但我不明白-我不再提供任何机密,那么这个REST调用如何安全?机密仅用于“注册器”操作一次,以便生成ECert。然后,此证书将用于将所有交易签名到网络。SecurityContext是区分不同用户和选择适当证书所必需的。这种方法简化了Fabric的第一步,您可以使用NodeJSDK完全控制ECert。