对接说明及对接前准备

最近更新时间:2020-09-15 10:22:35

本文档介绍在购买腾讯云区块链服务(Tencent Blockchain as a Service,TBaaS)产品后如何进行应用开发对接,即如何在应用系统上调用合约与区块链网络进行交互。下面将以 Fabric 为例进行介绍。

对接方式

合约是应用系统与区块链网络进行交互的唯一途径,因此不同的对接方式对应着不同的合约调用方式。如下图所示:
img
应用系统包括上层应用和腾讯云 SDK/区块链 SDK。目前用户的应用系统可以通过云 API 和区块链官方 SDK 调用 TBaaS 上区块链网络的合约。两种方式均通过区块链 SDK 与区块链网络进行交互,可认为云 API 是对区块链 SDK 的封装。两种调用方式的逻辑关系如下图所示:
img

对接方式对比

对接方式 优缺点 适用场景
云 API 配置简单,使用 SecretID 和 SecretKey 即可接入网络。功能较少,仅包含调用、查询和发起交易。
  • 用户侧应用系统希望以最快的速度或者最小的开发时间对接云上的区块链网络。
  • 用户侧应用系统对区块链的调用频率低于50笔每秒(TPS)。
  • 用户侧应用系统无法固定部署在与区块链所在地域相同的云上私有网络(VPC)中或用户不打算购买腾讯云服务器(CVM)。
  • 用户侧应用系统对区块链的调用频率低于50笔每秒(TPS)。
  • 同时支持 Fabric、BCOS 和 TrustSQL 三种区块链引擎。
区块链 SDK 配置繁琐,功能强大。tbaas-fabric-sdk-java 在原生社区 SDK 上进行了封装,简化配置流程的同时,保留了丰富的功能支持。
  • 用户侧应用系统对区块链的调用频率超过50笔每秒(TPS)。
  • 用户侧应用系统已经基于区块链原生的 SDK 进行了相关开发,迁移至云上时,希望改动尽可能少。
  • 用户侧应用系统所在 VPC 与区块链在同一地域。例如,应用系统 VPC 在广州,区块链网络节点也需要在购买在广州,目前 TBaaS 仅支持同地域打通。
  • 用户侧 VPC 内有空闲的 IP 地址,即 VPC 内 IP 地址不能被耗尽。
  • 仅支持调用 Fabric。

合约调用

说明:

在合约调用中:

  • 需要使用 SecretID 和 SecretKey 作为账户的标识,表明拥有该账户的访问权限。
  • 需要使用组织名(OrgName)、通道名(ChannelName)、节点名(PeerName)以及合约名(ChaincodeName)来定位一个合约并表明自己有调用该合约的权限。

在公有云调用合约之前,需要完成以下准备工作:

  1. 登录 TBaaS 控制台(获取 SecretIDSecretKey
  2. 购买 TBaaS 节点(PeerName)
  3. 创建/加入网络(ClusterID)
  4. 创建/加入通道(ChannelName)
  5. 安装/实例化合约(ChaincodeName)

应用系统调用实例化在通道上的合约调用逻辑,如下图所示:
img

合约示例

下载合约示例 java-contract-demo。该合约支持四种查询方法,其对应不同构造调用请求时 funcName 字段取值范围为:{"query", "queryHistory", "rangeQuery", "write"}。如下图所示:
img

获取调用参数

  • ClusterID:合约所在的区块链网络 ID。
    img
  • Region:该账户节点所在地域,可以概览页下方查看。
    img
  • OrgName:组织名。可在【组织管理】页签中查看,即带有当前组织标签的组织名。
    img
  • ChannelName:通道名称。被调用的合约实例化到该通道。
  • PeerName:组织加入通道时的任一 peer,该参数可在【通道管理】页签中查看。
  • ChainCodeName:合约名称。

选择对接方式

您可通过 云 API区块链 SDK 两种方式对接网络。同时,还可以使用 命令行工具 调试网络。

目录