【问题标题】:Problems to POST chaincode (smart contract) to hyperledger-fabric using API使用 API 将链码(智能合约)发布到超级账本结构的问题
【发布时间】:2016-10-21 14:40:02
【问题描述】:

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

   {"enrollId":"user_type1_0","enrollSecret":"XXXXX","group":"group1","affiliation":"0001","username":"user_type1_0","secret":"XXXXX"}

我将以下内容发布到“注册商”REST 端点:

秘密:{“enrollId”:“user_type1_0”,“enrollSecret”:“xxxxx”}

我收到此回复:

{ "OK": "用户 'user_type1_0' 登录成功。" }

然后我尝试使用将以下内容发布到链码 REST 端点来注册一些链码:

查询规范 { "jsonrpc": "2.0", “方法”:“部署”, “参数”:{ “类型”:1, “链码ID”:{ "路径": "https://github.com/ibm-blockchain/learn-chaincode/finished" }, “ctorMsg”:{ “功能”:“初始化”, “参数”:[ “你好呀” ] }, “secureContext”:“user_type1_0_xxxxx” }, “id”:1 }

我收到了这个回复:

{ “jsonrpc”:“2.0”,“错误”:{ “代码”:-32000, "message": "注册丢失", "data": "用户未登录。使用 '/registrar' 端点获取安全令牌。" }, "id": 1 }

有什么想法吗?

【问题讨论】:

    标签: ibm-cloud hyperledger hyperledger-fabric


    【解决方案1】:

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

    您可以尝试使用另一个 SecurityContext 值运行您的部署命令吗?

    QuerySpec { "jsonrpc": "2.0", "method": "deploy", "params": { "type": 1, "chaincodeID": { "path": "https://github.com/ibm-blockchain/learn-chaincode/finished" }, "ctorMsg": { "function": "init", "args": [ "hi there" ] }, "secureContext": "user_type1_0" }, "id": 1 }

    【讨论】:

    • 嗨,它可以工作 - 但我不明白 - 我不再提供任何秘密,那么这个 REST 调用如何安全?
    • Secret 仅用于“registrar”操作一次以生成 ECert。然后,该证书将用于签署您对网络的所有交易。 SecurityContext 是区分不同用户并选择合适的证书所必需的。这种方法简化了使用 Fabric 的第一步,您可以使用 NodeJS SDK 来完全控制 ECert。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多