CoinExchange 开源数字货币合约交易所,基于 JAVA 开发的比特币交易所 | BTC 交易所 | ETH 交易所 | 数字货币交易所 | 交易平台 | 撮合交易引擎。本项目有完整的撮合交易引擎源码、后台管理(后端+前端)、前台(交易页面、活动页面、个人中心等)、安卓 APP 源码、苹果 APP 源码、币种钱包 RPC 源码。开源项目仅供学习参考,请勿用于非法用途。
特色:
1、基于内存撮合引擎,与传统基于数据库撮合更快
2、前后端分离,基于 Token 的 Api 授权机制
3、基于 SpringCloud 微服务架构,扩展更容易
4、Mysql、MongoDB、Redis 多种数据存储方式,只为更快
5、Kafka 发布订阅消息队列,让订单更快流转
6、主流币种对接区块链接口齐全,开箱即用
7、冷热钱包分离,两种提现方式,保证安全
8、机器人系统,同步行情,维护深度,防止搬砖
9、原生 App,Java 和 ObjectC 提供原生体验
10、交易所设计者提供技术支持,部署+二开无忧
11、支持添加自定义平台币及其他币种
使用教程:
准备 mysql 数据库,创建名称为“xxxx”的数据库
准备 redis 缓存数据库
准备 kafka 流式处理环境(先配置运行 zookper,接着配置运行 kafka)
准备 mongodb 数据库环境,创建用户 admin、xxxx,创建 bitrade 数据库
准备阿里云 OSS(修改项目中需要配置的地方)
准备 Nginx,修改配置文件(可选,正式上线需配置)
修改 framework 代码中的配置文件为准备环境配置参数
编译生成 jar 可执行文件
运行 cloud.jar(微服务注册中心)
运行 exchange.jar(撮合交易引擎)
运行 market.jar(行情中心,需要等待 Exchange.jar 完全启动)
运行 ucenter.jar(用户中心)
运行其他模块(wallet.jar、chat.jar、otc-api.jar 等)
打开 mysql,导入 framework 代码中的 sql 文件夹中 xxxxxxx.sql 文件,注意,trigger 的 sql 如果报错,需要针对 wallet 表添加 trigger
运行前端 Vue 项目
运行后端 vue 项目
运行钱包 RPC
运行自动交易机器人程序(本部分代码未上传,但不影响)
运行 Admin 项目(该服务并不依赖其他服务,因此也可只运行此项目,直接查看后台)
关于数据库脚本的问题
有朋友反映没有完整的 SQL 文件,这是因为编译成功的 Jar,首次运行后会自动将 Entity 映射成数据库结构,项目中的 SQL 只是完成一些 Springcloud 无法完成的数据库结构。 数据库自动生成配置位于 application.properties
配置文件:
spring.jpa.show-sql=true
spring.data.jpa.repositories.enabled=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.ddl-auto=update 这个配置会自动更新数据库结构。
核心功能说明(用户端)
6-1. 首发抢购活动模式(如发行新交易对时,可对交易对设置一定数量的币种进行抢购)
6-2. 首发分摊活动模式(如发行 BTC/USDT 交易对之前,官方拿出 5BTC 做活动,根据用户充值抵押的 USDT 多少进行均分 BTC)
6-3. 控盘抢购模式(如发行 ZZZ/USDT 交易对之前,ZZZ 币种价格为 5USDT,官方发行活动价为 0.5USDT,则可使用该模式)
6-4. 控盘均摊模式(如 6-3,只不过平均分配)
6-5. 矿机活动模式(支持用户抵押一定数量的币种,由官方承诺每月返还一定数量的币种)
核心功能说明(管理端)
国际运营版JAVA区块链交易所源码 币币+法币+永续+期权+机器人