4.4.1 基础存证业务概述
4.4.1.1 存证代理合约
存证代理合约是一个入口地址,没有业务含义。它在整个络谱区块链中只有一份,通过合约地址调用。
4.4.1.2 存证合约
存证合约是由您自行管理并用于完成登记业务的载体。您可通过控制台向络谱运营方提出申请并由络谱运营方创建,创建时设置您为该存证合约的管理机构。一个存证合约代表了一种存证业务,您可以根据自身业务情况申请一个或多个存证合约来对您的业务进行存证管理。每个存证合约可以设置一个管理机构账户身份,管理机构可设置谁有权向存证合约中写入存证记录,即设置存证合约的黑白名单。您可以通过不同的存证合约来管理不同的协作者、以及登记不同业务。存证合约通过存证代理合约和存证合约地址调用。
4.4.1.3 存证记录合约
存证记录是您向某个存证合约中写入的存证信息。业务上每登记一次存证信息,实际上是创建或更新了一条存证记录合约。因此,存证记录合约是附属于存证合约中用于登记存证信息的存证记录,它可以被修改,然而所有的修改记录都会保存在区块链上。一个存证合约中可以有任意多条的存证记录,每条存证记录可以通过存证合约地址和存证流水号进行调用。
4.4.2 存证业务接口列表
4.4.2.1 设置是否使用白名单规则
接口说明:设置该存证合约使用白名单或黑名单规则,管理该存证合约的合作方身份合约可以调用。只能选择其中一种规则,选择后仍然可以更换,更换后名单是清空的。如果选择白名单,则只有白名单中用户有写入存证权限,下列的白名单相关接口有效;选择黑名单,则只有黑名单中用户没有写入存证权限,下列的黑名单相关接口有效。如不设置,默认使用白名单规则。
调用类型:交易方法
请求方式:POST
请求地址:http://BROP_HOST:PORT/common/sendTx.json
队列事件:EVENT_TX_RECORDED、EVENT_CONTRACT_UPDATED
参数列表:
名称 | 类型 | 描述 |
---|---|---|
contractAddress | String | 存证代理合约的合约地址 |
bizId | String | 调用方维护的唯一业务请求ID |
blockLimit | Integer | 确认上链最大块号 |
method | String | setAuthListType |
signatureInBase64 | String | 已签名数据 |
regionId | String | 专区编号(专区链需要传) |
params[0] | String | 需要设置黑白名单规则的存证合约的合约地址 |
params[1] | Boolean | 如果设置成"true",则使用白名单规则;如果设置成"false",则使用黑名单规则。默认是“true” |
接口返回:
名称 | 类型 | 描述 |
---|---|---|
detail | String | txHash |
请求示例:
{
"blockLimit": 854729,
"method": "setAuthListType ",
"bizId": "25119881049217",
"contractAddress": "c2d100f42e4ed3d9cea639ce3db9211cfe3f3824 ",
"signatureInBase64": "HCeEYP3XoMrhE0v6GUpeIbnM686gpvwpHmnkKT2qSPKFVUuK6Voo5VKRyxz7Serhkc6cPBr9cIKkCAPGLfHR2kY=",
"regionId":"0x00000000002fbace000000005d1c745500000000",
"params": [
"61887b928c43e9d8bf324c189a60fa06359a3741",
false
]
}
返回示例:
{
"code": "SUCCESS",
"detail": "21cc517f20dcf13c5022bbc512062e6454bc31b5ca3621a5bb9fa17b75a50a5d"
}
4.4.2.2 新增白名单用户
接口说明:把某个身份合约添加到当前存证合约的白名单内,仅当合约调用方为管理该存证合约的合作方身份合约时才可以调用。
调用类型:交易方法
请求方式:POST
请求地址:http://BROP_HOST:PORT/common/sendTx.json
队列事件:EVENT_TX_RECORDED、EVENT_CONTRACT_UPDATED
参数列表:
名称 | 类型 | 描述 |
---|---|---|
contractAddress | String | 存证代理合约的合约地址 |
bizId | String | 调用方维护的唯一业务请求ID |
blockLimit | Integer | 确认上链最大块号 |
method | String | addUserToWhiteList |
signatureInBase64 | String | 已签名数据 |
regionId | String | 专区编号(专区链需要传) |
params[0] | String | 要增加白名单用户的存证合约的合约地址 |
params[1] | Integer | 要添加的身份合约的账户ID |
接口返回:
名称 | 类型 | 描述 |
---|---|---|
detail | String | txHash |
请求示例:
{
"blockLimit": 593186,
"method": "addUserToWhiteList",
"bizId": "421402112788194",
"contractAddress": "c2d100f42e4ed3d9cea639ce3db9211cfe3f3824",
"signatureInBase64": "G5TjF1Xxhy82+jEO/y4jKeQhRIv4n0MBmp9nArM1o0QJL+NF9yWG3HFUlclqL3ZmFOJmhRmPZrw6hcVvpMFAJgk=",
"regionId":"0x00000000002fbace000000005d1c745500000000",
"params": [
"61887b928c43e9d8bf324c189a60fa06359a3741",
100000002
]
}
返回示例:
{
"code": "SUCCESS",
"detail": "1d703b3e9981046483ceabdee1923657892bdedf84677f48608fc33693663803"
}
4.4.2.3删除白名单用户
接口说明:把某个身份合约从当前存证合约的白名单内删除,仅当合约调用方为管理该存证合约的合作方身份合约时才可以调用。
调用类型:交易方法
请求方式:POST
请求地址:http://BROP_HOST:PORT/common/sendTx.json
队列事件:EVENT_TX_RECORDED、EVENT_CONTRACT_UPDATED
参数列表:
名称 | 类型 | 描述 |
---|---|---|
contractAddress | String | 存证代理合约的合约地址 |
bizId | String | 调用方维护的唯一业务请求ID |
blockLimit | Integer | 确认上链最大块号 |
method | String | removeUserFromWhiteList |
signatureInBase64 | String | 已签名数据 |
regionId | String | 专区编号(专区链需要传) |
params[0] | String | 要删除白名单用户的存证合约的合约地址 |
params[1] | Integer | 要删除的身份合约的账户ID |
接口返回:
名称 | 类型 | 描述 |
---|---|---|
detail | String | txHash |
请求示例:
{
"blockLimit": 593461,
"method": "removeUserFromWhiteList",
"bizId": "422243456173312",
"contractAddress": "c2d100f42e4ed3d9cea639ce3db9211cfe3f3824",
"signatureInBase64": "HJ7PXU2zyd+POJ1lfggRwhYY4xpkDhZgkMMjOUqP5lzE0Zyhnnj8zRvlkqgbR5DKxiwHv6NUQ6XPOAaPnrY9vvU=",
"regionId":"0x00000000002fbace000000005d1c745500000000",
"params": [
"61887b928c43e9d8bf324c189a60fa06359a3741",
100000003
]
}
返回示例:
{
"code": "SUCCESS",
"detail": "736eb7c946b732af6e0b0e7b2bd540400b00d7f11d651112d8db7d28d87d87f1"
}
4.4.2.4 新增黑名单用户
接口说明:把某个身份合约添加到当前存证合约的黑名单内,仅当合约调用方为管理该存证合约的合作方身份合约时才可以调用。
调用类型:交易方法
请求方式:POST
请求地址:http://BROP_HOST:PORT/common/sendTx.json
队列事件:EVENT_TX_RECORDED、EVENT_CONTRACT_UPDATED
参数列表:
名称 | 类型 | 描述 |
---|---|---|
contractAddress | String | 存证代理合约的合约地址 |
bizId | String | 调用方维护的唯一业务请求ID |
blockLimit | Integer | 确认上链最大块号 |
method | String | addUserToBlackList |
signatureInBase64 | String | 已签名数据 |
regionId | String | 专区编号(专区链需要传) |
params[0] | String | 要增加黑名单用户的存证合约的合约地址 |
params[1] | Integer | 要添加的身份合约的账户ID |
接口返回:
名称 | 类型 | 描述 |
---|---|---|
detail | String | txHash |
请求示例:
{
"blockLimit": 855882,
"method": "addUserToBlackList",
"bizId": "27911208832780",
"contractAddress": "c2d100f42e4ed3d9cea639ce3db9211cfe3f3824",
"signatureInBase64": "G8/Hu4iSPbg+D9J07gym7cRH+e47QuUKPJuyUKSiwHHp3b6xA3yElRaZt8hg/tB1S5PxqAQtACJ6ul2BFpR8Qkw=",
"regionId":"0x00000000002fbace000000005d1c745500000000",
"params": [
"61887b928c43e9d8bf324c189a60fa06359a3741",
100000003
]
}
返回示例:
{
"code": "SUCCESS",
"detail": "007fa3285a701c1116f0e5beee3fafaa308d6bb93ea4c2f24b6b53ec0d44ea79"
}
4.4.2.5 删除黑名单用户
接口说明:把某个身份合约从当前存证合约的黑名单内删除,仅当合约调用方为管理该存证合约的合作方身份合约时才可以调用。
调用类型:交易方法
请求方式:POST
请求地址:http://BROP_HOST:PORT/common/sendTx.json
队列事件:EVENT_TX_RECORDED、EVENT_CONTRACT_UPDATED
参数列表:
名称 | 类型 | 描述 |
---|---|---|
contractAddress | String | 存证代理合约的合约地址 |
bizId | String | 调用方维护的唯一业务请求ID |
blockLimit | Integer | 确认上链最大块号 |
method | String | removeUserFromBlackList |
signatureInBase64 | String | 已签名数据 |
regionId | String | 专区编号(专区链需要传) |
params[0] | String | 要删除黑名单用户的存证合约的合约地址 |
params[1] | Integer | 要删除的身份合约的账户ID |
接口返回:
名称 | 类型 | 描述 |
---|---|---|
detail | String | txHash |
请求示例:
{
"blockLimit": 856065,
"method": "removeUserFromBlackList",
"bizId": "28357761467358",
"contractAddress": "c2d100f42e4ed3d9cea639ce3db9211cfe3f3824",
"signatureInBase64": "HLipKI0NUHdppqqK2UdNMTxw4jrduY2uEAhxqpO7b2A2JnBtwdoSXk58smqVR8YISxr/xCCCPlvbFnuzLb6yVhU=",
"regionId":"0x00000000002fbace000000005d1c745500000000",
"params": [
"61887b928c43e9d8bf324c189a60fa06359a3741",
100000003
]
}
返回示例:
{
"code": "SUCCESS",
"detail": "abd9c587b1f09b3ef09ab94ae4d2ec4807928367cee114aa3c136f9a504903cc"
}
4.4.2.6 检查写入存证记录权限
接口说明:检查某个身份合约是否具有往某个存证合约里写入存证记录的权限。(专区版本合约暂时不支持)
调用类型:只读方法
请求方式:POST
请求地址:http://BROP_HOST:PORT/common/contract.json
队列事件:无
参数列表:
名称 | 类型 | 描述 |
---|---|---|
contractAddress | String | 存证代理合约的合约地址 |
functionName | String | hasWriteRecordPermission |
regionId | String | 专区编号(专区链需要传) |
params[0] | String | 存证合约地址 |
params[1] | Integer | 要检查的身份合约的账户ID |
接口返回:
名称 | 类型 | 描述 |
---|---|---|
hasPermission | Boolean | 是否有写入存证记录权限 |
请求示例:
{
"contractAddress": "f20b5a8ffbb0caa436dbbf24c6eee3b08736e910",
"functionName": "hasWriteRecordPermission",
"regionId":"0x00000000002fbace000000005d1c745500000000",
"params": [
"9dda24bf4a26334d70bf51a01fe7978295ffad41",
100000033
]
}
返回示例:
{
"code": "SUCCESS",
"detail": {
"hasPermission": true
}
}
4.4.2.7 写入存证记录
接口说明:拥有当前存证合约的写入存证记录权限的身份合约用户可以调用。
调用类型:交易方法
请求方式:POST
请求地址:http://BROP_HOST:PORT/common/sendTx.json
队列事件:EVENT_TX_RECORDED、EVENT_CONTRACT_CREATE
参数列表:
名称 | 类型 | 描述 |
---|---|---|
contractAddress | String | 存证代理合约的合约地址 |
bizId | String | 调用方维护的唯一业务请求ID |
blockLimit | Integer | 确认上链最大块号 |
method | String | createRecord |
signatureInBase64 | String | 已签名数据 |
regionId | String | 专区编号(专区链需要传) |
params[0] | String | 写入存证记录的存证合约的合约地址 |
params[1] | String | 存证流水号,不能为空,最长48字节 |
params[2] | String | 前序存证流水号,可为空,最长48字节 |
params[3] | String | 存证信息,最长128字节。需要存证的业务数据经过计算摘要得到,推荐使用SHA-256算法 |
params[4] | String | 自定义信息,最长800字节,可选 |
params[5] | String | 交易发起方身份合约地址 |
接口返回:
名称 | 类型 | 描述 |
---|---|---|
detail | String | txHash(存证号) |
请求示例:
{
"blockLimit": 594283,
"method": "createRecord",
"bizId": "424774206589462",
"contractAddress": "c2d100f42e4ed3d9cea639ce3db9211cfe3f3824",
"signatureInBase64": "HCLPhmVqununpONHKw4IpjzlgNznztIZGwA9FhY+A0cg+YiC0SHPDnC9/rmXt77+bnlNnOnHf9kf88mfexQyijA= ",
"regionId":"0x00000000002fbace000000005d1c745500000000",
"params": [
"61887b928c43e9d8bf324c189a60fa06359a3741",
"424774206601781",
"",
" f2f9184ae540fb779a671dd2dce0e562d919fa28f3b66e25d68ca4fc14b0945b ",
"{\"fileAddr\":\"[https://www.business.com/file/201700045.pdf\",\"algorithm\":\"SHA256\"}](https://www.business.com/file/201700045.pdf\",\"algorithm\":\"SHA256\"})",
"45865da5c7013d0e5b5074fc98850ed2c8a725f1"
]
}
返回示例:
{
"code": "SUCCESS",
"detail": "6401a41329fa13c5b0ea469847a3b211e6354c4325c1dea6e3aacc79e82e4674"
}
4.4.2.8 更新存证记录
接口说明:根据存证流水号更新存证记录。拥有当前存证合约的写入存证记录权限的身份合约账户可以调用。
调用类型:交易方法
请求方式:POST
请求地址:http://BROP_HOST:PORT/common/sendTx.json
队列事件:EVENT_TX_RECORDED、EVENT_CONTRACT_UPDATE
参数列表:
名称 | 类型 | 描述 |
---|---|---|
contractAddress | String | 存证代理合约的合约地址 |
bizId | String | 调用方维护的唯一业务请求ID |
blockLimit | Integer | 确认上链最大块号 |
method | String | updateRecord |
signatureInBase64 | String | 已签名数据 |
regionId | String | 专区编号(专区链需要传) |
params[0] | String | 更新存证记录的存证合约的合约地址 |
params[1] | String | 更新存证记录记录的存证流水号,必须在存证合约中已存在 |
params[2] | String | 前序存证流水号,可为空,最长48字节 |
params[3] | String | 存证信息,最长128字节。需要存证的业务数据经过计算摘要得到,推荐使用SHA-256算法 |
params[4] | String | 自定义信息,最长800字节,可选 |
params[5] | String | 交易发起方身份合约地址 |
接口返回:
名称 | 类型 | 描述 |
---|---|---|
detail | String | txHash(存证号) |
请求示例:
{
"blockLimit": 594321,
"method": "updateRecord",
"bizId": "853469752465831",
"contractAddress": "c2d100f42e4ed3d9cea639ce3db9211cfe3f3824",
"signatureInBase64": "HLNeyMsyt1RaNKkO/rtrDbnVIXwuLFVLE6Q5qmy87SQ6VIQpnKPd/NGJJ+EJQ3uk04id3Q6dlEeVpabVG5qQ0D8=",
"regionId":"0x00000000002fbace000000005d1c745500000000",
"params": [
"61887b928c43e9d8bf324c189a60fa06359a3741",
"424774206601781",
"",
" f2f9184ae540fb779a671dd2dce0e562d919fa28f3b66e25d68ca4fc14b0945b ",
"{\"fileAddr\":\"[https://www.business.com/file/201700058.pdf\",\"algorithm\":\"SHA256\"}](https://www.business.com/file/201700058.pdf\",\"algorithm\":\"SHA256\"})",
"45865da5c7013d0e5b5074fc98850ed2c8a725f1"
]
}
返回示例:
{
"code": "SUCCESS",
"detail": "5b2fd468521a14ac384db165e6c4424f795eaa8852a048c1f9b1de91feeab7ab"
}
4.4.2.9 根据存证流水号获取存证记录合约的合约地址
接口说明:根据存证流水号获取存证记录合约的合约地址。
调用类型:只读方法
请求方式:POST
请求地址:http://BROP_HOST:PORT/common/contract.json
队列事件:无
参数列表:
名称 | 类型 | 描述 |
---|---|---|
contractAddress | String | 存证合约的合约地址 |
functionName | String | getRecordAddress |
regionId | String | 专区编号(专区链需要传) |
params[0] | String | 存证流水号 |
接口返回:
名称 | 类型 | 描述 |
---|---|---|
record | String | 存证记录合约的合约地址 |
请求示例:
{
"functionName": "getRecordAddress",
"contractAddress": "61887b928c43e9d8bf324c189a60fa06359a3741",
"regionId":"0x00000000002fbace000000005d1c745500000000",
"params": [
"424774206601781"
]
}
返回示例:
{
"code": "SUCCESS",
"detail": {
"record": "a4f528f949c1ed39671da722d0324d6e82657bee"
}
}
4.4.2.10获取存证记录合约的信息
接口说明:获取存证记录合约的信息。
调用类型:只读方法
请求方式:POST
请求地址:http://BROP_HOST:PORT/common/contract.json
队列事件:无
参数列表:
名称 | 类型 | 描述 |
---|---|---|
contractAddress | String | 存证记录合约的合约地址 |
functionName | String | getData |
regionId | String | 专区编号(专区链需要传) |
接口返回:
名称 | 类型 | 描述 |
---|---|---|
seqId | String | 存证流水号 |
preSeqId | String | 前序流水号 |
recordData | String | 存证信息 |
customString | String | 自定义字段 |
请求示例:
{
"functionName": "getData",
"contractAddress": "a4f528f949c1ed39671da722d0324d6e82657bee",
"regionId":"0x00000000002fbace000000005d1c745500000000",
"params": []
}
返回示例:
{
"code": "SUCCESS",
"detail": {
"preSeqId": "",
"recordData": "1234565768",
"seqId": "424774206601781",
"customString": "asdf"
}
}