trustsql_cli接口描述
该客户端演示了区块链云平台的接口访问过程,机构只需要根据接口命令行传参,程序可以完成包括签名、打包请求、发送HTTPS到CGI、返回Json打印;期间出现的所有错误、异常都以Json格式打印,解决用户对SDK调用难的问题,而开放的源码可以给用户进行参考并实现快速开发。
调用方式:./trustsql_cli <命令名称> <必选参数> [可选参数]
客户端名:trustsql_cli
命令名称:以t
开头的命令
返回结果:Json格式
类型说明:
Int:指整形数字
String:指字符串
JsonObject:指json对象,请参考www.json.org
JsonArray:指json数组,请参考www.json.org
SDK类基础命令
包括SDK中的接口命令。
生成公私钥对
命令:tGeneratePairkey [count]
参数说明
参数名 | 类型 | 说明 |
---|---|---|
必选参数 | ||
可选参数 | ||
count | Int | 生成数量,默认为1 |
返回:[{如下字段} , …]
参数名 | 类型 | 说明 |
---|---|---|
private_key | String | 私钥 |
public_key | String | 公钥 |
验证公私钥对
命令:tCheckPairkey <'["private_key","public_key" , ...]'>
参数说明
参数名 | 类型 | 说明 |
---|---|---|
必选参数 | ||
private_key | String | 私钥 |
public_key | String | 公钥 |
可选参数 |
返回:[{如下字段} , …]
参数名 | 类型 | 说明 |
---|---|---|
private_key | String | 私钥 |
public_key | String | 公钥 |
verify | Boolean | 是否匹配 |
通过私钥计算相应公钥
命令:tGeneratePubkeyByPrvkey <'["private_key" , ...]'>
参数说明
参数名 | 类型 | 说明 |
---|---|---|
必选参数 | ||
private_key | String | 私钥 |
可选参数 |
返回:[{如下字段} , …]
参数名 | 类型 | 说明 |
---|---|---|
private_key | String | 私钥 |
public_key | String | 公钥 |
通过公钥获取对应地址
命令:tGenerateAddrByPubkey <'["public_key" , ...]'>
参数说明
参数名 | 类型 | 说明 |
---|---|---|
必选参数 | ||
public_key | String | 公钥 |
可选参数 |
返回:[{如下字段} , …]
参数名 | 类型 | 说明 |
---|---|---|
public_key | String | 公钥 |
address | String | 地址 |
通过私钥获取对应地址
命令:tGenerateAddrByPrvkey <'["private_key" , ...]'>
参数说明
参数名 | 类型 | 说明 |
---|---|---|
必选参数 | ||
private_key | String | 私钥 |
可选参数 |
返回:[{如下字段} , …]
参数名 | 类型 | 说明 |
---|---|---|
private_key | String | 私钥 |
address | String | 地址 |
为字符串进行签名
命令:tSignString <'private_key'> <'text'>
参数说明
参数名 | 类型 | 说明 |
---|---|---|
必选参数 | ||
private_key | String | 私钥 |
text | String | 签名源串 |
可选参数 |
返回:[{如下字段} , …]
参数名 | 类型 | 说明 |
---|---|---|
private_key | String | 私钥 |
text | String | 签名源串 |
text_hex | String | 签名源串hex |
sign | String | 签名 |
验证签名有效性
命令:tVerifySign <'public_key'> <'text'> <'sign'>
参数说明
参数名 | 类型 | 说明 |
---|---|---|
必选参数 | ||
public_key | String | 公钥 |
text | String | 签名源串 |
sign | String | 签名 |
可选参数 |
返回:[{如下字段} , …]
参数名 | 类型 | 说明 |
---|---|---|
public_key | String | 公钥 |
text | String | 签名源串 |
text_hex | String | 签名源串hex |
sign | String | 签名 |
verify | Boolean | 是否有效 |
信息共享服务命令
包括信息共享服务接口命令。
追加共享信息
命令:tIssAppend <mch_id> <mch_private_key> <'[{"version","info_key","info_version","state","content","notes","commit_time","private_key"} , ...]'>[--domain ""] [--proxy ""][--verbose]
参数说明
参数名 | 类型 | 说明 |
---|---|---|
必选参数 | ||
mch_id | String | 通讯方的id(通过管理页面获取) |
mch_private_key | String | 通讯方的私钥 |
version | String | 版本号,填1.0 |
info_key | String | 信息的唯一识别号。一个info_key内包含一系列不同版本号的记录,与info_version共同确定唯一一条记录。 |
info_version | Int | 信息的版本号。当信息新增时必须为1;当信息追加记录时版本号为上一条记录的版本号加1。防止多客户端同时更新信息时,内容相互覆盖;发生冲突时,后处理者会返回失败。 |
state | Int | 由业务自行定义。 |
content | JsonObject | 由业务自行定义,长度限制4k字节。采用标准的双引号而非单引号来封装key和value,请求参数中不能转义双引号。格式:{"xxx":"xxx", …} |
notes | JsonObject | 由业务自行定义,长度限制4k字节。采用标准的双引号而非单引号来封装key和value,请求参数中不能转义双引号。格式:{"xxx":"xxx", …} |
commit_time | String | 由业务自行定义。格式:YYYY-MM-DD HH:mm:SS |
private_key | String | 记录方的私钥 |
可选参数 | ||
--domain | String | 主站域名,默认为:open.trustsql.qq.com。 |
--proxy | String | HTTP代理,默认为空。 |
--verbose | Null | 显示详细调试信息。 |
返回:[{如下字段} , …]
参数名 | 类型 | 说明 |
---|---|---|
retcode | Int | 返回状态码,0表示成功,其它为失败。 |
retmsg | String | 返回信息,如非空,为错误原因。 |
version | String | 版本号 |
sign_type | String | 签名算法类型,本版本固定为“ECDSA” |
mch_id | String | 服务方的id |
mch_sign | String | 服务方签名结果 |
mch_sign_verify | Boolean | 服务方签名是否有效 |
info_key | String | 同信息录入接口 |
info_version | Int | 同信息录入接口 |
state | Int | 同信息录入接口 |
content | JsonObject | 同信息录入接口 |
notes | JsonObject | 同信息录入接口 |
commit_time | String | 同信息录入接口 |
address | String | 同信息录入接口 |
public_key | String | 同信息录入接口 |
sign | String | 同信息录入接口 |
sign_verify | Boolean | 记录签名是否有效 |
t_hash | String | 可选字段,可能为空 |
b_height | Int | 可选字段,可能为空 |
b_prev_hash | String | 可选字段,可能为空 |
b_hash | String | 可选字段,可能为空 |
b_time | String | 可选字段,可能为空 |
共享信息查询
命令:tIssQuery <mch_id> <mch_private_key> <'[{"version","info_key","info_version","state","content","notes","range","address","t_hash","page_no","page_limit","timestamp"} , ...]'> [--domain ""] [--proxy ""] [--verbose]
参数说明
参数名 | 类型 | 说明 |
---|---|---|
必选参数 | ||
mch_id | String | 通讯方的id(通过管理页面获取) |
mch_private_key | String | 通讯方的私钥 |
version | String | 版本号,填1.0 |
info_key | String | 信息的唯一识别号。一个info_key内包含一系列不同版本号的记录,与info_version共同确定唯一一条记录。 |
info_version | Int | 信息的版本号。当信息新增时必须为1;当信息追加记录时版本号为上一条记录的版本号加1。防止多客户端同时更新信息时,内容相互覆盖;发生冲突时,后处理者会返回失败。 |
state | Int | 由业务自行定义。 |
content | JsonObject | 由业务自行定义,长度限制4k字节。采用标准的双引号而非单引号来封装key和value,请求参数中不能转义双引号。格式:{"xxx":"xxx", …} |
notes | JsonObject | 由业务自行定义,长度限制4k字节。采用标准的双引号而非单引号来封装key和value,请求参数中不能转义双引号。格式:{"xxx":"xxx", …} |
range | JsonObject | 作为查询条件,范围查询条件 |
address | String | 查询符合此记录方地址的记录 |
t_hash | String | 查询符合此记录哈希的记录 |
page_no | Int | 第几页,默认1 |
page_limit | Int | 分页显示时每页显示多少条,默认10 |
可选参数 | ||
--domain | String | 主站域名,默认为:open.trustsql.qq.com。 |
--proxy | String | HTTP代理,默认为空。 |
--verbose | Null | 显示详细调试信息。 |
Range范围查询条件(json)
参数名 | 类型 | 说明 |
---|---|---|
b_height | JsonObject | 条件范围,区块高度范围 |
commit_time | JsonObject | 条件范围,commit_time时间范围 |
条件范围(json)
参数名 | 类型 | 说明 |
---|---|---|
from | String | 作为查询条件,查询这个条件之后的信息记录(>=) |
to | String | 作为查询条件,查询这个条件之前的信息记录(<=) |
返回:[{如下字段} , …]
参数名 | 类型 | 说明 |
---|---|---|
retcode | Int | 返回状态码,0表示成功,其它为失败。 |
retmsg | String | 返回信息,如非空,为错误原因。 |
version | String | 版本号 |
sign_type | String | 签名算法类型,本版本固定为“ECDSA” |
mch_id | String | 服务方的id |
mch_sign | String | 服务方签名结果 |
mch_sign_verify | Boolean | 服务方签名是否有效 |
total_infos | Int | 符合条件的记录总条数 |
infos | JsonArray | 本次查询出的记录列表json数组 |
记录列表(json数组)
参数名 | 类型 | 说明 |
---|---|---|
info_key | String | 同信息录入接口 |
info_version | Int | 同信息录入接口 |
state | Int | 同信息录入接口 |
content | JsonObject | 同信息录入接口 |
notes | JsonObject | 同信息录入接口 |
commit_time | String | 同信息录入接口 |
address | String | 同信息录入接口 |
public_key | String | 同信息录入接口 |
sign | String | 同信息录入接口 |
t_hash | String | 记录哈希 |
b_height | Int | 区块高度 |
b_prev_hash | String | 前块哈希 |
b_hash | String | 本块哈希 |
b_time | String | 区块时间 |