web

  • 全新UI版面
  • 支持49国语言
  • 支持54种货币汇率
  • 全新K线组件
  • 等等等各种,可以自己对比着老版的看看。

后端

  1. 系统性能提升(基础软件优化)
  2. 系统稳定性提升(完善服务治理、链路监控、网关路由、负载均衡等)
  3. 撮合引擎升级,支持横向扩展(当前系统唯一性能瓶颈所在)
  4. 基础软件版本升级(SpringCloud、MySQL、Kafka、Redis以及Maven依赖等)
  5. 统一配置中心,降低配置难度(计划将Eureka变更为Nacos)
  6. 支持Docker及K8S容器编排部署方式
  7. 支持Jekins持续集成
  8. 设计全新交易所UI,提升用户体验&避免撞脸

体验地址

http://118.25.133.182:84/#/

特色

  • 特色1: 基于内存撮合引擎,与传统基于数据库撮合更快特色2: 前后端分离,基于Token的Api授权机制
  • 特色3: 基于SpringCloud微服务架构,扩展更容易
  • 特色4: MySQL、MongoDB、Redis多种数据存储方式,只为更快
  • 特色5: Kafka发布订阅消息队列,让订单更快流转
  • 特色6: 主流币种对接区块链接口齐全,开箱即用
  • 特色7: 冷热钱包分离,两种提现方式,保证安全
  • 特色8: 机器人系统,同步行情,维护深度,防止搬砖
  • 特色9: 原生App,Java和ObjectC提供原生体验
  • 特色10: 交易所设计者提供技术支持,部署+二开无忧
  • 特色11: 支持添加自定义平台币及其他币种

介绍

本项目是基于Java(SpringCloud)开发的比特币交易所 | BTC交易所 | ETH交易所 | 数字货币交易所 | 交易平台 | 撮合交易引擎。

本项目基于SpringCloud微服务开发,可用来搭建和二次开发数字货币交易所,有完整的系统组成部分。

  • 撮合交易引擎
  • 后台管理(后端+前端)
  • 前台(交易页面、活动页面、个人中心等)
  • 原生安卓APP源码
  • 原生苹果APP源码
  • 币种钱包RPC源码

架构图

整体架构
image.png
逻辑架构

image.png

部署架构
image.png

撮合交易引擎

本系统对交易队列采用内存撮合的方式进行,以Kafka做撮合订单信息传输,MongoDB持久化订单成交明细,MySQL记录订单总体成交。

其中01_Framework/Exchange项目主要负责内存撮合,01_Framework/Market项目主要负责订单成交持久化、行情生成、行情推送等服务,包括:

  • K线数据,间隔分别为:1分钟、5分钟、15分钟、30分钟、1小时、1天、1周、1月
  • 所有交易对的市场深度(market depth)数据
  • 所有交易对的最新价格
  • 最近成交的交易对

限价&市价订单处理逻辑
image.png

技术构成

  • 后端:Spring、SpringMVC、SpringData、SpringCloud、SpringBoot
  • 数据库:Mysql、Mongodb
  • 其他:redis、kafka、阿里云OSS、腾讯防水校验
  • 前端:Vue、iView、less

区块链钱包对接

提供两种钱包对接方式,一种是自建节点+区块链浏览器的方式,另一种是第三方钱包对接方式

本项目使用的钱包操作方案也是不同的,也尽可能的为大家展示了不同用法:

  • 如BTC、USDT,使用的自建全节点,现在差不多需要300G硬盘空间;
  • 如ETH,使用的是自建轻节点(参考文章),因为全节点需要硬盘空间太大;
  • 如BCH、BSV等,使用的是第三方区块链浏览器获取数据;
  • 如XRP,官方就已经提供了访问区块数据的接口(Ripple API GitHub地址

image.png