MOV市场可以分为超导兑换、磁力兑换和闪电兑换。由于Bycoin的简洁性、易用性,目前大多数用户都是通过Bycoin APP使用MOV的产品。虽然Bycoin优点良多,但并不适合有做市商需求的用户。针对这部分用户,MOV团队提供了RESTful API或MOV-MMDK在MOV市场参与做市。本文会通过一个简单的例子讲解如何通过MOV-MMDK使用磁力兑换。 磁力做市架构和原理 MOV Server只是提供订单与交易之间的相互转化,实际上所有的订单都是由用户签名后提交, 并最终由智能合约进行撮合的过程。 MOV Server提供了与中心化交易所接近一致的API接口,其交易时的API使用体验,基本与中心化交易所一致,但依然有一些不同,下面我们将会进行说明。 准备工作 在正式开始之前,我们先进行一些准备吧!包括名词解释和所需工具的准备: 磁力兑换 磁力兑换是MOV协议下的核心产品之一,是将用户的资产通过合约的形式在链上完成挂单,撮合和成交的一种资产交易方式。通俗的说,磁力兑换实现的就是去中心化交易的功能,并且在去中心的同时具备了媲美中心化交易所的速度。 MOV Server 连接MOV的中心化服务器,用户使用其提供RESTful API在MOV上进行交易。 MOV-MMDK MOV Market Maker Development Kit,基于MOV Server的RESTful API开发的Python SDK 工具准备: Python MOV-MMDK是基于MOV Server的RESTful API开发的Python SDK,使用前请确保在你有 Python3 开发环境。本教程所有过程使用的版本为 Python 3.6.9 MOV-MMDK安装 MOV Market Maker Develo pment Kit,基于MOV Server的RESTful API开发的Python SDK,提供获取市场深度、发送订单、取消订单、查询订单、查询账户余额等功能。 git clone https://github.com/Bytom/mov-mmdkcd mov-mmdk/pip3 install -r requirements.txtpython3 setup.py install 温馨提示:推荐在macOS或Linux环境下使用,Windows环境下安装依赖的过程比较繁琐。 详细教程 详细的教程我们通过一个示例来演示如何通过MMDK使用磁力兑换。我们可以在直接在Python解释器中运行我们的代码。 1.在命令行界面输入以下命令即可进入Python解释器 python3 2.接下来需要在代码中添加依赖,创建Api对象就可以调用MOV-MMDK提供的API参与磁力兑换做市商 from?mov_sdk.mov_api?import?MovApi 3.获取私钥并初始化,以下提供了四种不同的初始化方法。本教程在演示的时候选择第一种方式。 git clone https://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) ? ? //以下两种方式会创建新地址并且初始化 ? 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) 根据自己需求创建好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([6940174])) 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-MMDK API?除了这种方式以外,用户也可用直接通过磁力兑换的RESTful API进行交易。详见:磁力兑换API 温馨提示:若直接通过磁力兑换的RESTful API进行交易,在submit order的环节需要用户自己在本地对raw_transaction签名以得到signatures。该过程比较复杂,应该目前推荐使用MOV-MMDK的方式参与做市。 磁力兑换与中心化交易所的区别 交易即转账 用户所有的兑换交易,实际上都是链上的转账,可以到MOV数据中心?以及vapor区块链浏览器?通过链上地址查询到市商做市的所有交易。 拥有私钥,即可转走账户上的所有金额 MOV Server和MOV-MMDK不会存储用户的私钥,用户请妥善保管你的私钥。拥有私钥就拥有账户的最高权限,泄露私钥会导致账户上所有资金被人转走,丢失私钥,将失去对账户资金的控制权! 建议一个交易对对应一个钱包,不要在一个钱包并发多笔交易 构建交易订单实际上是发送一笔UTXO交易。流程是这样的:服务器返还需要签名的相关UTXO交易->用户端签名,提交用户订单到服务器。 这时候,如果需要签名的相关UTXO出现重复,则可能导致这笔交易失败。 因此我们建议您采用单线程的方式来执行交易订单请求,如果真的需要并发交易的时候,请尽量通过多个钱包单线程的方式来解决问题。 —- 编译者/作者:比原链Bytom 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
如何在磁力兑换中参与做市商?
2020-11-27 比原链Bytom 来源:区块链网络
LOADING...
相关阅读:
- 前比特币中国CEO李启元携Ballet钱包强势回归开启数字资产新纪元2020-11-27
- 为何用比特币和美元组合购买豪华游艇真香现场你有多少?2020-11-27
- BTCV技术再创新高?站上加密市场技术顶流2020-11-27
- 有一种跌,叫灰度放假了;ETH2.0 的有哪些机会呢?2020-11-27
- 巴德言币:11.27BTC暴跌3100点的背后究竟是谁在作祟?2020-11-27