Web3SDK API

Web3SDK API主要分为Web3j API和Precompiled Service API。其中Web3j API可以查询区块链相关的状态,发送和查询交易信息;Precompiled Service API可以管理区块链相关配置以及实现特定功能。

Web3j API

Web3j API是由web3j对象调用的FISCO BCOS的RPC API,其API名称与RPC API相同,参考RPC API文档

Precompiled Service API

预编译合约是FISCO BCOS底层通过C++实现的一种高效智能合约。SDK已提供预编译合约对应的Java接口,控制台通过调用这些Java接口实现了相关的操作命令,体验控制台,参考控制台手册。SDK提供Precompiled对应的Service类,分别是分布式控制权限相关的PermissionService,CNS相关的CnsService,系统属性配置相关的SystemConfigService和节点类型配置相关ConsensusService。相关错误码请参考:Precompiled Service API 错误码

PermissionService

SDK提供对分布式控制权限的支持,PermissionService可以配置权限信息,其API如下:

  • public String grantUserTableManager(String tableName, String address): 根据用户表名和外部账户地址设置权限信息。
  • public String revokeUserTableManager(String tableName, String address): 根据用户表名和外部账户地址去除权限信息。
  • public List listUserTableManager(String tableName): 根据用户表名查询设置的权限记录列表(每条记录包含外部账户地址和生效块高)。
  • public String grantDeployAndCreateManager(String address): 增加外部账户地址的部署合约和创建用户表权限。
  • public String revokeDeployAndCreateManager(String address): 移除外部账户地址的部署合约和创建用户表权限。
  • public List listDeployAndCreateManager(): 查询拥有部署合约和创建用户表权限的权限记录列表。
  • public String grantPermissionManager(String address): 增加外部账户地址的管理权限的权限。
  • public String revokePermissionManager(String address): 移除外部账户地址的管理权限的权限。
  • public List listPermissionManager(): 查询拥有管理权限的权限记录列表。
  • public String grantNodeManager(String address): 增加外部账户地址的节点管理权限。
  • public String revokeNodeManager(String address): 移除外部账户地址的节点管理权限。
  • public List listNodeManager(): 查询拥有节点管理的权限记录列表。
  • public String grantCNSManager(String address): 增加外部账户地址的使用CNS权限。
  • public String revokeCNSManager(String address): 移除外部账户地址的使用CNS权限。
  • public List listCNSManager(): 查询拥有使用CNS的权限记录列表。
  • public String grantSysConfigManager(String address): 增加外部账户地址的系统参数管理权限。
  • public String revokeSysConfigManager(String address): 移除外部账户地址的系统参数管理权限。
  • public List listSysConfigManager(): 查询拥有系统参数管理的权限记录列表。

CnsService

SDK提供对CNS的支持。CnsService可以配置CNS信息,其API如下:

  • String registerCns(String name, String version, String address, String abi): 根据合约名、合约版本号、合约地址和合约abi注册CNS信息。
  • String getAddressByContractNameAndVersion(String contractNameAndVersion): 根据合约名和合约版本号(合约名和合约版本号用英文冒号连接)查询合约地址。若缺失合约版本号,默认使用合约最新版本。
  • List queryCnsByName(String name): 根据合约名查询CNS信息。
  • List queryCnsByNameAndVersion(String name, String version): 根据合约名和合约版本号查询CNS信息。

SystemConfigService

SDK提供对系统配置的支持。SystemConfigService可以配置系统属性值(目前支持tx_count_limit和tx_gas_limit属性的设置),其API如下:

  • String setValueByKey(String key, String value): 根据键设置对应的值(查询键对应的值,参考Web3j API中的getSystemConfigByKey接口)。

ConsensusService

SDK提供对节点类型配置的支持。ConsensusService可以设置节点类型,其API如下:

  • String addSealer(String nodeId): 根据节点NodeID设置对应节点为共识节点。
  • String addObserver(String nodeId): 根据节点NodeID设置对应节点为观察节点。
  • String removeNode(String nodeId): 根据节点NodeID设置对应节点为游离节点。

CRUDService

SDK提供对CRUD(增删改查)操作的支持。CRUDService可以创建表,对表进行增删改查操作,其API如下:

  • int createTable(Table table): 创建表,提供表对象。表对象需要设置其表名,主键字段名和其他字段名。其中,其他字段名是以英文逗号分隔拼接的字符串。返回创建表的状态值,返回为0则代表创建成功。
  • int insert(Table table, Entry entry): 插入记录,提供表对象和Entry对象。表对象需要设置表名和主键值;Entry是map对象,提供插入的字段名和字段值。返回插入的记录数。
  • int update(Table table, Entry entry, Condition condition): 更新记录,提供表对象,Entry对象和Condtion对象。表对象需要设置表名和主键值;Entry是map对象,提供更新的字段名和字段值;Condition对象是条件对象,可以设置更新的匹配条件。返回更新的记录数。
  • List> select(Table table, Condition condition): 查询记录,提供表对象和Condtion对象。表对象需要设置表名和主键值;Condition对象是条件对象,可以设置查询的匹配条件。返回查询的记录。
  • int remove(Table table, Condition condition): 移除记录,提供表对象和Condtion对象。表对象需要设置表名和主键值;Condition对象是条件对象,可以设置移除的匹配条件。返回移除的记录数。
  • Table desc(String tableName): 根据表名查询表的信息,主要包含表的主键和其他属性字段。返回表类型,主要包含表的主键字段名和其他属性字段名。