文档首页 > > API参考> API> 链代码调用功能

链代码调用功能

分享
更新时间: 2019/08/07 16:29

功能介绍

对已经部署并已经实例化的区块链链代码进行调用(invoke)和查询(query)。

URI

POST /v1/chaincode/operation

请求消息

表1 请求参数

参数

是否必选

参数类型

描述

channelId

String

区块链通道ID

chaincodeId

String

链代码ID

chaincodeVersion

String

链代码版本

userId

String

由组织CA签发的用户ID,目前区块链服务默认生成的都为User1

orgId

String

区块链组织ID

orgPeers

String

由组织中每个节点的组织ID和域名组成的数组,形如:

[{"orgId":"7258adda1803f4137eff4813e7aba323018200c5","peerDomainName":"peer-7258adda1803f4137eff4813e7aba323018200c5-0.peer-7258adda1803f4137eff4813e7aba323018200c5.default.svc.cluster.local"}]

opmethod

String

区块链链码调用类型,目前只有两类:invoke和query

args

String

链码调用参数,形如:["invoke","a","b","1"]

timestamp

String

格式为2018-10-31T17:28:16+08:00

cert

String

用户的证书文件,以字符串形式上传

说明:

为了保证只允许有权限的调用端才能够进行合法的链码调用,需要使用下载用户证书章节中下载的用户私钥以ECDSA椭圆曲线的加密方式对整个请求消息体的SHA256摘要进行加密签名,通过消息头部x-bcs-signature-sign进行传送。

响应消息

  • 当opmethod为invoke时,返回值是base64加密的transactionID。
  • 当opmethod为query时,返回值是base64加密的链代码的返回值。

示例

链代码调用invoke

  • 请求示例
    {
      "channelId": "testchannel",
      "chaincodeId": "zmmcode",
      "chaincodeVersion": "1.0",
      "userId": "User1",
      "orgId": "7258adda1803f4137eff4813e7aba323018200c5", 
      "orgPeers": "[{"orgId":"7258adda1803f4137eff4813e7aba323018200c5", "peerDomainName":"peer-7258adda1803f4137eff4813e7aba323018200c5-0.peer-7258adda1803f4137eff4813e7aba323018200c5.default.svc.cluster.local"}]",
      "opmethod": "invoke",
      "args": "[\"invoke\",\"a\",\"b\",\"1\"]",
      "timestamp": "2018-10-31T17:28:16+08:00",
      "cert": "-----BEGIN CERTIFICATE-----\nMIIDBzCCAq2gAwIBAgIQEXPZlMsReamxVtVNnKwCCzAKBggqhkjOPQQDAjCCAQQx\nDjAMBgNVBAYTBUNISU5BMRAwDgYDVQQIEwdCRUlKSU5HMRAwDgYDVQQHEwdCRUlK\nSU5HMXkwdwYDVQQKE3A3MjU4YWRkYTE4MDNmNDEzN2VmZjQ4MTNlN2FiYTMyMzAx\nODIwMGM1LnBlZXItNzI1OGFkZGExODAzZjQxMzdlZmY0ODEzZTdhYmEzMjMwMTgy\nMDBjNS5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsMVMwUQYDVQQDE0pjYS5wZWVy\nLTcyNThhZGRhMTgwM2Y0MTM3ZWZmNDgxM2U3YWJhMzIzMDE4MjAwYzUuZGVmYXVs\ndC5zdmMuY2x1c3Rlci5sb2NhbDAeFw0xODEwMzAwMjQ5MjZaFw0yODEwMjcwMjQ5\nMjZaMIG1MQ4wDAYDVQQGEwVDSElOQTEQMA4GA1UECBMHQkVJSklORzEQMA4GA1UE\nBxMHQkVJSklORzF/MH0GA1UEAwx2VXNlcjFANzI1OGFkZGExODAzZjQxMzdlZmY0\nODEzZTdhYmEzMjMwMTgyMDBjNS5wZWVyLTcyNThhZGRhMTgwM2Y0MTM3ZWZmNDgx\nM2U3YWJhMzIzMDE4MjAwYzUuZGVmYXVsdC5zdmMuY2x1c3Rlci5sb2NhbDBZMBMG\nByqGSM49AgEGCCqGSM49AwEHA0IABPMrzoJL/MHeSFPFOJWLqnJ0sqB0it7wDIOq\n+eTSvvPpGk1BIDmb2n13K5V04RO8xNezDQ7I6rW4LF2elq14eH+jTTBLMA4GA1Ud\nDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIFBXQ5TC4acFeTlT\nJuDZg62XkXCdnOfvbejSeKI2TXoIMAoGCCqGSM49BAMCA0gAMEUCIQCadHIKl0Mk\nYn0WZizyDZYR4rT2q0nzjFaiW+YfV5FBjAIgNalKUe3rIwXJvXORV4ZXurEua2Ag\nQmhcjRnVwPTjpTE=\n-----END CERTIFICATE-----\n"
    }
  • 响应示例
     After  invoke the count of a is 188  b is  262

状态码

请参见公共参数章节状态码页面。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区