Skip to content

Latest commit

 

History

History
108 lines (72 loc) · 6.87 KB

README.md

File metadata and controls

108 lines (72 loc) · 6.87 KB
am logo

AntChain Developer Digital Badges

pull requests welcome badge Language GitHub contributors License

介绍

AntChain Developer Digital Badges是蚂蚁链(开放联盟链)的Web3示范应用, 可以与 Web3 开发者共同探索、构建数字世界。通过为熟悉传统应用开发却不熟悉Web3应用架构广大的开发者提供Web3示范应用,帮助广大开发者根据自己的业务场景去定制开发,同时将开发者引入到Web3世界中。 通过个性化定制开发,可以实现例如数字头像、数字门票、数字徽章(POAP)、权益(优惠券)发放和核销等功能,满足各类数字化场景的基本需求,也可支持会场交互需求。

在AntChain Developer Digital Badges的架构中,需要与区块链进行交互,而链的版本、连接方式类型繁多,无法统一适配,因此AntChain Developer Digital Badges示例中使用蚂蚁链BaaS平台官方提供的REST接入服务,从而实现易用、高效、可靠的统一区块链接入服务。

AntChain Developer Digital Badges为开发者提供了数字头像合约模板,来帮助开发者完成插件和合约的开发,需要使用蚂蚁链合约工具myfish进行编译部署。

以下介绍了AntChain Developer Digital Badges的整体架构:

插件SDK共有四个部分,包括:

在当前的工程实现中,AntChain Developer Digital Badges核心部分是以传统的 MVC 三层架构思想的分层模型实现的。

  • bootstrap 层(启动层 该层是 SOFABoot 项目中的启动模块,其中包含 SOFABoot 应用的启动类、配置文件、打包插件等,其测试目录中还提供了集成测试的基类,可支持继承和扩展。 该模块可通过直接或间接依赖引用其他各模块的代码。

  • ervice 层(服务层) service 层作为 web 层或 facade 层与 model 层之间的桥梁,是实现主要业务逻辑的模块(如提供访问数据库之前的数据校验,处理数据库返回的值,发布 RPC 服务等)。

  • model 层(模型层) model 层用于存放实体类,即定义业务逻辑的领域对象。

  • dal 层(数据库层) dal 层主要是用于访问数据库,即编写对数据库的增删改查的 sql 语句实现。

  • utils 层 (工具层) utils 层提供了一些公共的工具库类,这些类可以被应用中的所有类使用。

构建

*在开始之前,请您确保安装了maven和JDK,这里推荐使用openjdk-1.8版本

  • 下载并安装REST SDK

自带依赖的下载链接:rest-client-2.16.5-with-dependencies.jar

下载成功后在server目录中运行 mvn install:install-file -Dfile=jar包的位置 -DgroupId=com.antfinancial.antchain.baas.tool -DartifactId=rest-client -Dversion=2.16.5 -Dpackaging=jar

快速开始

  • 申请区块链账号
  1. 在开放联盟链官网进行账号、AK等申请,具体步骤请参考蚂蚁链服务获取
  2. 数字藏品需要存储图像以及MetaData数据, 用户可以自由选择数据服务平台。 本应用中使用阿里云oss服务作为示例, 使用其他数据存储服务需要进行个性化定制开发。
  • 部署合约 本应用中提供两个不同的数字头像合约实现, 所使用的合约语言均为Soldity语言,蚂蚁链合约平台与原生 Solidity 具有不一样的特性。部署合约需要使用蚂蚁链合约工具myfish进行编译部署。两个合约不同之处在于, index.sol 中设置了baseURI, 即所有数字藏品metadata URI均在此基础上进行递增。 而indexCustomizedURI.sol合约可以为每一个数字藏品设置完全不同的URI,可定制程度更高。

  • 应用配置

  1. 将申请好的区块链账号信息填入xbuilders_chain_config中, 需要填入chain_id,chain_name,access_key,access_secret,admin_account_name,admin_account_kms_id,del_status,gmt_create,gmt_modified,tenant,chain_browser_url等字段。
  2. 将部署好的合约信息填入lab_dev_community_asset中, 需要填入id, group_id, chain_id, contract_id, contract_name, contract_type, sub_id, asset_type, name, redeemed_amount, total_amount 等字段。
  3. 将数据库以及其他配置信息填入application.properties
  • 启动应用 启动方式与传统spring-boot应用完全相同,在完成配置文件以及依赖安装后,运行如下命令

    mvn spring-boot:run
  • A-Pocket服务使用 A-Pocket是蚂蚁链数字钱包,支持密钥托管,链上NFT资产展示,并开放提供对外部DApp的调用。在支付宝小程序搜索A-Pocket即可使用,在开放联盟链中铸造的数字藏品, 可以接入A-Pocket进行展示, 目前A-Pocket数字藏品接入还处于白名单阶段,用户可以在issue以"A-Pocket白名单申请作为标题", 附带上合约地址等相关信息,我们会尽快审核。有相关疑问可以加入下方社区治理钉群中进行提问&讨论。

社区治理

AntChain Developer Digital Badges 欢迎您以任何形式参与社区建设。

您可以通过以下方式参与社区讨论

  • 钉钉
Editor
  • 邮件

发送邮件到openlab.antchain@member.alibaba.com

License

详情参考LICENSE