向区块链网络发送交易, 交易通过节点验证并被成功写入账本后返回。
API 路径
POST /api/v1/networks/{network}/transactions/invoke
Url Path 参数 | 描述 |
---|---|
network | 通道名称 |
请求参数
URL Query
URL Query 参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
timeout | Integer | 否 | 等待交易完成的超时时间,单位秒,默认值 180。 |
content_check | String | 否 | 使用阿里云内容安全服务对数据进行合规检查,并根据检测结果拒绝该笔交易上链(review:拒绝疑似内容上链;block:拒绝违规文本上链);要拒绝多个结果时,使用逗号(,)分割,例如:”block, review”。默认值空,表示不检测。 |
Body
Content-Type: application/json
名称 | 类型 | 是否必选 | 描述 |
---|---|---|---|
chaincode | String | 是 | 调用的链码名称 |
args | List<String> | 否 | 调用链码的参数列表,当该参数不为空时,会忽略下列 function、byte_args 两个参数 |
function | String | 否 | 调用的链码函数名称 |
byte_args | List<String> | 否 | 经过Base64编码的链码调用参数(不含函数名) |
transient | Map<String, String> | 否 | 调用链码的隐私参数字典,Key 为参数名, Value 为参数值 |
byte_transient | Map<String, String> | 否 | 调用链码的隐私参数字典,Key 为参数名, Value 为经过Base64编码后的参数值(该参数会与 transient 合并,会覆盖 transient 中的 Key ) |
invoke_chain | List<ChaincodeCall> | 否 | 如果目标链码有跨链码调用时,必须填写此参数。提供跨链码调用的链码名及相应的隐私数据集(如果使用),以便使用Service Discovery和满足背书策略。 |
ChaincodeCall
名称 | 类型 | 是否必选 | 描述 |
---|---|---|---|
chaincode | String | 是 | 链码名称 |
collections | List<String> | 否 | 链码访问的隐私数据集的名称列表。 |
返回结果
名称 | 类型 | 描述 |
---|---|---|
Success | Boolean | 请求是否成功 |
Error | Error | - |
Result | Response | - |
Error
名称 | 类型 | 描述 |
---|---|---|
code | Integer | 错误码 |
message | String | 错误描述信息 |
request_id | String | 请求ID |
Response
名称 | 类型 | 描述 |
---|---|---|
id | String | 交易ID |
status | String | 链码返回的状态码 |
event | List<Event> | 交易所产生的区块链事件列表 |
data | String | 经过Base64编码的链码返回数据 |
Event
名称 | 类型 | 描述 |
---|---|---|
id | String | 事件ID,通道内唯一 |
name | String | 事件名称 |
type | EventType | 事件类型(“Tx”, “Config”, “Contract”, “Block”),对于发起上链交易的接口,返回的结果只包含 “Contract”类型事件(如有)。 |
content | String | 当 EventType 为 “Contract” 时,为经过Base64编码的智能合约事件内容(如有) |
示例
请求示例
curl -X POST "http://your.gateway.endpoint/api/v1/networks/channel3/transactions/invoke" -H "accept: application/json" -H "Authorization: Bearer <Your Access Token>" -H "Content-Type: application/json" -d "{\"chaincode\":\"sacc\",\"args\":[\"set\",\"provider\",\"aliyun\"],\"transients\":{\"key\":\"value\"}}"
正常返回示例
{
"Success": true,
"Result": {
"id": "1bdbc050691cdf7c03faca74ebfa5711b18fb8acc23cabbd16a1a692d00785a1",
"status": "200",
"events": [],
"data": "YWxpeXVu"
},
"Error": {
"code": 200,
"message": "Success",
"request_id": "5945a095-5730-4f63-9ef9-ddbcb2cda8c8"
}
}
错误码
请参考错误码