# 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进行封装,使用请阅读文档。