MOV市场可以分为超导兑换、磁力兑换和闪电兑换。由于Bycoin的简洁性、易用性,目前大多数用户都是通过BycoinAPP使用MOV的产品。虽然Bycoin优点良多,但并不适合有做市商需求的用户。针对这部分用户,MOV团队提供了RESTfulAPI或MOV-MMDK在MOV市场参与做市。本文会通过简单一个的例子讲解如何通过MOV-MMDK使用磁力兑换。
磁力做市架构和原理
MOVServer只是提供订单与交易之间的相互转化,实际上所有的订单都是由用户签名后提交,并最终由智能合约进行撮合的过程。MOVServer提供了与中心化交易所接近一致的API接口,其交易时的API使用体验,基本与中心化交易所一致,但依然有一些不同,下面我们将会进行说明。
准备工作
在正式开始之前,我们先进行一些准备吧!包括名词解释和所需工具的准备:
磁力兑换
磁力兑换是MOV协议下的核心产品之一,是将用户的资产通过合约的形式在链上完成挂单,撮合和成交的一种资产交易方式。通俗的说,磁力兑换实现的就是去中心化交易的功能,并且在去中心的同时具备了媲美中心化交易所的速度。
直播|Andrey Belyakov :如何制定DeFi 规则:金色财经 · 直播主办的金点Trend《以太坊之外的DeFi,香吗? 》15:00准时开播!本场嘉宾Opium Protocol 的创始人分享Andrey Belyakov “如何制定DeFi 规则”,请扫码移步收听![2020/9/1]
MOVServer
连接MOV的中心化服务器,用户使用其提供RESTfulAPI在MOV上进行交易。
MOV-MMDK
MOVMarketMakerDevelopmentKit,基于MOVServer的RESTfulAPI开发的PythonSDK
工具准备:
Python
MOV-MMDK是基于MOVServer的RESTfulAPI开发的PythonSDK,使用前请确保在你有Python3开发环境。本教程所有过程使用的版本为Python3.6.9
MOV-MMDK安装
MOVMarketMakerDevelopmentKit,基于MOVServer的RESTfulAPI开发的PythonSDK,提供获取市场深度、发送订单、取消订单、查询订单、查询账户余额等功能。
gitclonehttps://github.com/Bytom/mov-mmdk
动态 | Coinbase研究:学生越来越有兴趣了解区块链和加密如何使全世界的人受益:Coinbase博客发文称,研究表明,学生们越来越有兴趣了解区块链和加密如何使全世界的人受益。在2018年至2019年期间,学习区块链中对于“社会公正”的兴趣从13%上升到20%。与此同时,学生对于“安全”和“未来应用与增长”的学习兴趣在过去一年中都有所下降,分别从37%降至29%和31%至27%。[2019/8/31]
cdmov-mmdk/
pip3install-rrequirements.txt
python3setup.pyinstall
温馨提示:推荐在
macOS或
Linux环境下使用,Windows环境下安装依赖的过程比较繁琐。
详细教程
详细的教程我们通过一个示例来演示如何通过MMDK使用磁力兑换。我们可以在直接在Python解释器中运行我们的代码。
1.在命令行界面输入以下命令即可进入Python解释器
python3
2.接下来需要在代码中添加依赖,创建Api对象就可以调用MOV-MMDK提供的API参与磁力兑换做市商
frommov_sdk.mov_apiimportMovApi
动态 | Poloniex回应CLAM“闪崩事件”:无论如何损失将得到解决:Poloniex在推特发布了对于CLAM事件更新:“毫无疑问,我们致力于让受影响的债权人成为一个整体,无论遇到什么样的困境。我们正在努力实现这一目标,包括(但不限于)收回违约借款人欠贷款人的债务。无论如何,损失将得到解决。”据金色财经此前报道,用户考虑起诉Poloniex,指责其处理加密货币CLAM闪崩亏损之举为盗窃。[2019/6/8]
3.获取私钥并初始化,以下提供了四种不同的初始化方法。本教程在演示的时候选择第一种方式。
gitclonehttps://github.com/Bytom/mov-mmdk
//通过助记词初始化api=MovApi(secret_key="")config=api.init_from_mnemonic("你的助记词")print(api.main_address)print(api.vapor_address)print(api.public_key)
//通过私钥初始化api=MovApi(secret_key="你的私钥")print(api.main_address)print(api.vapor_address)print(api.public_key)
动态 | Cryptopia清算跟进:总资产为170万美元 清算人需向法院咨询如何支付欠款:据rnz消息,Cryptopia清算公司Grant Thornton需要就如何现款支付客户欠款向法庭寻求法律咨询,因为世界上还未有任何法律先例。来自Grant Thornton的清算人David Ruscoe和David Ruscoe发布报告称,Cryptopia目前欠款超过400万美元,而总资产为170万美元。本周,法院下达命令,允许他们使用该公司持有的比特币为清算提供资金。 据此前消息,Grant Thornton发布清算报告显示,Cryptopia欠69名无担保债权人债务超过210万美元,有担保债权人的债务超过140万美元。此外,该公司欠员工未付工资、假期工资以及无担保债务近60万美元,预计无担保债权人的数量将会增加。在今年1月份遭黑客入侵损失1600万美元后,Cryptopia目前已申请美国破产保护。[2019/6/1]
//以下两种方式会创建新地址并且初始化api=MovApi("")print(api.secret_key)print(api.main_address)print(api.vapor_address)print(api.public_key)
api=MovApi("")print(api.get_new_secret_key())print(api.main_address)print(api.vapor_address)
国际货币基金组织主席:最终幸存下来的加密资产可能会对人们如何储蓄产生重大影响:据bitcoinist消息,国际货币基金组织(IMF)主席拉加德(Christine Lagarde)在其新的博客文章中表示,最终幸存下来的加密资产可能会对我们如何储蓄,投资和支付账单产生重大影响。拉加德指出了加密货币能够进行快速和廉价的跨境金融交易的好处,并称比特币的基础技术——分布式账本技术可能会改变金融市场的运作方式。此外,拉加德指出,智能合约的革命性,可以移除中间商,而区块链技术能够安全地存储重要文件。最后,拉加德指出,在发展中的经济体,这种进步可以帮助确保产权,增加市场信心并促进投资。[2018/4/18]
根据自己需求创建好api对象就可以调用sdk提供的方法进行交易。对于Bycoin的用户,推荐使用第一种初始化的方式,可以在Bycoin-设置-钱包设置-备份助记词中获取自己账户的助记词,每个助记词用空格分隔。
4.通过sdk获得磁力交易对信息并输出:
print(api.get_exchange_info())
5.获取市场指定交易对的深度,这里我们获取BTC/USDT交易对的5档深度:
print(api.get_depth("BTC/USDT",5))
6.发送磁力交易订单,例如我们现在发送一笔BTM/USDT的卖出订单,定价为1USDT,数量为1:
print(api.send_order(symbol="BTM/USDT",side="sell",price=1,volume=1))
7.查询所有未成交的磁力订单,可以使用这个方法来查询步骤6发送的订单:
print(api.query_open_orders("BTM/USDT"))
8.通过订单号查询磁力订单
print(api.query_list_orders())
9.磁力撤单,通过订单号,将指定的订单撤销
print(api.cancel_order(6940174)
磁力撤单后,使用
api.query_open_orders("BTM/USDT")查询所有未成交的磁力订单,这时候已经data为空,证明我们确实把该订单取消了。而通过订单号查询,在type中显示为"mov_cancel_order",已取消订单。
10.查询账户所有资产的余额
print(api.get_balance())
以上就是在磁力兑换中常使用的方法,包括了订单的发送、查询、撤销和对账户资产的查阅。本教程中的过程全部通过MOV-MMDK进行磁力交易,返回数据的格式及说明详见MOV-MMDKAPI?除了这种方式以外,用户也可用直接通过磁力兑换的RESTfulAPI进行交易。详见:磁力兑换API
温馨提示:若直接通过磁力兑换的RESTfulAPI进行交易,在submitorder的环节需要用户自己在本地对raw_transaction签名以得到signatures。该过程比较复杂,应该目前推荐使用MOV-MMDK的方式参与做市。
磁力兑换与中心化交易所的区别
交易即转账
用户所有的兑换交易,实际上都是链上的转账,可以到MOV数据中心?以及vapor区块链浏览器?通过链上地址查询到市商做市的所有交易。
拥有私钥,即可转走账户上的所有金额
MOVServer和MOV-MMDK不会存储用户的私钥,用户请妥善保管你的私钥。拥有私钥就拥有账户的最高权限,泄露私钥会导致账户上所有资金被人转走,丢失私钥,将失去对账户资金的控制权!
建议一个交易对对应一个钱包,不要在一个钱包并发多笔交易
构建交易订单实际上是发送一笔UTXO交易。流程是这样的:服务器返还需要签名的相关UTXO交易->用户端签名,提交用户订单到服务器。这时候,如果需要签名的相关UTXO出现重复,则可能导致这笔交易失败。因此我们建议您采用单线程的方式来执行交易订单请求,如果真的需要并发交易的时候,请尽量通过多个钱包单线程的方式来解决问题。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。