如何在闪电兑换中参与做市商?_DEA:Slash Protocol

闪电兑换是通过一方公开报价,另一方快速成交的交易模式,链下撮合,链上结算。用户在闪电兑换上没有传统交易模式的对手盘,所有的交易深度由做市商者提供。本篇文章会讲述闪兑的架构,并通过一个例子展示如何在闪电兑换中挂单交易。

闪兑做市架构

闪兑做市原理

市商在本地启动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队列中

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

金宝趣谈

[0:15ms0-5:345ms