mt logoMyToken
Market cap:$0
0%
FGI:0
0%
Cryptocurrencies:--
Exchanges --
ETH Gas:--
English
USD
APP
Ap Store QR Code

Scan Download

如何在磁力兑换中参与做市商?
Collect

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

Disclaimer: The copyright of this article belongs to the original author and does not represent MyToken(www.mytokencap.com)Opinions and positions; please contact us if you have questions about content
Related Reading

Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?

Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?

XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up

XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up

Justin Sun suspected to have purchased $160m in Ethereum

Justin Sun suspected to have purchased $160m in Ethereum