闪电兑换是通过一方公开报价,另一方快速成交的交易模式,链下撮合,链上结算。用户在闪电兑换上没有传统交易模式的对手盘,所有的交易深度由做市商者提供。本篇文章会讲述闪兑的架构,并通过一个例子展示如何在闪电兑换中挂单交易。
闪兑做市架构
闪兑做市原理
市商在本地启动Dealer,通过本地Dealer的RESTfulAPI发送订单以及撤销订单。在这个过程中,做市商需要不断的轮询MovServer服务器来获取账户资产余额的变化,变化部分即是闪电兑换成交的资产。
闪兑做市教程
准备Dealer配置文件
单签地址做市配置如下:
{"port":1024,"bycoin_url":"https://ex.movapi.com","flash_swap_url":"47.101.190.112:50052","mnemonic":"你的助记词","derive_rule":{"account_idx":1,"address_idx":1},"network":"mainnet","logs":{"rotate_time":"24h","max_age":"72h"}}
多签地址做市配置如下:
{"port":1024,"bycoin_url":"https://ex.movapi.com","flash_swap_url":"47.101.190.112:50052","mnemonic":"你的助记词","derive_rule":{"account_idx":1,"address_idx":1},"quant_mode":{"quant_delegation_url":"https://ex.movapi.com/delegation","funder_pubkey":三方管理的合作伙伴公钥","attester_pubkey":"三方管理生成的公钥"},"network":"mainnet","logs":{"rotate_time":"24h","max_age":"72h"}}
port是本地使用的端口号,默认使用1024,可以自行设置derive_rule是私钥的派生路径,原则上不用修改flash_swap_url闪兑服务器地址quant_mode是量化端口时要设置的配置
后台运行Dealer
使用mmdk关于闪兑的方法前,需要先启动Dealer并指定正确的配置文件dealer.conf可以将两部分文件放在同一目录下,启动服务的命令行如下:
$nohup./linux_dealer_hz_testdealer.conf&
Dealer后台运行后,可以通过$ps-aux|grepdealer来查询程序Dealer进程是否成功运行。
调用MOV-MMDK提供的方法
目前针对闪电兑换,MMDK提供了以下几个方法可供使用:
get_depth(self,symbol)获取市场深度
send_order(self,symbol,side,price,amount)发送交易订单
cancel_order_by_id(self,order_id)取消订单
query_list_orders(self,symbol,side)查询订单
1.通过python3启动python解释器,在代码中添加依赖,创建FlashApi对象就可以调用MOV-MMDK提供的API参与闪电兑换做市商。
frommov_sdk.flash_apiimportFlashApi//1024为dealer.conf中设置的端口号,此处需与dealer配置文件相同FLASH_LOCAL_URL="http://127.0.0.1:1024"client=FlashApi(_local_url=FLASH_LOCAL_URL)//创建对象
2.查询闪兑市场中指定交易对的深度
print(client.get_depth("btm_usdt"))
3.发送订单提供深度,例如我们发送一笔价格为0.07u,数量为0.1btm的卖单
print(client.send_order(symbol="btm_usdt",side="sell",price="0.07",amount="0.1"))
可以再次查询深度,并与步骤2的查询结果对比
print(client.get_depth("btm_usdt"))
显然,我们刚刚发送的订单已经可以被查询到了。
4.通过交易对和交易方向查询订单
print(client.query_list_orders(symbol="btm_usdt",side="sell"))
通过这个方法可以查询到我们订单的信息。通过订单的order_id我们可以取消订单。
5.取消订单
print(client.cancel_order_by_id(order_id=32487))
成功取消后再次查看深度,可以发现我们的订单已经不在asks队列中
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。