预备知识

本篇描述了使用BROPTool API需要了解的一些区块链开发特定知识。

智能合约方法调用

智能合约方法有两种类型,一种是只读方法,只查询合约数据,不发送数据上链;另一种是交易方法,创建或修改合约,需要发送交易上链。

BROPTool中的业务接口通过中间件服务调用智能合约方法,每个业务接口标明了智能合约方法类型,在调用时请注意类型。下面描述了两种不同类型方法的调用方式。

只读方法调用

只读方法调用只需要1个步骤:

调用区块链基础接口的 根据合约地址和块号查询智能合约数据 接口。

不同业务接口使用的参数(包括合约地址、合约方法名和合约参数)在各自接口中说明。

交易方法调用

交易方法调用需要4个步骤:

  1. 调用区块链基础接口的 查询当前最新块号 获取当前块号,用于构造后面几步需要用到的blockLimit值。
  2. 调用区块链基础接口的 产生待签原文 构造调用合约方法的待签原文。
  3. 调用安全插件API的 签名接口,使用私钥对待签原文进行签名。
  4. 调用区块链基础接口的 发送交易及签名信息 发送数据上链。

注意:

  • 业务接口中仅提供了第4步的参数描述,其它步骤需要自行调用。交易方法调用是一个完整的过程,第4步的参数值为第2步的参数值+第3步的签名数据,否则数据无法正常上链。
  • 对于授时存证业务接口来说,第2步调用授时存证专用的产生待签原文(请求授时)接口,获取待签原文、时间戳和时间戳签名3个字段,第4步的参数值为第2步的3个参数值+第3步的签名数据。
  • 业务接口参数说明

bizId

bizId是业务调用方自己维护的请求id,最大长度为UTF-8编码格式下的32字节。业务方可以通过bizId对应到某次业务请求。比如可以 时间戳 + 随机数。

bizId对同一个外部账户(即公私钥对)应该具有唯一性,例如,合作方使用安全插件管理公私钥对,安全插件中有“user1”和“user2”两个账号,则一个账号应使用不重复的bizId,而“user1”和“user2”可以使用相同的bizId。这是区块链层提供的功能。

blockLimit

blockLimit是针对某次数据上链请求,可以等待的最大区块号。如果到该区块号,数据还未上链,就认为上链失败。比如可以取 当前节点区块号 + 50。blockLimit最大限制是当前节点区块号+1000,超过1000会失败。

results matching ""

    No results matching ""