前言
本源码为开源的产品,仅用于学习交流使用!不可用于任何违反中华人民共和国(含台湾省)或使用者所在地区法律法规的用途。
源码购买地址:
请认准唯一购买地址,不少倒卖的,自行鉴别。
本文档无不良导向,严禁源码用于非法用途,所产生的法律后果由使用者自行承担!由此造成经济损失概不负责!
管理后台请使用火狐浏览器登录使用。
火狐浏览器下载地址:https://www.mozilla.org/zh-CN/firefox/all/#product-desktop-release
介绍
本项目是基于Java(SpringCloud)开发的数字货币合约现货交易所,具备强大的内存撮合交易引擎。
本项目基于SpringCloud微服务开发,可用来搭建和二次开发数字货币交易所,有完整的系统组成部分。
[ ] 撮合交易引擎
[ ] 后台管理(后端+前端)
[ ] PC端VUE 页面
[ ] 原生安卓APP源码
[ ] 原生苹果APP源码
[ ] 币种钱包RPC源码
[ ] UNIAPP开发的移动端页面
● 后端:Spring、SpringMVC、SpringData、SpringCloud、SpringBoot ● 数据库:Mysql、Mongodb ● 其他:redis、kafka、阿里云OSS、腾讯防水校验 ● 前端:Vue、iView、less
关于撮合交易引擎
本系统对交易队列采用内存撮合的方式进行,以Kafka做撮合订单信息传输,MongoDB持久化订单成交明细,MySQL记录订单总体成交。 其中01_Framework/Exchange项目主要负责内存撮合,01_Framework/Market项目主要负责订单成交持久化、行情生成、行情推送等服务,
包括:
● K线数据,间隔分别为:1分钟、5分钟、15分钟、30分钟、1小时、1天、1周、1月 ● 所有交易对的市场深度(market depth)数据 ● 所有交易对的最新价格 ● 最近成交的交易对
内存撮合交易支持的模式 ● 限价订单与限价订单撮合 ● 市价订单与限价订单撮合 ● 限价订单与市价订单撮合 ● 市价订单与市价订单撮合
限价&市价订单处理逻辑
注意:这个图很久以前的了,最新代码中的逻辑更复杂了
撮合引擎支持的其他功能 除了普通的限价与市价撮合交易功能外,本系统的撮合交易引擎还引入了活动成交模式,通过设置交易对(如:BTC/USDT)的开始交易时间、初始发行量、初始发行价、活动模式等参数,可以制定出丰富的撮合交易模式,从而满足不同的撮合模式。
举例说明 交易所预计在2020年8月8日 12时00分00秒上线交易对AAA/USDT,但是作为一个新上线的币种,没有活动怎么能行呢?项目方或交易所决定拿出10000个AAA以0.0001USDT(市场行情价:0.0005)的价格让大家抢购。本系统支持对这种活动的设置。 另外,如果项目方或交易所决定拿出10000个AAA以0.0001USDT的价格发行,不希望大家抢购,而是希望所有充值USDT的用户能够平均瓜分10000个AAA,本系统也支持这种活动的设置。
总结 总之,本系统支持高度自定义的撮合模式,同时你也可以开发出你自己想要的撮合交易模式,只需要通过修改Exchange项目中的撮合逻辑就可以。
系统运行环境
- Centos 6.8
- MySQL 5.5.16
- Redis-x64-3.2.100
- Mongodb 3.6.13
- kafka_2.11-2.2.1
- nginx-1.16.0
- JRE 8u241
- JDK 1.8
- Vue
- Zookeeper
后端源码模块说明
模块 | 备注 |
---|---|
admin | 后台管理API |
agent-api | 代理商api |
chat | OTC聊天 |
cloud | SpringCloud微服务管理 |
contract-option-api | 期权合约 |
contract-second-api | 秒合约 |
contract-swap-api | 永续合约 |
exchange | 撮合交易引擎 |
exchange-api | 撮合交易API |
market | 市场行情API、K线生成 |
otc-api | OTC交易API |
ucenter-api | 用户个人中心API |
wallet | 钱包资产管理 |
wallet_udun | 三方钱包优盾 |