阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

在IBM Bluemix上部署Hyperledger应用

139次阅读
没有评论

共计 4966 个字符,预计需要花费 13 分钟才能阅读完成。

简介

IBM Bluemix (http://www.ibm.com/bluemix‎)是一个基于 cloud 的应用开发和部署平台,提供包括多种服务和运行环境的支持。对 Hyperledger 应用开发者而言,IBM Bluemix 提供免费的入门级区块运行环境。本文介绍了在 IBM Bluemix 上部署 Hyperledger 应用的基本过程。

第一步:在 Bluemix 中选择区块服务

登录 Bluemix 后,在 Catalog 页面中选择 Application Services 下的 Blochain 服务。

在 IBM Bluemix 上部署 Hyperledger 应用

确认区块服务的名称,然后点击 Create 按钮以创建区块服务。

在 IBM Bluemix 上部署 Hyperledger 应用

在新建的区块服务页面上点击 LAUNCH 按钮以启动区块服务,并显示其具体信息。

在 IBM Bluemix 上部署 Hyperledger 应用

在 IBM Bluemix 上部署 Hyperledger 应用

第二步:在 Bluemix 区块服务中注册用户

首先在区块服务页面中选择 APIs,然后展开 Network's Enroll IDs 列表以获取预置的用户名和密码列表。

在 IBM Bluemix 上部署 Hyperledger 应用

然后向选定的区块节点发送如下请求以注册用户

    POST https://e1bb641577f249a88acca04da0272249-vp3.us.blockchain.ibm.com:444/registrar
    Content-Type: application/json

    {"enrollId": "admin",
        "enrollSecret": "19725f3d88"
    }

注册成功的响应为

  {"OK": "Login successful for user'admin'."
  }    

第三步:在 Bluemix 区块服务中发布应用代码,前提是应用的 GoLang 代码必须在 github.com 上。

    POST https://e1bb641577f249a88acca04da0272249-vp3.us.blockchain.ibm.com:444/chaincode
    Content-Type: application/json

    {"jsonrpc": "2.0",
        "method": "deploy",
        "params": {"type": 1,
            "chaincodeID": {"path": "https://github.com/huyouhengbc/Hyperledger/HelloWorld"
            },
            "ctorMsg": {"function": "init",
                "args": []},
            "secureContext": "admin"
        },
        "id": 1
    }

发布成功的响应为

    {"jsonrpc": "2.0",
        "result": {"status": "OK",
            "message": "e2623e76371a16ca86d97bfb90bdab95885939bf4f2fa40133d65bca4aace27eaf94d8cd10438b80de097442916f6bfef87fb45a6cd678e3cb6ec0bd8dd008c2"
        },
        "id": 1
    }

第四步:测试应用代码,

Query 请求

    POST https://e1bb641577f249a88acca04da0272249-vp3.us.blockchain.ibm.com:444/chaincode
    Content-Type: application/json
    {"jsonrpc": "2.0",
        "method": "query",
        "params": {"type": 1,
            "chaincodeID": {"name": "e2623e76371a16ca86d97bfb90bdab95885939bf4f2fa40133d65bca4aace27eaf94d8cd10438b80de097442916f6bfef87fb45a6cd678e3cb6ec0bd8dd008c2"
            },
            "ctorMsg": {"function": "hello",
                "args": []},
            "secureContext": "admin"
        },
        "id": 3
    }

Query 响应

    200 OK
    access-control-allow-headers:  accept, content-type
    Access-Control-Allow-Origin:  *
    Content-Type:  application/json
    Date:  Sun, 30 Oct 2016 05:13:58 GMT
    Content-Length:  73
    Server:  nghttpx nghttp2/1.14.0-DEV
    Via:  1.1 nghttpx
    X-Firefox-Spdy:  h2

    {"jsonrpc":"2.0","result":{"status":"OK","message":"Hello World"},"id":3}

Invoke 请求

    POST https://e1bb641577f249a88acca04da0272249-vp3.us.blockchain.ibm.com:444/chaincode
    Content-Type: application/json
    {"jsonrpc": "2.0",
        "method": "invoke",
        "params": {"type": 1,
            "chaincodeID": {"name": "e2623e76371a16ca86d97bfb90bdab95885939bf4f2fa40133d65bca4aace27eaf94d8cd10438b80de097442916f6bfef87fb45a6cd678e3cb6ec0bd8dd008c2"
            },
            "ctorMsg": {"function": "hello",
                "args": []},
            "secureContext": "admin"
        },
        "id": 3
    }

Invoke 响应

    200 OK
    access-control-allow-headers:  accept, content-type
    Access-Control-Allow-Origin:  *
    Content-Type:  application/json
    Date:  Sun, 30 Oct 2016 05:13:22 GMT
    Content-Length:  98
    Server:  nghttpx nghttp2/1.14.0-DEV
    Via:  1.1 nghttpx
    X-Firefox-Spdy:  h2

    {"jsonrpc":"2.0","result":{"status":"OK","message":"d74495ff-f3d3-44ba-acc6-5fbc767bbf21"},"id":3}

后记

  • 发布应用代码中的 path 指向的是 GoLang 代码所在的目录,而不是 GoLang 源码文件,错误响应如下:
    POST  https://e1bb641577f249a88acca04da0272249-vp0.us.blockchain.ibm.com:444/chaincode
    Content-Type: application/json
        {"jsonrpc": "2.0",
            "method": "deploy",
            "params": {"type": 1,
                "chaincodeID": {"path": "https://github.com/huyouhengbc/Hyperledger/blob/master/HelloWorld/HelloWorld.go"
                },
                "ctorMsg": {"function": "init",
                    "args": []},
                "secureContext": "user_type8_0"
            },
            "id": 1
        }
    -- response --
    200 OK
    access-control-allow-headers:  accept, content-type
    Access-Control-Allow-Origin:  *
    Content-Type:  application/json
    Date:  Sun, 30 Oct 2016 04:00:14 GMT
    Content-Length:  721
    Server:  nghttpx nghttp2/1.14.0-DEV
    Via:  1.1 nghttpx
    X-Firefox-Spdy:  h2

    {"jsonrpc":"2.0","error":{"code":-32001,"message":"Deployment failure","data":"Error when deploying chaincode: Error getting chaincode package bytes: Error getting code'go get'failed with error:'exit status 1'\npackage github.com/huyouhengbc/Hyperledger/blob/master/HelloWorld/HelloWorld.go: cannot find package'github.com/huyouhengbc/Hyperledger/blob/master/HelloWorld/HelloWorld.go'in any of:\n\t/usr/local/go/src/github.com/huyouhengbc/Hyperledger/blob/master/HelloWorld/HelloWorld.go (from $GOROOT)\n\t/go/_usercode_/234208637/src/github.com/huyouhengbc/Hyperledger/blob/master/HelloWorld/HelloWorld.go (from $GOPATH)\n\t/go/src/github.com/huyouhengbc/Hyperledger/blob/master/HelloWorld/HelloWorld.go\n"},"id":1}
  • Bluemix 提供基于基于 Hyperledger Fabric v0.5 的服务,如果使用最新的 Hyperledger Fabric 接口, 发布应用时错误响应如下:
    {"jsonrpc": "2.0",
        "error": {"code": -32001,
            "message": "Deployment failure",
            "data": "Error when deploying chaincode: Error getting chaincode package bytes: Error getting code'go get'failed with error:'exit status 2'\n# github.com/huyouhengbc/Hyperledger/HelloWorld\n/go/_usercode_/730749822/src/github.com/huyouhengbc/Hyperledger/HelloWorld/HelloWorld.go:15: undefined: shim.ChaincodeStubInterface\n/go/_usercode_/730749822/src/github.com/huyouhengbc/Hyperledger/HelloWorld/HelloWorld.go:21: undefined: shim.ChaincodeStubInterface\n/go/_usercode_/730749822/src/github.com/huyouhengbc/Hyperledger/HelloWorld/HelloWorld.go:27: undefined: shim.ChaincodeStubInterface\n"
        },
        "id": 1
    }
  • 发布应用报错
    {"jsonrpc": "2.0",
        "error": {"code": -32001,
            "message": "Deployment failure",
            "data": "Error when deploying chaincode: Failed loading TCerts from TCA"
        },
        "id": 1
    }

解决方法:在 Demo Chaincoded下发布示例应用,选择 Show API details 输出中使用的节点。

总结

本文介绍了在 IBM Bluemix 上部署 Hyperledger 应用的基本过程。

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-10/136575.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计4966字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中