# DMA API

支持的环境

  • java
  • Android
  • IOS

一、产品简介

1、 产品概述

DMA开放平台基于亦来云基础服务支持,将支付,智能合约,数据存储,数据营销通过接口的形式开放给第三方合作伙伴,帮助第三方合作伙伴快速创建具有区块链特性的应用。

2、 产品优势

通过接入DMA平台,开发人员无需详细了解区块链的工作原理,就能基于亦来云主链、DID侧链、ETH侧链开发去中心化应用。

3、 功能特性

通用型移动APP钱包,现支持ELA 主链钱包、DID侧链钱包、ETH侧链钱包

去中心化存储

合约模板丰富,包含ERC20合约模板、ERC721合约模板,ERC721模板中有 收费类模板,质押类模板、N元购模板、票券销售类模板等

4、 应用场景

4.1 区块链钱包

拥有一个区块链数字货币钱包,便象征着迈进区块链领域的大门。区块链去中心化特点可省去第三方中介环节,实现点对点的对接,在大大降低成本的同时,快速完成交易支付。

Elastos DMA 提供完善的Wallet(钱包)API服务。是对Wallet模块的封装,包含以太坊钱包功能封装、亦来云钱包封装。包含各类钱包创建,导出,查询余额,转账交易等。

4.2 发布纪念币

使用ERC721合约发布的资产具有不可置换性,你可以赋予每个token独一无二的属性,开发者们可以开发一个纪念币相关的dApp。将值得纪念事情记录下来,发布你的专属纪念币。

4.3 票务应用

ElastosDMA团队自主开发了ElastosDMA平台上的第一家去中心化电子商务体验商店——uptick。是一个由可信商家参与的,为设计师提供分账的,去中心化的电子商务dAPP,并将售卖商品的范围限定在精致的、有版权设计的一手文创类产品。

4.4 收费类活动应用

收费类活动主要用于小型活动,活动类型为收费类活动,交易过程中用户支付的报名费用暂时存在托管合约作为质押,当会议举行时,现场经过举办方验票之后,费用才能进入举办方账户。

4.5 质押类活动应用

质押活动,用户支付的费用暂时存在托管合约,当用户验票之后,用户报名活动的费用会退还到用户钱包,如果用户在活动结束前一直没有验票,此部分的报名费通过合约设置可归举办方所有或守约人均分。

5、基础术语

名词 说明
智能合约 Smart Contract 一种旨在以信息化方式传播、验证或执行合同的计算机协议。一个智能合约是一套以数字形式定义的承诺(promises),包括合约参与方可以在上面执行这些承诺的协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。
私钥 Private key 私钥是一组64位的16进制字符,通过私钥我们能够访问一个账户。用户需要保存好自己的私钥。
GasLimit 该交易的执行时使用gas的上限
GasPrice 交易发送者愿意支付的gas费用的价格。一个单位的gas表示了执行一个基本指令,例如一个计算步骤。
地址 address 钱包账户地址
助记词 Mnemonic 助记词由12-24个单词组成,助记词可以生成私钥。一个助记词可以生成无穷个私钥,可以理解成助记词是个树的根,这个根上可以长很多分支,每个叶子是一个私钥,Cobo钱包不同币种用的是不同的分支。这也是为何一个助记词可以管理HD账户下所有的钱包地址。
随机数 nonce 用于维护以太坊交易的随机数
交易 Transaction 区块链上的一个事务请求,用来承载具体业务操作数据的结构。区块链上所有针对世界状态的变化操作均是基于交易来完成的。
交易哈希 Transaction hash 交易上链成功后,产生的唯一哈希值。
交易回执 Transaction receipt 是交易的执行结果。区块链是异步的系统,交易执行后需要共识,与传统架构不同,不能直接返回交易执行是否成功,因此需在回执中查看最终交易结果。
节点信息 Node information 区块链节点的相关信息。一个区块链一般由多节点组成。
区块 Block 区块链上存储打包交易数据以及交易执行结果数据的一种组织形式。区块彼此之间通过前向的应用彼此链接形成区块链。 每个区块记录着上一个区块的哈希值、本区块中的交易集合、本区块的哈希等基础数据。
区块高度 Block height 区块高度,简称块高,用来识别区块在区块链中的位置,并据此找到和这个区块相关的所有基础属性和交易记录。
区块链技术 Blockchain 也被称之为分布式账本技术,是一种去中心化的分布式数据库技术,其特点是去中心化、公开透明、不可篡改、可信任。区块链的每笔数据,都会广播全网的区块链节点,每个节点都有全量的、一致的数据。
去中心化应用 Decentralized applications(DApp) 与传统中心化应用的主要区别是,DApp 通过客户端直接连接区块链节点,通过智能合约计算和访问数据,没有中心化的后端服务。
燃料 Gas 智能合约在虚拟机中执行计算和存储的消耗度量,通过燃料可防止一些恶意攻击和计算、存储的浪费。

二、发布说明

2018.12.31 DMA 测试版

2019.6.30 DMA 稳定版 更新了钱包SDK,Carrier离线消息

模块介绍

Utility(工具) API为开发者提供一些便捷工具类,方便开发者进行快速开发。

Wallet(钱包) API是对Wallet模块的封装,包含以太坊钱包功能封装、亦来云(主链、DID侧链、ETH侧链)钱包封装。包含各类钱包创建,导出,查询余额,转账交易等。交易记录由于底层不提供,使用API形式提取,文档中提供ELA主链交易记录参考代码

AssetManagement(资产管理) API是对AssetManagement模块的封装。使用AssetManagement API可完成对资产的管理、确权。发布合约资产需要使用此模块,目前提供721资产合约模板。

Merchant(商家) API是对Merchant模块进行的功能封装。提供一些通用的模板,供开发者使用。目前有以下三种模板:

MerchantService普通销售模板: 销售者创建资产,然后将资产授权给托管合约,进行上架销售。消费者通过托管合约购买资产。托管合约完成销售者资产与消费者资金进行交换的过程。解决双方信任问题。

ChargeActivityService收费活动模板:

活动发起者创建一次活动,发行一定数量的活动门票。然后将门票授权给托管合约进行上架出售。活动参与在通过托管合约购买活动门票,参与者付出的资金由托管合约进行保管。当活动结束后,活动发起者才能获得活动门票的资金。

PledgeActivityService 质押活动模板: 活动发起者创建一次活动,发行一定数量的活动门票。然后将门票授权给托管合约进行上架出售。活动参与在通过托管合约购买活动门票,参与者付出的资金由托管合约进行保管。活动开始前活动发起者校验到场者的门票id,并返回其支付的押金。未到场者押金在活动结束后转移到活动发起者地址。

Message(消息)模块主要包装了Carrier消息功能,我们在开发过程中预置了Carrier离线接口,待Carrier离线消息SDK提供后,进行补充,其中借鉴了Hyper的消息封装代码。(message模块api目前只支持Android)

Passport(身份认证) API是对Passport模块进行的功能,Passport模块可完成对用户身份信息的管理。支持Map提交存储,支持查找所有属性,有效属性,过期属性,可删除属性,此交易需要使用DID侧链币作为GAS。

Payment(支付)模块主要是想完成法币到币的通道,将来大家也可以使用法币直接购买电子票,商家也可能实现数字货币到法币的提现。目前payment模块主要实现了文档中提到的功能,然而DMA的SDK并不具备开账号等运营的责任,交易过程中需要借助币币交易的第三方平台,我们预留下了接口,将来可随时对接Elastos认可的币币交易第三方支付。

NodeSDK(节点数据管理)Node SDK 调用节点服务,节点服务对节点上721资产定义的事件进行分析处理,为去中心化数据收集提供依据

Ticket 模块覆盖了通用的票务领域,目前可实现收费类型、免费类型、质押类型的票务资产的发行、售卖、转移、验票等。整个交易过程没有平台、三方的参与,使用智能合约完成去中心化的可信交易。我们站在通用票务领域的角度,设计了符合票务标准的数据结构,同时也为用户提供自定义属性设置的接口,方便应用扩展。

Storage(存储) API提供存储相关功能,目前对ipfs进行封装,使用请阅读文档。