阿里云首页 区块链服务 BaaS

原生存证接口

为方便存证场景的开发,合约平台提供原生存证交易接口以实现存证目的。

NativeDepositData 原生存证交易接口将目标数据在合约链上存证。

请求参数

将以下参数整体封装为 object 传入。

参数 必选 类型 说明
from true string 当前交易使用的账户
to true string 存证的目标账户
data true object 存证数据内容

data 字段内容:

字段 必选 类型 说明
payload true string 内容为以“0x”开头的 16 进制字符串,存证数据序列化为 16 进制的内容。

说明:存证交易的数据 payload 在大小上有上限限制,为合约链的一个配置项,通常默认限制为 1 MB,实际根据合约链的配置情况而定。

示例

下面是存证数据以及存证后的查询示例。

  1. chain.ctr.NativeDepositData({
  2. from: 'Tester001',
  3. to: 'Tester001',
  4. data: {
  5. payload: '0x1234' //存证的数据内容,被序列化为 16 进制
  6. }
  7. }, (err, data) => {
  8. //存证后,如果需要查询存证数据,可通过 QueryTransaction 传入存证交易的 hash 查询
  9. chain.ctr.QueryTransaction({
  10. hash: data.txhash
  11. }, (err, data) => {
  12. console.log('TX data:', data)
  13. })
  14. //通过 QueryTransaction 查询到存证交易,证明交易发生,通过 QueryTransactionReceipt 可以验证交易成功(return_code 为0),共识后进入区块。
  15. chain.ctr.QueryTransactionReceipt({
  16. hash: data.txhash
  17. }, (err, data) => {
  18. console.log('Receipt data:', data)
  19. })
  20. })

示例执行结果

  1. TX data: { msg_type: 62,
  2. sequence: 4,
  3. return_code: 0,
  4. group_id: '0x0000000000000000000000000000000000000000',
  5. tx:
  6. { hash:
  7. '0x0c9987c9568a402e16fff5f4b2d0056ad6289a5b61109be947f1c7d25ccaf7dd',
  8. transaction_type: 40,
  9. timestamp: 1551861396256,
  10. nonce: '64',
  11. period: 100,
  12. from:
  13. '0xc60a9d48105950a0cca07a4c6320b98c303ad42d694a634529e8e1a0a16fcdb5',
  14. to:
  15. '0xc60a9d48105950a0cca07a4c6320b98c303ad42d694a634529e8e1a0a16fcdb5',
  16. value: 0,
  17. gas: 10000000,
  18. group_id: '0x0000000000000000000000000000000000000000',
  19. version: 2,
  20. data: '0x1234',
  21. signature:
  22. [ '0x73a83b1e4b497222c890c9f602bb8bf48c0ed647bd8455d10b5d39886c3341ff2342a197225306ea2ac181c18ef5912fb07dd1319238469e257afa44326a9d0900' ],
  23. extensions: [] },
  24. block_number: 269873,
  25. transaction_index: 0,
  26. api: 'QueryTransaction' }
  27. Receipt data: { msg_type: 63,
  28. sequence: 5,
  29. return_code: 0,
  30. group_id: '0x0000000000000000000000000000000000000000',
  31. receipt:
  32. { result: 0,
  33. gas_used: 20020,
  34. log_entry: [ [Object] ],
  35. output: '' },
  36. block_number: 269873,
  37. transaction_index: 0,
  38. api: 'QueryTransactionReceipt' }