2 JSON-RPC API

2.1 请求-响应模板

区块链节点对外提供 JSON-RPC 方式的服务。服务采用 Http 或 Https 的网络传输协议。JSON-RPC 的服务采用请求-响应的方式。请求报文中包含方法名和参数数组。响应报文中包含结果。根据请求的操作是否需要改变区块链账本数据,大体可以把请求-响应的模板分为两类。

第一类:无需改变账本数据,这类操作不会改变账本数据,无需节点间共识。如查询交易结果,生成账户密钥对等;

第二类:需要改变账本数据,这类操作可能会改变账本数据,执行的结果要等到节点间达成共识之后才能确定。如激活账户,创建通证等。

1. 无需改变账本数据的模板

请求:

{
    "method": "方法名",
    "params": [
        {
            "参数名": "参数值",
            "参数名": "参数值"
        }
    ]
}
字段名称 类型 描述
method string JSON-RPC API 的方法名
params array 参数数组

成功情况的响应:

{
    "result": {
        "status": "success",
        ...,
        ...
    }
}

错误情况的响应:

{
    "result": {
        "status": "error",
        ...,
        "error": "badSecret",
        "error_code": 40,
        "error_message": "Secret does not match account."
    }
}
字段名称 类型 描述
error string 响应错误原因,可参考响应错误代码
error_code int 响应错误代码
error_message string 响应错误信息
status string 响应状态,即JSON-RPC服务状态。success:表示正常。error:表示错误。

2. 需要改变账本数据的模板

请求:

{
    "method": "方法名",
    "params": [
        {
            "secret": "ss3ZBtHP********ryGE4Kuf",
            "tx_json":{...},
            "参数名": "参数值",
            "参数名": "参数值"
        }
    ]
}
字段名称 类型 描述
method string JSON-RPC API 的方法名
params array 参数数组

交易成功情况的响应:

{
    "result": {
        "status": "success",
        ...,
        "engine_result": "tesSUCCESS",
        "engine_result_code": 0,
        "engine_result_message": "The transaction was applied. Only final in a validated ledger.",
        "tx_blob": "1200002280000000240000000F614000000000000064684000000000002710732103......9EA7C06737472696E677D0474657374E1F1",
        "tx_json": {
            "Account": "hDg53Haik2475DJx8bjMDSDPj4VX7rtaMd",
            "Amount": "30000000",
            "Destination": "hnUy2SHThB9DubsPmkJZUXTf5FcNDGhYEA",
            "Fee": "10000",
            "Flags": 2147483648,
            "Sequence": 15,
            "SigningPubKey": "029A80E85C9EAFE4CF660724D4ECE4F2B619376524AF37A2E1172E81CC071B7D0C",
            "TransactionType": "Payment",
            "TxnSignature": "3045022100936B1065E93A8E727A967D2FFFB530402206FB684B1CEE49682B4F3F1E741C3D75CB9E189F8CFD764D56A0AB49261FDB05561F88A4DE3B1F893A90E0F8942322894F",
            "hash": "D6CC7C7790AFAE6E1C40BDD8F4264FE070DACD9EEEAFEFB3B6BCBEC57964354F"
        }

    }
}

交易失败情况的响应:

{
    "result": {
        "status": "success",
        ...,
        "engine_result": "tecUNFUNDED",
        "engine_result_code": 129,
        "engine_result_message": "The transaction was applied. Only final in a validated ledger.",
         ...,

    }
}
字段名称 类型 描述
engine_result string 交易执行结果,可参考交易结果代码
engine_result_code int 交易结果代码
engine_result_message string 交易结果信息
status string 响应状态,即JSON-RPC服务状态。success:表示正常。error:表示错误。
tx_blob string 交易要素,二进制数据格式
tx_json object 交易要素,json格式
Account string 源账号地址
Fee string 交易的gas费用,单位为Drops
Flags unsigned int 交易标志位,默认是 2147483648 = 0x80000000 ,表示需要完整的规范签名。
Sequence string 交易序号。每个账户拥有自己的sequence,从1开始,每次主动发起的交易,sequence自增1,不能重复使用。
SigningPubKey string 签名公钥
TransactionType string 交易类型,包括:Payment:转账;AccountSet:账号设置;TrustSet:授信;OfferCreate:创建挂单;OfferCancel:取消挂单等,详见JSON-PRC API接口
TxnSignature string 交易签名。对除TxnSignature字段外序列化后的交易要素,用源账户私钥进行签名的结果。
hash string 交易流水号
Destination string (可选)目标账号地址(有些交易没有目标账号地址)

results matching ""

    No results matching ""