比特币:如何在磁力兑换中参与做市商?_比特币最新价格美元新浪财经

MOV市场可以分为超导兑换、磁力兑换和闪电兑换。由于Bycoin的简洁性、易用性,目前大多数用户都是通过BycoinAPP使用MOV的产品。虽然Bycoin优点良多,但并不适合有做市商需求的用户。针对这部分用户,MOV团队提供了RESTfulAPI或MOV-MMDK在MOV市场参与做市。本文会通过简单一个的例子讲解如何通过MOV-MMDK使用磁力兑换。

磁力做市架构和原理

MOVServer只是提供订单与交易之间的相互转化,实际上所有的订单都是由用户签名后提交,并最终由智能合约进行撮合的过程。MOVServer提供了与中心化交易所接近一致的API接口,其交易时的API使用体验,基本与中心化交易所一致,但依然有一些不同,下面我们将会进行说明。

准备工作

在正式开始之前,我们先进行一些准备吧!包括名词解释和所需工具的准备:

磁力兑换

磁力兑换是MOV协议下的核心产品之一,是将用户的资产通过合约的形式在链上完成挂单,撮合和成交的一种资产交易方式。通俗的说,磁力兑换实现的就是去中心化交易的功能,并且在去中心的同时具备了媲美中心化交易所的速度。

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

cdmov-mmdk/

pip3install-rrequirements.txt

python3setup.pyinstall

温馨提示:推荐在

macOS或

Linux环境下使用,Windows环境下安装依赖的过程比较繁琐。

详细教程

详细的教程我们通过一个示例来演示如何通过MMDK使用磁力兑换。我们可以在直接在Python解释器中运行我们的代码。

1.在命令行界面输入以下命令即可进入Python解释器

python3

2.接下来需要在代码中添加依赖,创建Api对象就可以调用MOV-MMDK提供的API参与磁力兑换做市商

frommov_sdk.mov_apiimportMovApi

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)

//以下两种方式会创建新地址并且初始化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())

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出现重复,则可能导致这笔交易失败。因此我们建议您采用单线程的方式来执行交易订单请求,如果真的需要并发交易的时候,请尽量通过多个钱包单线程的方式来解决问题。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

[0:0ms0-9:700ms