3 底层链业务接入

骨干节点下属子链接入时,需要骨干节点将子链申请信息同步至主链,由超级节点对其子链签发AC号,以获取子链接入星火·链网的许可权限。提报的子链、节点、用户信息需要变更时需要重新提报申请,由主链审核或备案。

3.1 申请子链

接口说明:

请确认在调用该接口前,您已在星火·链网主链业务管理平台申请成为骨干节点,获得调用该接口权限。

接口功能:

通过该接口,骨干节点可以为新加入的子链申请AC号,并由超级节点审核并为该子链签发。AC号是由四位小写字母和数字组成,代表子链在星火·链网中代表其合法身份的唯一代码,用于子链身份识别及全网寻址功能。主链无AC号。

调用流程:

申请子链需要两步操作,(1)通过主链获取申请子链blob,用于将审批过程上链;(2)使用骨干节点私钥blob进行签名,并提交上链。

3.1.1 获取申请子链blob

接口说明:

提交申请子链的材料,获取申请子链的blob数据(blob是星火·链网上交易结构序列化后的十六进制格式),用于执行申请信息上链。

请求参数:

字段名 类型 是否必填 描述
backboneNodeBid String(64) 骨干节点主链bid
chainInfo Object 链基本信息
chainInfo.industry String(4) 链的行业(见第10节行业类型)
chainInfo.name String(30) 链名称
chainInfo.subChainType String 链类型。0是子链,1是骨干链
chainInfo.chainArch String(10) 链架构 10000:BIF-CORE、10001:Fabric、10002:Ethereum、 10003:BubiChain、10004:Quorum、10005:Xuperchain、10006:cita 、 10007:FISCO、10008:其他
chainInfo.genesisAccount String(64) 创世账户
chainInfo.genesisAmount String(30) 创世账户Token总数(区块链底层最小单位、根据精度来计算 比如 精度是2,Token总数是真实1亿,需要在1亿的基础上乘以100)
chainInfo.unit String (32) Token单位
chainInfo.precision String(30) Token精度
chainInfo.baseReserve String(30) 账户Token保留数(区块链底层最小单位、根据精度来计算 比如 精度是2,账户保留token是真实1,需要在1的基础上乘以100,填100)
chainInfo.feeGasPrice String(30) 最低Gas单价
chainInfo.rewardInitValue String(30) 出块奖励(区块链底层最小单位、根据精度来计算 比如 精度是2,出块奖励是真实8,需要在8的基础上乘以100 填800)
chainInfo.genesisSlogan String(1024) 区块链slogan
chainInfo.description String(1024) 区块链介绍
chainInfo.gatewayNodeList Array 数据网关列表(需要填写主链的BID)
chainInfo.gatewayCrossList Array 跨链网关列表(需要填写主链的BID。建议数据网关和跨链网关使用不同的BID账号,否则开发者在多个服务中并发交易时,可能出现交易上链失败问题)
chainInfo.remark String(1024) 申请备注
system Object 链系统信息
system.visitUrl String(255) 子链访问地址
system.publicStatus String(2) 开放许可,0 许可, 1开放
system.ACSN String(4) 链AC号(不能超过4位 格式小写字母或数字组合)。此处填写的是意向AC号,最终由超级节点签发的为准。
resolveServiceList Object 解析服务对象列表
resolveServiceList.ipv4[i].ip String(64) IPv4地址
resolveServiceList.ipv4[i].port String(5) 服务端口
resolveServiceList.ipv4[i].remark String(128) 备注信息
resolveServiceList.ipv6[i].ip String(64) IPv6地址
resolveServiceList.ipv6[i].port String(5) 服务端口
resolveServiceList.ipv6[i].remark String(128) 备注信息
resolveServiceList.url[i].address String(255) URL地址,HTTP,HTTPS开始,不支持IP,以"/"为结尾
resolveServiceList.url[i].remark String(128) 备注信息
contacts Object 联系人信息
contacts.name String(20) 联系人名称
contacts.phoneNum String(12) 联系电话
contacts.mail String(30) 联系人邮箱

返回数据:

字段名 类型 描述
blobId String blobId
txHash String 链上交易hash
blob String blob串

示例:

(1)请求示例:

http请求方式:POST
https://{url}/v1/chain/apply/blob
{
  "accessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcGlLZXkiOiJDcHB0NHRuMFlFZkIyMHJXIiwiaXNzIjoiQklGLUNIQUlOIiwiZXhwIjoxNjE5MjU2OTEwLCJiaWQiOiJkaWQ6YmlkOmVmaXV5cXVHV1R2UkVzWTltclZvS1ZoRmU1Wkp4WmRSIn0.0nUb20tqYIhcD-cS_a6YCGFM9AwZDyB7x_MFeIQv_Pc",
  "params": {
    "backboneNodeBid":"did:bid:ef28pM9MG3TGXGyWAW4JpWCFsJDd5MBnc",
    "chainInfo":{
      "subChainType": "0",
      "chainArch": "10000",
      "industry": "A",
      "name": "openapi测试链",
      "genesisAmount": "123",
      "genesisAccount": "did:bid:2hTooMvcA4Xr7aAnFH7gT2Z5o67XER7",
      "unit": "unit",
      "precision": "1",
      "baseReserve": "100",
      "feeGasPrice": "1000",
      "rewardInitValue": "10000",
      "genesisSlogan": "genesisSlogan",
      "description": "description",
      "gatewayNodeList":["did:bid:ef248yRNC7XjBepsy631wV42q8RW96nX", "did:bid:efixsfN3agXnM8JVWa7Hh9PmAi3EuirM"],
      "gatewayCrossList":[""did:bid:ef448yRNC7XjBepsy631wV42q8RW96nX", "did:bid:efixsfN7agXnM8JVWa7Hh9PmAi3EuirM""],
      "remark": "remark"
    },
    "system":{
      "visitUrl": "http://www.baidu.com",
      "ACSN": "t700",
      "publicStatus": "0"
    },
    "resolveServiceList":{
      "ipv4": [{
        "ip": "192.168.1.1",
        "port": "18122",
        "remark": "4444"
      },
        {
          "ip": "192.168.2.2",
          "port": "18122",
          "remark": "55555"
        }
      ],
      "ipv6": [{
        "ip": "1111:0410:0000:1234:FB00:1400:5000:45FF",
        "port": "18122",
        "remark": "aaa"
      },
        {
          "ip": "2222:0410:0000:1234:FB00:1400:5000:45FF",
          "port": "18122",
          "remark": "bbb"
        }
      ],
      "url": [{
        "address": "",
        "remark": ""
      }]
    }
  }
}

(2)返回结果示例:

a. 接口调用成功,则返回JSON数据示例为:

{
 "data":{
  "blobId": "2",
  "txHash": "985ac10a6cda2f4b6c910f11bffed35fa504e53125c045d1fbbade6b335da50",
 "blob":"A296469643A6269643A6652665770673644675A6B3232346F7A5570644343654C5A6231394635705238511001225A080712296469643A6269643A666D6E7A42315A724156375966727933665759795071646B6A57776F7458635258622B0A296469643A6269643A6841706E5959474C4550614678467A35543946383374485A6242474338483776513080DAC40938E807"
 }, 
 "errorCode": 0,
 "message": "操作成功"
}

b. 接口调用失败,则返回JSON数据示例为:

{
    "errorCode": 940000,
    "message": "系统内部错误"
}

3.1.2 申请子链提交交易(上链)

接口说明:

对blob数据进行签名(参考 签名算法 章节),并提交至主链执行上链操作;上链完成后由超级节点对申请信息进行审核,并为子链签发AC号。

请求参数:

用于将申请子链流程提交至主链并上链存储,请示参数由3.1.1接口中获取,参数如下:

字段名 类型 是否必填 描述
blobId String(19) blobID
signerList List 签名者列表(骨干节点签名)
signerList.signBlob String(128) 签名串(骨干节点对blob进行签名)
signerList.publicKey String(128) 签名者公钥(骨干节点公钥)

返回数据:

(1)成功:

返回的交易哈希,可通过3.2接口查询子链申请详情。

字段名 类型 描述
txHash String 链上交易hash
errorCode int 0
message String 成功

(2)失败:

说明调用接口失败,请参考错误码执行下一步操作。

字段名 类型 描述
errorcode int 错误码,如940000
message String 错误信息,如系统内部错误

示例:

(1)提交获取到的申请子链blob数据,示例如下:

http请求方式:POST
https://{url}/v1/chain/apply/submit
{
  "accessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcGlLZXkiOiJDcHB0NHRuMFlFZkIyMHJXIiwiaXNzIjoiQklGLUNIQUlOIiwiZXhwIjoxNjE5MjU2OTEwLCJiaWQiOiJkaWQ6YmlkOmVmaXV5cXVHV1R2UkVzWTltclZvS1ZoRmU1Wkp4WmRSIn0.0nUb20tqYIhcD-cS_a6YCGFM9AwZDyB7x_MFeIQv_Pc",
  "params": {
    "blobId": "144",
    "blob":"",
    "signerList": [{
      "signBlob": "5DFE2A2136B49321DDB7F5E83B23B27BE3E05FBCE8240782EE75BF592D53C7EEFEDF1D7CCA33FC8FE972E94FA67E3D083E58DFCC81E4DF78DC3B910341413701",
      "publicKey": "b065660ae694d678de4d648e04f4b86247fae59cef3590da8370664a520d9aaaaf1de3"
    }]
  }
}

(2)返回结果示例:

a. 成功:

接口调用成功,则返回JSON数据示例如下:

{
  "data":{
        "txHash": "985ac10a6cda2f4b6c910f11bffed35fa504e53125c045d1fbbade6b335da50"
  }, 
  "errorCode": "0",
  "message": "操作成功"
}

b. 接口调用失败,则返回JSON数据示例为:

{
    "errorCode": 940000,
    "message": "系统内部错误"
}

3.2 查询子链申请状态

接口说明:

骨干节点可通过该接口查询子链申请状态,用于子链申请进度跟踪。

请求参数:

将在3.1.2中申请子链时返回的交易哈希通过接口进行查询,参数信息如下:

字段名 类型 是否必填 描述
txHash String(64) 链上交易hash

返回数据:

(1)成功:

接口将结果返回给骨干节点,返回数据见下表:

字段名 类型 描述
ACSN String AC号
status String 状态(0待审核,1审核通过,2审核不通过)
errorCode int 0
message String 成功

(2)失败:

说明调用接口失败,请参考错误码执行下一步操作。

字段名 类型 描述
errorCode int 940000
message String 失败

示例:

(1)骨干节点可通过该接口查询子链申请状态,示例如下:

http请求方式:POST
https://{url}/v1/chain/apply/status
{
"accessToken":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcGlLZXkiOiJhdkNmcDdscU16SDVtTk5kIiwiaXNzIjoiQklGLUNIQUlOIiwiZXhwIjoxNjExNzQ0NjIwLCJiaWQiOiJkaWQ6YmlkOmVmejNvVFFHN0xZZktKRWlDeU1nNThOOVREZjl2cFd5In0.sCm7gaWX_nmIasUyo64tn5FeAqDaxxDn2Kb9Jixk2YI",
  "params":{    
    "txHash": "985ac10a6cda2f4b6c910f11bffed35fa504e53125c045d1fbbade6b335da50"
  }
}

(2)返回结果示例:

a. 成功:

接口调用成功,则返回JSON数据示例如下:

{
  "data":{
    "ACSN":"by01",
    "status":"1"
  }, 
        "errorCode": 0,
    "message": "操作成功"
}

b. 接口调用失败,则返回JSON数据示例为:

{
    "errorCode": 940000,
    "message": "系统内部错误"
}

3.3查询链信息

接口说明:

骨干节点通过该接口可查询其申请子链的信息,便于骨干节点对其子链信息查询和校验。

请求参数:

通过向接口请求子链AC号,获取该子链信息;若不填写具体AC号,则获取该骨干节点下属所有子链信息。

字段名 类型 是否必填 描述
ACSN String(4) AC号

返回数据:

(1)成功:

接口调用成功,将结果返回给骨干节点,返回数据见下表:

字段名 类型 描述
chainList List 链列表
ACSN String 链AC号
name String 链名称
chainType String 链类型 0是子链,1是骨干链
chainArch String 链架构 10000:BIF-CORE、10001:Fabric、10002:Ethereum、 10003:BubiChain、10004:Quorum、10005:Xuperchain、10006:cita 、 10007:FISCO、10008:其他
createTime Long 链创建时间(时间戳 毫秒)
industryType String 行业类型
genesisBid String 创世账户BID
genesisInitValue Long 创世账户初始化积分数
baseReserve Long 账户最小积分保留数
gasPrice Long 最小积分单价
firstReward Long 首次出块奖励数
introduce String 区块链介绍
version String 区块链版本号
backboneNodeBid String 骨干节点地址

(2)失败:

调用接口失败,返回失败信息。请参考错误码执行下一步操作。

字段名 类型 描述
errorCode int 错误码
message String 接口调用失败信息

示例:

(1)数据骨干节点通过该接口可查询其所申请子链的信息,接口示例如下:

http请求方式:POST
https://{url}/v1/chain/list
{
  "accessToken":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcGlLZXkiOiJhdkNmcDdscU16SDVtTk5kIiwiaXNzIjoiQklGLUNIQUlOIiwiZXhwIjoxNjExNzQ0NjIwLCJiaWQiOiJkaWQ6YmlkOmVmejNvVFFHN0xZZktKRWlDeU1nNThOOVREZjl2cFd5In0.sCm7gaWX_nmIasUyo64tn5FeAqDaxxDn2Kb9Jixk2YI",
  "params":{
 		"ACSN":"by01"
  }
}

(2)返回结果示例:

a. 接口调用成功,则返回JSON数据示例如下:

{
  "errorCode": 0,
  "message": "操作成功",
  "data": {
    "chainList": [
      {
        "ACSN": "by01",
        "name": "营口子链",
        "chainType": "0",
        "createTime": 1606457957000,
        "industryType": "B",
        "genesisBid": "",
        "genesisInitValue": null,
        "baseReserve": "100000000",
        "gasPrice": "1",
        "firstReward": "100000000",
        "introduce": "descirbe-营口子链",
        "version": "V1.0.0",
        "chainArch": "10000",
        "backboneNodeBid": "did:bid:ef28pM9MG3TGXGyWAW4JpWCFsJDd5MBnc"
      }
    ]
  }
}

b. 接口调用失败,则返回JSON数据示例为:

{
    "errorCode": 940033,
    "message": "链码不存在"
}

3.4用户备案

接口说明:

通过该接口,将骨干节点用户及其下属子链用户信息同步到主链,用于超级节点备案管理。

请求参数:

字段名 类型 是否必填 描述
bid String(64) 子链数字身份bid
ACSN String(4) 所属AC号
userType String(4) 101人 102企业
userName String(100) 用户名
userPublicKey String(100) 用户公钥
registerTime Long 注册时间(时间戳 单位毫秒)
linkPhone String 联系电话

返回数据:

(1)成功:

用户信息备案成功,返回成功信息:

字段名 类型 描述
errorCode int 0
message String 成功

(2)失败:

用户信息备案失败,返回失败信息。请参考错误码执行下一步操作。

字段名 类型 描述
errorCode int 940000
message String 失败

示例:

(1)用户信息同步至主链,示例如下:

http请求方式:POST
https://{url}/v1/chain/user/record
{
  "accessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcGlLZXkiOiJDcHB0NHRuMFlFZkIyMHJXIiwiaXNzIjoiQklGLUNIQUlOIiwiZXhwIjoxNjE5MjY0OTI4LCJiaWQiOiJkaWQ6YmlkOmVmaXV5cXVHV1R2UkVzWTltclZvS1ZoRmU1Wkp4WmRSIn0.hTw23Ihi49nuX94Am_f5nKdIrrW6X09QAXIJk96LZBw",
  "params": {
    "bid": "did:bid:by01:efHAvQztBKA7hT2BgHLeqtez5QQ964w8",
    "ACSN":"by01",
    "userType": "101",
    "userName": "张三",
    "userPublicKey": "b065660ad4b4d603c6794115a6749a4b7ea9987fb61f457680b8751c5c12dab9c1a19e",
    "registerTime":1624521999286
  }
}

(2)返回结果示例:

a. 用户信息备案成功,则返回JSON数据示例如下:

{  
  "errorCode": 0,
  "message": "操作成功"
}

b. 接口调用失败,则返回JSON数据示例为:

{
    "errorCode": 940000,
    "message": "系统内部错误"
}

3.5活跃用户同步记录

接口说明:

通过该接口将骨干节点下属子链用户(该用户需在星火·链网主链备案)的登录记录同步至主链

请求参数:

字段名 类型 是否必填 描述
loginRecordList list(100) 用户登录列表
loginRecordList.bid String(64) 子链数字身份bid
loginRecordList.loginTime Long 登录时间

返回数据:

(1)成功:

用户登录记录同步成功,返回成功信息:

字段名 类型 描述
errorCode int 0
message String 成功

(2)失败:

用户登录记录同步失败,返回失败信息。请参考错误码执行下一步操作。

字段名 类型 描述
errorCode int 940000
message String 失败

示例:

(1)用户登录记录同步至主链,示例如下:

http请求方式:POST
https://{url}/v1/chain/user/login/record
{
  "accessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcGlLZXkiOiJDcHB0NHRuMFlFZkIyMHJXIiwiaXNzIjoiQklGLUNIQUlOIiwiZXhwIjoxNjE5MjY0OTI4LCJiaWQiOiJkaWQ6YmlkOmVmaXV5cXVHV1R2UkVzWTltclZvS1ZoRmU1Wkp4WmRSIn0.hTw23Ihi49nuX94Am_f5nKdIrrW6X09QAXIJk96LZBw",
  "params": {
  	"loginRecordList":[
  		{
  			"bid": "did:bid:by01:efHAvQztBKA7hT2BgHLeqtez5QQ964w8",
  			"loginTime":1624521999286
  		}
  	]
  }
}

(2)返回结果示例:

a. 用户信息备案成功,则返回JSON数据示例如下:

{  
  "errorCode": 0,
  "message": "操作成功"
}

b. 接口调用失败,则返回JSON数据示例为:

{
    "errorCode": 940000,
    "message": "系统内部错误"
}

3.6 查询用户入链申请列表

接口说明:

骨干节点可向主链查询骨干节点子链的入链申请用户列表

请求参数:

字段名 类型 是否必填 描述
ACSN String(4) AC号
auditStatus Integer 审核状态(0待审核、1通过、2不通过)
pageStart Integer 开始页 默认1
pageSize Integer 每页条数 默认100条

返回数据:

字段名 类型 描述
inchainApplyList List 入链列表
inchainApplyList.applyNo String 申请编号
inchainApplyList.ACSN String 申请子链的AC号
inchainApplyList.userBid String 用户主链Bid
inchainApplyList.applyTime String 申请时间
inchainApplyList.applyRemark String 申请备注
inchainApplyList.auditStatus String 审核状态(0待审核、1通过、2不通过)
page Object 分页对象
page.pageSize Integer 每页条数
page.pageStart Integer 开始页
page.pageTotal Integer 总条数

示例:

(1)请求示例:

http请求方式:POST
https://{url}/v1/chain/inchain/apply/list
{
"accessToken":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcGlLZXkiOiJhdkNmcDdscU16SDVtTk5kIiwiaXNzIjoiQklGLUNIQUlOIiwiZXhwIjoxNjExNzQ0NjIwLCJiaWQiOiJkaWQ6YmlkOmVmejNvVFFHN0xZZktKRWlDeU1nNThOOVREZjl2cFd5In0.sCm7gaWX_nmIasUyo64tn5FeAqDaxxDn2Kb9Jixk2YI",
  "params":{
   	"ACSN":"by01",
    "auditStatus":1,
    "pageStart":1,
    "pageSize":20
  }
}

(2)返回结果示例:

a. 接口调用成功,则返回JSON数据示例为:

{
    "errorCode": 0,
    "message": "操作成功",
    "data": {
        "inchainApplyList": [{
            "applyNo": "20210407001",
            "ACSN": "by01",
            "userBid": "did:bid:efhbk6Y1kF7SuuvT2389JExuQtUVEX4n",
            "applyTime": 1618195086782,
            "applyRemark": ""
        }],
        "page": {
            "pageSize": 20,
            "pageStart": 1,
            "pageTotal": 4
        }
    }
}

b. 接口调用失败,则返回JSON数据示例为:

{
    "errorCode": 940000,
    "message": "系统内部错误"
}

3.7用户入链申请状态同步

接口说明:

骨干节点可向主链查询骨干节点子链的入链申请用户列表,骨干节点可以审核这些入链申请的用户,并将审核的结果同步到主链

请求参数:

字段名 类型 是否必填 描述
applyNo String(32) 申请编号
ACSN String(4) AC号
auditStatus String(2) 审核状态(0待审核、1通过、2不通过)

返回数据:

类型 字段名 描述
Integer errorCode 错误码
String message 错误描述

(1)请求示例:

http请求方式:POST
https://{url}/v1/chain/inchain/status/syn
{
"accessToken":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcGlLZXkiOiJhdkNmcDdscU16SDVtTk5kIiwiaXNzIjoiQklGLUNIQUlOIiwiZXhwIjoxNjExNzQ0NjIwLCJiaWQiOiJkaWQ6YmlkOmVmejNvVFFHN0xZZktKRWlDeU1nNThOOVREZjl2cFd5In0.sCm7gaWX_nmIasUyo64tn5FeAqDaxxDn2Kb9Jixk2YI",
  "params":{
    "ACSN":"by01",
    "applyNo":"20210407001",
    "auditStatus":"1"
  }
}

(2)返回结果示例:

a. 接口调用成功,则返回JSON数据示例为:

{
    "errorCode": 0,
    "message": "操作成功"
}

b. 接口调用失败,则返回JSON数据示例为:

{
    "errorCode": 940000,
    "message": "系统内部错误"
}

3.8 链标识数据同步

接口说明:

用于将子链的标识数据上报到主链(要求每5分钟同步一次。将5分钟内的标识数据同步上来)

3.8.1 标识数据详情上报

请求参数:

字段名 类型 是否必填 描述
identList List 标识列表
identList.identListACSN String(4) AC号
identList.identListName String(64) 标识名称
identList.identListidentBid String(64) 标识bid
identList.identListRegisterTime Long 标识注册时间(时间戳 毫秒)
identList.identListuserBid String(64) 标识所属企业或者用户bid
identList.identListuserName String(64) 标识所属企业或者用户的名称

返回数据:

字段名 类型 描述
code Integer 状态码 200成功 其他异常
msg String

示例:

(1)请求示例:

http请求方式:POST
https://{url}/bdp/bidServer/uploadDataInfoDetail
{
 "accessToken":
"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcGlLZXkiOiJkaWQ6YmlkOmVmbXlnZFJpSm1uT
XN4bkJzYUZzMUFMcXoyRFVjazZjIiwiaXNzIjoiQklGLUNIQUlOIiwiZXhwIjoxNjYwMTIwMzQ1LCJi
aWQiOiJkaWQ6YmlkOmVmSDNLTDdicm5IZzFMVXk0RHVVRGI1RWNlM21maU1jIn0.pnm_i1pAVHdze8y
qJADPufL9x8nPQjUYLD1dw7o889A",
 "params": {
 "identList": [{
 "identListACSN": "by01",
 "identListName": "桌子",
 "identListIdentBid": "23",
 "identListRegisterTime": 54,
 "identListUserBid": "56",
 "identListUserName": "万丽"
 }, {
 "identListACSN": "by02",
 "identListName": "已花直共引",
 "identListIdentBid": "100",
 "identListRegisterTime": 41,
 "identListUserBid": "44",
 "identListUserName": "曾娟"
    }]
  }
}

(2)返回结果示例:

a. 接口调用成功,则返回JSON数据示例为:

{
    "code": "200",
    "msg": "成功"
}

b. 接口调用失败,则返回JSON数据示例为:

{
"code": 10001,
"msg": "调⽤接⼝异常,请联系管理员"
}
{
"code": 10002,
"msg": "数据格式错误,请检查输⼊参数"
}
{
"code": 10003,
"msg": "集合数据不能超过50条"
}

3.8.2 标识统计数据上报

请求参数:

字段名 类型 是否必填 描述
identStatisticsList List 标识数据
identStatisticsList.identRegAmt Integer 标识注册量
identStatisticsList.startTime Long 开始时间
identStatisticsList.endTime Long 结束时间
identStatisticsList.identListACSN String AC号

返回数据:

字段名 类型 描述
code Integer 状态码 200成功 其他异常
msg String

示例:

(1)请求示例:

http请求⽅式:POST
http://{url}/bdp/bidServer/uploadDateStatistics
{
 "accessToken":
"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcGlLZXkiOiJkaWQ6YmlkOmVmbXlnZFJpSm1uT
XN4bkJzYUZzMUFMcXoyRFVjazZjIiwiaXNzIjoiQklGLUNIQUlOIiwiZXhwIjoxNjYwMTIwMzQ1LCJi
aWQiOiJkaWQ6YmlkOmVmSDNLTDdicm5IZzFMVXk0RHVVRGI1RWNlM21maU1jIn0.pnm_i1pAVHdze8y
qJADPufL9x8nPQjUYLD1dw7o889A",
 "params": {
 "identStatisticsList": [{
 "identRegAmt": 17,
 "startTime": 673233721005,
 "endTime": 1061340722561,
 "identListACSN": "8"
 }, {
 "endTime": 1535247813331,
 "startTime": 47828390839,
 "identListACSN": "4",
 "identRegAmt": 68
 }]
 }
 }

(2)返回结果示例:

a. 接⼝调⽤成功,则返回JSON数据示例为:

{
"code": 200, "msg": "成功"
}

b. 接⼝调⽤失败,则返回JSON数据示例为:

{

"code": 10001,
"msg": "调⽤接⼝异常,请联系管理员"
}
{
"code": 10002,
"msg": "数据格式错误,请检查输⼊参数"
}
{
"code": 10003,
"msg": "集合数据不能超过50条"
}

3.9 链标识解析数据同步

接口说明:

用于子链解析标识数据记录上报到主链(要求每5分钟同步一次。将5分钟内的解析标识数据同步上来)

请求参数:

字段名 类型 是否必填 描述
identAnalysisList List 标识解析列表
identAnalysisList.ACSN String(4) AC号
identAnalysisList.recordId String(32) 解析记录ID唯一(最长32位,所属子链下唯一即可)
identAnalysisList.identBid String(64) 标识bid
identAnalysisList.analysisTime Long 标识解析时间(Unix时间戳 毫秒)
identAnalysisList.userBid String(64) 解析用户bid
identAnalysisList.userName String(64) 解析用户的名称

返回数据:

字段名 类型 描述
errorCode Integer 错误码
message String 错误描述

示例:

(1)请求示例:

http请求方式:POST
https://{url}/v1/chain/identAnalysis/syn

{
  "accessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcGlLZXkiOiJkaWQ6YmlkOmVmb1R5cHVUeFloR25vNkM2V0JYeG9TZVo4SjJCaFRHIiwiaXNzIjoiQklGLUNIQUlOIiwiZXhwIjoxNjI5ODkwNTgzLCJiaWQiOiJkaWQ6YmlkOmVmejNvVFFHN0xZZktKRWlDeU1nNThOOVREZjl2cFd5In0.N9Bh-m965GLDtV0lrscUSiXY-cLXyepqEfvFmj91gDY",
  "params": {
    "identAnalysisList": [{
      "ACSN": "by01",
      "recordId": "21af7f1398edbcc9a71eff24311",
      "identBid": "did:bid:by01:efphXYwrDzCgE5RTCC1HesQKJvyDrQDm",
      "analysisTime": 1593338217000,
      "userBid": "did:bid:ef76xXoCF9xXqkhgSadKK3vy5khZR8sn",
      "userName": ""
    }]
  }
}

(2)返回结果示例:

a. 接口调用成功,则返回JSON数据示例为:

{
    "errorCode": "0",
    "message": "操作成功"
}

b. 接口调用失败,则返回JSON数据示例为:

{
    "errorCode": 940000,
    "message": "系统内部错误"
}

3.10 链应用服务信息同步

接口说明:

子链应用服务信息同步到主链(要求每5分钟同步一次。将5分钟内的子链应用服务信息同步上来)

请求参数:

字段名 类型 是否必填 描述
ACSN String(4) 子链AC号
businessType Integer 业务类型:1溯源,2存证,3供应链金融 20 其他
dataType Integer 数据类型: 当业务类型为溯源时,1-溯源产品记录、2-生产环节记录; 当业务类型为存证时,1-存证作品记录、2-作品权利列表、3-作品侵权列表; 当业务类型为供应链金融时,1-参与主体记录、2-供应链金融流程记录
dataList Array 数据数组
dataList.key String(64) 记录ID,用于标记同步的某条数据
dataList.time Long 毫秒级时间戳,用于数据查询时排序
dataList.value Object 业务数据对象,具体结构详见后表

1) 溯源类应用服务同步数据

1.1)同步溯源产品记录

http请求方式:POST
https://{url}/v1/chain/appService/info/syn
{
    "accessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcGlLZXkiOiJDcHB0NHRuMFlFZkIyMHJXIiwiaXNzIjoiQklGLUNIQUlOIiwiZXhwIjoxNjE5MzQyNDIyLCJiaWQiOiJkaWQ6YmlkOmVmMjhwTTlNRzNUR1hHeVdBVzRKcFdDRnNKRGQ1TUJuYyJ9.3gcQQBqvqtZH1q-TfUiGne68R1TnBcvLAA6nIJ8qDGU",
    "params": {
        "ACSN": "cc11",
        "businessType": 1,
        "dataType": 1,
        "dataList": [{
            "key": "{key}",
            "time": 1593338217000,
            "value": {
                "name": "名称",
                "type": "名称",
                "num": "123",
                "creator": "123",
                "time": 1593338217000,
                "picture": ""
            }
        }]
    }
}

业务数据对象:溯源类产品记录核心字段说明

字段名 类型 是否必填 描述
name String 产品名称
type String 业务类型
time Integer 毫秒级时间戳,生成时间
num String 产品信息编号,子链上唯一
creator String 创建用户
picture String 产品图片

1.2)同步生产环节记录

http请求方式:POST
https://{url}/v1/chain/appService/info/syn
{
    "accessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcGlLZXkiOiJDcHB0NHRuMFlFZkIyMHJXIiwiaXNzIjoiQklGLUNIQUlOIiwiZXhwIjoxNjE5MzQyNDIyLCJiaWQiOiJkaWQ6YmlkOmVmMjhwTTlNRzNUR1hHeVdBVzRKcFdDRnNKRGQ1TUJuYyJ9.3gcQQBqvqtZH1q-TfUiGne68R1TnBcvLAA6nIJ8qDGU",
    "params": {
        "ACSN": "cc11",
        "businessType": 1,
        "dataType": 1,
        "dataList": [{
            "key": "{key}",
            "time": 1593338217000,
            "value": {
                "productName": "名称",
                "stepName": "名称",
                "stepType": 0,
                "infoType": 0,
                "operator": "123",
                "lastOps": "123",
                "totalOps": 89,
                "blockHeight": 78668,
                "txHash": "{txHash}",
                "lastStatus": 0,
                "time": 1593338217000,
                "num": ""
            }
        }]
    }
}

业务数据对象:溯源类生产环节记录核心字段说明

字段名 类型 是否必填 描述
productName String 产品名称
stepName String 环节名称
stepType Integer 环节类型,0:生产 1:加工 2:运输 3:销售
infoType Integer 录入信息,0:产品信息 1:生产信息 2:溯源信息 3:溯源码导出
operator String 操作人员名称
lastOps String 最近操作
totalOps Integer 操作总数
blockHeight Integer 区块高度
txHash String 交易哈希
time Integer 毫秒级时间戳,记录时间
lastStatus Integer 最近状态, 0:操作中 1:已完成
num String 产品信息编号,子链上唯一

2) 存证类应用服务同步数据

2.1)同步存证作品记录

http请求方式:POST
https://{url}/v1/chain/appService/info/syn
{
    "accessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcGlLZXkiOiJDcHB0NHRuMFlFZkIyMHJXIiwiaXNzIjoiQklGLUNIQUlOIiwiZXhwIjoxNjE5MzQyNDIyLCJiaWQiOiJkaWQ6YmlkOmVmMjhwTTlNRzNUR1hHeVdBVzRKcFdDRnNKRGQ1TUJuYyJ9.3gcQQBqvqtZH1q-TfUiGne68R1TnBcvLAA6nIJ8qDGU",
    "params": {
        "ACSN": "cc11",
        "businessType": 2,
        "dataType": 1,
        "dataList": [{
            "key": "{key}",
            "time": 1593338217000,
            "value": {
                "name": "名称",
                "businessType": "",
                "type": 0,
                "nature": 0,
                "creator": "贾平凹",
                "notaryOffice": "陕西省文学认证机构",
                "issueStatus": 1,
                "blockHeight": 148838,
                "txHash": "590f278351091ed924e70f7611558bae0b7d6faaade3f3cc8ad16c1242573fa3",
                "time": 1623032433,
                "num": "ffd6baaed492b3195764b4b2febfde73"
            }
        }]
    }
}

业务数据对象:(存证业务)存证作品列表核心字段说明

字段名 类型 是否必填 描述
name String 作品名称
businessType String 业务类型
type Integer 作品类别,0:文学 1:歌曲 2:视频 3:电影 4:其他
nature Integer 作品性质, 0:原创 1:改编 2:翻译 3:汇编 4:注释 5:整理 6:其他
creator String 作者名称
notaryOffice String 公证机构
issueStatus Integer 发表状态,0:未发表,1:已发表
blockHeight Integer 区块高度
txHash String 交易哈希
time Integer 存证时间(Unix时间戳 毫秒)
num String 作品编号,子链上唯一

2.2)同步作品权利列表

http请求方式:POST
https://{url}/v1/chain/appService/info/syn
{
    "accessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcGlLZXkiOiJDcHB0NHRuMFlFZkIyMHJXIiwiaXNzIjoiQklGLUNIQUlOIiwiZXhwIjoxNjE5MzQyNDIyLCJiaWQiOiJkaWQ6YmlkOmVmMjhwTTlNRzNUR1hHeVdBVzRKcFdDRnNKRGQ1TUJuYyJ9.3gcQQBqvqtZH1q-TfUiGne68R1TnBcvLAA6nIJ8qDGU",
    "params": {
        "ACSN": "cc11",
        "businessType": 2,
        "dataType": 1,
        "dataList": [{
            "key": "{key}",
            "time": 1593338217000,
            "value": {
                "name": "名称",
                "rightName": [{
                  "type": 0,
                  "trans": "张三",
                  "proxies":[{
                    "key":"{key}",
                    "value":"{value}"
                  }]
                }],
                "time": 1593338217000,
                "num": "11e9c0a13f2cef98d366929de72be286"
            }
        }]
    }
}

业务数据对象:(存证业务)作品权利列表核心字段说明

字段名 类型 是否必填 描述
name String 作品名称
rightName List 权益名称
rightName.type Integer 权利类型,0:复制权、1:发行权、2:出租权、3:展览权、4:表演权、5:放映权、6:广播权、7:信息网络传播权、8:摄影权、9:改编权、10:翻译权、11:汇编权、12:其他权利
rightName.trans String 转让人
rightName.proxies Map 代理人列表,Map结构的key用于排序
time Integer 权益创建时间 (Unix 时间戳 毫秒)
num String 作品编号,子链上唯一

2.3)同步作品侵权列表

http请求方式:POST
https://{url}/v1/chain/appService/info/syn
{
    "accessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcGlLZXkiOiJDcHB0NHRuMFlFZkIyMHJXIiwiaXNzIjoiQklGLUNIQUlOIiwiZXhwIjoxNjE5MzQyNDIyLCJiaWQiOiJkaWQ6YmlkOmVmMjhwTTlNRzNUR1hHeVdBVzRKcFdDRnNKRGQ1TUJuYyJ9.3gcQQBqvqtZH1q-TfUiGne68R1TnBcvLAA6nIJ8qDGU",
    "params": {
        "ACSN": "cc11",
        "businessType": 2,
        "dataType": 1,
        "dataList": [{
            "key": "{key}",
            "time": 1593338217000,
            "value": {
                "name": "名称",
                "website": "",
                "blockHeight": 869855,
                "txHash": "5016e1e7cca7b83c3d0a89d90e01e50ed587d2a6b6fbabae9105584015c9ab87",
                "certHash": "15970183d8aa7538bf06030f7784f91e220a6d05b80c6aedeb89e030756e26b3",
                "time": 1593338217000,
                "num": "11e9c0a13f2cef98d366929de72be286"
            }
        }]
    }
}

业务数据对象:(存证业务)作品侵权列表核心字段说明

字段名 类型 是否必填 描述
name String 作品名称
website String 侵权网站
blockHeight Integer 区块高度
txHash String 交易哈希
time Integer 取证时间(Unix 时间戳 毫秒)
num String 作品编号,子链上唯一
certHash String 证书哈希

3) 供应链金融类应用服务同步数据

3.1)同步参与主体记录

http请求方式:POST
https://{url}/v1/chain/appService/info/syn
{
    "accessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcGlLZXkiOiJDcHB0NHRuMFlFZkIyMHJXIiwiaXNzIjoiQklGLUNIQUlOIiwiZXhwIjoxNjE5MzQyNDIyLCJiaWQiOiJkaWQ6YmlkOmVmMjhwTTlNRzNUR1hHeVdBVzRKcFdDRnNKRGQ1TUJuYyJ9.3gcQQBqvqtZH1q-TfUiGne68R1TnBcvLAA6nIJ8qDGU",
    "params": {
        "ACSN": "cc11",
        "businessType": 2,
        "dataType": 1,
        "dataList": [{
            "key": "{key}",
            "time": 1593338217000,
            "value": {
                "name": "名称",
                "type": 0,
                "quota": 869855,
                "invoiceAmount": "5487",
                "financingAmount": "3453",
                "time": 1593338217000,
                "repaymentAmount": "3456",
                "overdueAmount": "4234",
                "blockHeight": 499884
            }
        }]
    }
}

业务数据对象:(供金业务)参与主体列表核心字段说明

字段名 类型 是否必填 描述
name String 主体名称,子链上唯一
type Integer 主体类型, 0:国有企业 1:私有企业 2:国外企业 3:其他
quota String 授信额度
invoiceAmount String 开具金额
financingAmount String 融资金额
repaymentAmount String 还款金额
overdueAmount String 逾期金额
time Integer 毫秒级时间戳,上链时间
blockHeight Integer 区块高度

3.2)同步供应链金融流程记录

http请求方式:POST
https://{url}/v1/chain/appService/info/syn
{
    "accessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcGlLZXkiOiJDcHB0NHRuMFlFZkIyMHJXIiwiaXNzIjoiQklGLUNIQUlOIiwiZXhwIjoxNjE5MzQyNDIyLCJiaWQiOiJkaWQ6YmlkOmVmMjhwTTlNRzNUR1hHeVdBVzRKcFdDRnNKRGQ1TUJuYyJ9.3gcQQBqvqtZH1q-TfUiGne68R1TnBcvLAA6nIJ8qDGU",
    "params": {
        "ACSN": "cc11",
        "businessType": 2,
        "dataType": 1,
        "dataList": [{
            "key": "{key}",
            "time": 1593338217000,
            "value": {
                "amount": "名称",
                "num": "0d77d483634cd4e8e4ddd712e0a15910",
                "type": 0,
                "from": "did:bid:eftnSnkPZQhoUnaySFhKgGAuK4gxUeFc",
                "to": "did:bid:efhX1bSmnC8pwd7KW8SHxeFLQYB6UwTg",
                "preNum": "07d38c31850033fff867094cf05b8308",
                "status": 0,
                "txHash": "9b687618d61a61e3c9caaf8039f486a3b6be8f87447935200f9bc810930298e5",
                "blockHeight": 499884,
                "time": 1593338217000
            }
        }]
    }
}

业务数据对象:(供金业务)供金流程列表

字段名 类型 是否必填 描述
amount String 资金额
num String 单据编号
type Integer 流程类型,0:授信 1:开具 2:融资 3:转让 4:还款
from String 转出主体名称
to String 转入主体名称
preNum String 上一环节编号
status Integer 状态,0:未完成 1:已完成
txHash String 交易哈希
blockHeight Integer 区块高度
time Integer 上链时间(Unix时间戳 毫秒)

3.11更新子链接口

3.11.1获取更新子链blob

接口说明:

提交更新子链的材料,获取更新子链的blob数据(blob是星火·链网上交易结构序列化后的十六进制格式),用于执行更新信息上链

请求参数:

字段名 类型 是否必填 描述
backboneNodeBid String(64) 骨干节点bid
ACSN String(8) 要进行修改的链的链码
contacts object 联系人对象
contacts.name string(20) 联系人姓名
contacts.phoneNum string(12) 联系人电话
contacts.mail string(30) 联系人邮箱
chainInfo object 要进行修改的链信息对象
chainInfo.industry string(4) 链行业类型(见第10节行业类型)
chainInfo.name string(30) 子链名称
chainInfo.architectureId string(10) 链架构id: 链架构 10000:BIF-CORE、10001:Fabric、10002:Ethereum、 10003:BubiChain、10004:Quorum、10005:Xuperchain、10006:cita 、 10007:FISCO、10008:其他
chainInfo.genesisAmount string(30) 创世账户token总数
chainInfo.unit string(32) token单位
chainInfo.precision String(30) token精度
chainInfo.baseReserve string(30) token保留数
chainInfo.feeGasPrice string(30) 最低燃料单价
chainInfo.rewardInitValue string(30) 出块奖励
chainInfo.genesisSlogan string(1024) 子链slogan
chainInfo.description string(1024) 子链介绍
chainInfo.gatewayNodeList Array 数据网关列表(需要填写主链的BID)
chainInfo.gatewayCrossList Array 跨链网关列表(需要填写主链的BID。建议数据网关和跨链网关使用不同的BID账号,否则开发者在多个服务中并发交易时,可能出现交易上链失败问题)
system object 链系统信息
system.visitUrl string(255) 子链入口
system.publicStatus string(2) 开发许可
resolveServiceList Object 解析服务对象列表
resolveServiceList.ipv4[i].ip String(64) IPv4地址
resolveServiceList.ipv4[i].port String(5) 服务端口
resolveServiceList.ipv4[i].remark String(128) 备注信息
resolveServiceList.ipv6[i].ip String(64) IPv6地址
resolveServiceList.ipv6[i].port String(5) 服务端口
resolveServiceList.ipv6[i].remark String(128) 备注信息
resolveServiceList.url[i].address String(255) URL地址,HTTP,HTTPS开始,不支持IP,以"/"为结尾
resolveServiceList.url[i].remark String(128) 备注信息

返回数据:

字段名 类型 描述
blobId String blobId
txHash String 链上交易hash
blob String blob串

示例:

(1)请求示例:

http请求方式:POST
https://{url}/v1/chain/update/blob
{
  "accessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcGlLZXkiOiJDcHB0NHRuMFlFZkIyMHJXIiwiaXNzIjoiQklGLUNIQUlOIiwiZXhwIjoxNjE5MzQyNDIyLCJiaWQiOiJkaWQ6YmlkOmVmMjhwTTlNRzNUR1hHeVdBVzRKcFdDRnNKRGQ1TUJuYyJ9.3gcQQBqvqtZH1q-TfUiGne68R1TnBcvLAA6nIJ8qDGU",
  "params": {
    "backboneNodeBid":"did:bid:ef28pM9MG3TGXGyWAW4JpWCFsJDd5MBnc",
    "ACSN":"by01",
    "contacts":{
      "name":"dongzhiwei",
      "phoneNum":"15555555555",
      "mail":"dongzhiwei@qq.com"
    },
    "chainInfo":{
      "architectureId": "10000",
      "industry": "A",
      "name": "openapi测试链",
      "genesisAmount": "123",
      "unit": "unit",
      "precision": "1",
      "baseReserve": "100",
      "feeGasPrice": "1000",
      "rewardInitValue": "10000",
      "genesisSlogan": "genesisSlogan",
      "description": "description",
      "gatewayNodeList":["did:bid:ef248yRNC7XjBepsy631wV42q8RW96nX", "did:bid:efixsfN3agXnM8JVWa7Hh9PmAi3EuirM"],
      "gatewayCrossList":[""did:bid:ef448yRNC7XjBepsy631wV42q8RW96nX", "did:bid:efixsfN7agXnM8JVWa7Hh9PmAi3EuirM""],
    },
    "system":{
      "visitUrl": "http://www.baidu.com",
      "publicStatus": "0"
    },
    "resolveServiceList":{
      "ipv4": [{
        "ip": "192.168.1.1",
        "port": "18122",
        "remark": "4444"
      },
        {
          "ip": "192.168.2.2",
          "port": "18122",
          "remark": "55555"
        }
      ],
      "ipv6": [{
        "ip": "1111:0410:0000:1234:FB00:1400:5000:45FF",
        "port": "18122",
        "remark": "aaa"
      },
        {
          "ip": "2222:0410:0000:1234:FB00:1400:5000:45FF",
          "port": "18122",
          "remark": "bbb"
        }
      ],
      "url": [{
        "address": "",
        "remark": ""
      }]
    }
  }
}

(2)返回结果示例:

a. 接口调用成功,则返回JSON数据示例为:

{
 "data":{
  "blobId": "232975729572",
  "txHash": "985ac10a6cda2f4b6c910f11bffed35fa504e53125c045d1fbbade6b335da50",
 "blob":"A296469643A6269643A6652665770673644675A6B3232346F7A5570644343654C5A6231394635705238511001225A080712296469643A6269643A666D6E7A42315A724156375966727933665759795071646B6A57776F7458635258622B0A296469643A6269643A6841706E5959474C4550614678467A35543946383374485A6242474338483776513080DAC40938E807"
 }, 
 "errorCode": 0,
 "message": "操作成功"
}

b. 接口调用失败,则返回JSON数据示例为:

{
    "errorCode": 940000,
    "message": "系统内部错误"
}

3.11.2更新子链提交交易(上链)

接口说明:

对blob数据进行签名(参考 签名算法 章节),并提交至主链执行上链操作;上链完成后由超级节点对更新信息进行审核。

请求参数:

用于将更新子链流程提交至主链并上链存储,请示参数由3.11.1接口中获取,参数如下:

字段名 类型 是否必填 描述
blobId String(19) blobID
signerList List 签名者列表(骨干节点签名)
signerList.signBlob String(128) 签名串(骨干节点对blob进行签名)
signerList.publicKey String(128) 签名者公钥(骨干节点公钥)

返回数据:

(1)成功:

返回的交易哈希

字段名 类型 描述
txHash String 链上交易hash
errorCode int 0
message String 成功

(2)失败:

说明调用接口失败,请参考错误码执行下一步操作。

字段名 类型 描述
errorcode int 错误码,如940000
message String 错误信息,如系统内部错误

示例:

(1)提交获取到的更新子链blob数据,示例如下:

http请求方式:POST
https://{url}/v1/chain/update/submit
{
  "accessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcGlLZXkiOiJDcHB0NHRuMFlFZkIyMHJXIiwiaXNzIjoiQklGLUNIQUlOIiwiZXhwIjoxNjE5MjU2OTEwLCJiaWQiOiJkaWQ6YmlkOmVmaXV5cXVHV1R2UkVzWTltclZvS1ZoRmU1Wkp4WmRSIn0.0nUb20tqYIhcD-cS_a6YCGFM9AwZDyB7x_MFeIQv_Pc",
  "params": {
    "blobId": "144",
    "blob":"",
    "signerList": [{
      "signBlob": "5DFE2A2136B49321DDB7F5E83B23B27BE3E05FBCE8240782EE75BF592D53C7EEFEDF1D7CCA33FC8FE972E94FA67E3D083E58DFCC81E4DF78DC3B910341413701",
      "publicKey": "b065660ae694d678de4d648e04f4b86247fae59cef3590da8370664a520d9aaaaf1de3"
    }]
  }
}

(2)返回结果示例:

a. 成功:

接口调用成功,则返回JSON数据示例如下:

{
  "data":{
        "txHash": "985ac10a6cda2f4b6c910f11bffed35fa504e53125c045d1fbbade6b335da50"
  }, 
  "errorCode": "0",
  "message": "操作成功"
}

b. 接口调用失败,则返回JSON数据示例为:

{
    "errorCode": 940000,
    "message": "系统内部错误"
}