更新时间:2023-06-06 GMT+08:00
分享

SDK概述

数字资产链开发工具包(DAC SDK,Digital Asset Chain Software Development Kit)是对DAC服务提供的REST API进行的封装,以简化用户的开发工作。目前提供40+业务和工具接口。用户在开发时只需要关注自己的业务逻辑,调用相应接口封装并发送消息即可,不需要关注底层区块链消息的封装细节,以及消息发送接收的具体过程。由于区块链为分布式系统,对同一链上资源进行并发操作会导致一致性冲突,出现交易上链失败等异常情况,因此对同一资源的多个操作需串行执行,本系统在交易平峰时,对同一资源的操作需要等待落块周期(约3s)完成后进行下一个操作。

SDK逻辑结构

SDK主要提供身份管理、数字资产管理模块及相应的配套组件。基于业界标准实现区块链上的数字资产管理模块,包括ERC721协议、ERC1155协议、ERC165协议、ERC998协议等功能接口,客户可根据业务需求使用一种或多种标准协议管理数字资产。配套组件主要包含秘钥生成&证书签发、配置文件解析、加密通讯等功能接口。

  • 秘钥生成&证书签发

    数字资产的铸造和流转都需要基于区块链上的用户。每个用户都有一套对应的证书和私钥,可以真正保护自己的资产所有权。SDK提供接口,用户在配置文件中配入组织CA的私钥,即可本地生成用户秘钥和与之对应的用户证书。

  • 身份管理

    链上用户支持以下身份标识符:

    地址标识:通用模式。地址由用户公钥计算得到,在链上标识用户身份,完成数字资产管理。

  • 数字资产集合管理

    数字资产集合用于标识一类相似的数字资产,每一个数字资产都需要归属于某一个资产集合。数字资产集合的创建者可以管理集合信息,并在集合下铸造数字资产,他人可以查询集合信息。主要接口功能包括(详细参看接口列表):

    • 创建数字资产集合(collection):每一个集合中包含0个或多个数字资产。
    • 修改集合信息:创建者可以修改集合的名称和缩写。
    • 查询资产集合的名称:通过集合标识查询集合名称。
    • 查询资产集合的缩写:通过集合标识查询集合缩写。
    • 获取数字资产集合列表:通过该接口查询区块链上所有集合的标识。
  • ERC721协议

    根据业界标准实现了满足ERC721协议的接口,可通过该协议接口进行单一集合的数字资产管理。主要接口功能包括:

    • 铸造数字资产(tokenId):每个数字资产必须归属于某个“资产集合”,编号从0开始。资产类型包括图片、视频、音频、3D模型等。
    • 数字资产流转:数字资产的所有权可以在用户身份标识之间流转。
    • 设置资产授权用户:所有者可为每个数字资产指定一个授权用户,授权用户拥有数字资产的流转操作权限。
    • 设置集合级授权用户:所有者可为某个“资产集合”指定一个授权用户,授权用户拥有该集合下所有者的每个数字资产的流转操作权限。
    • 查询数字资产:根据用户或者数字资产标识查询资产详情。
  • ERC1155协议

    根据业界标准实现了满足ERC1155协议的接口,可通过该协议接口进行多集合的数字资产管理,并且相较于ERC721接口,提供了批量操作数字资产的能力。主要接口功能包括:

    • 批量铸造数字资产:为某个“资产集合”,批量铸造1个或多个数字资产。
    • 批量流转数字资产:所有者可以流转属于不同或相同集合的若干个数字资产的所有权。
    • 批量查询数字资产所有权:批量查询多个用户是否拥有相对应的数字资产的所有权。
    • 设置用户级授权用户:用户可指定一个授权用户,授权用户拥有任意“资产集合”下该用户拥有的数字资产的流转操作权限。
  • ERC998协议

    根据业界标准实现了满足ERC998协议的接口,可通过该协议接口让一个可组合数字资产拥有其它若干数字资产,转移可组合数字资产就是转移其所拥有的整个层级结构和所属关系。主要接口功能包括:

    • 铸造可组合资产:为某个“资产集合”,铸造一个可组合资产,其为一种拥有”特殊能力”的资产,除此之外与其它资产并无区别,亦可调用ERC721或ERC1155协议进行数字资产管理。
    • 加入可组合资产:数字资产的所有者可将该资产加入到某一集合下的可组合资产中。
    • 拆分子资产给用户:可组合资产的所有者可将其中的子资产转移给其它用户。
    • 拆分子资产给其它可组合资产:可组合资产的所有者可将其中的子资产转移给其它可组合资产。
  • 配置文件管理

    配置可通过数字资产链控制台下载获取,内容参见图1

    1. 登录数字资产链控制台
    2. 左侧导航栏选择“调用指南”,在调用指南页面,单击“配置文件下载”。

    3. 输入证书存放路径,单击“下载”。

    • client:SDK客户端与数字资产服务通过https链接,需要配置服务器签发的tls证书及秘钥,请妥善保管。
    • identities:数字资产用户列表,开发者可通过“秘钥生成&证书签发”接口生成任意个用户,并将绝对路径填入配置文件(用户名可自定义)。
    • service:数字资产平台服务端地址。
    • chainCfg:区块链相关配置。
    • orgCa::组织Ca的信息,用于签发用户证书。
      图1 数字资产平台SDK配置文件 conf.yaml

基于SDK开发流程

基于SDK开发客户端需要执行以下步骤。

  1. 初始化:创建SDK实例对象,然后进行初始化(初始化会加载默认的配置用户,建议仅用于测试,调试使用)。
  2. 生成并配置用户:创建用户的私钥和证书,根据业务需要,可以提前创建也可以在用户注册时创建。做业务调用时需要配置当前SDK期望使用的用户。
  3. 创建数字资产集合。
  4. 铸造数字资产。
  5. 数字资产流转及查询等。

    可根据业务需要使用SDK中的功能接口。

DAC提供Java、Go以及PHP语言的SDK供开发者使用,开发指南和API参考如下:

表1 DAC SDK各语言开发指南

语言

开发指南

Go

Go

Java

Java

PHP

PHP

相关文档