Skip to content

PleasureDAO/CoinTrade

 
 

Repository files navigation

Crypto-Exchange / Coin-Exchange

简要介绍

本项目是基于Java开发的比特币交易所 | BTC交易所 | ETH交易所 | 数字货币交易所 | 交易平台 | 撮合交易引擎。本项目基于SpringCloud微服务开发,可用来搭建和二次开发数字货币交易所,有完整的撮合交易引擎源码、后台管理(后端+前端)、前台(交易页面、活动页面、个人中心等)、原生安卓APP源码(有偿提供)、原生苹果APP源码(有偿提供)、币种钱包RPC源码。

系统架构概要

随便画的一个草图,凑合看吧。。。 Framework整体说明

系统演示视频

PC前端(用户Web端):https://gitee.com/cexchange/CoinExchange/attach_files

手机APP端:https://gitee.com/cexchange/CoinExchange/attach_files

管理后台:https://gitee.com/cexchange/CoinExchange/attach_files

开发参考

开发参考文档:https://gitee.com/cexchange/CoinExchange/blob/master/DEVELOP.md

管理后台截图:https://gitee.com/cexchange/CoinExchange/tree/master/09_DOC/管理后台截图

系统运行环境

  1. Centos 6.8
  2. MySQL 5.5.16
  3. Redis-x64-3.2.100
  4. Mongodb 3.6.13
  5. kafka_2.11-2.2.1
  6. nginx-1.16.0
  7. JRE 8u241
  8. JDK 1.8
  9. Vue
  10. Zookeeper

文件目录说明

00_framework

└─———admin 后台管理API

└─———bitrade-job 任务管理

└─———chat OTC聊天

└─———cloud SpringCloud微服务管理

└─———core 核心

└─———exchange 撮合交易引擎

└─———exchange-api 撮合交易API

└─———exchange-core 撮合交易核心

└─———jar 第三方类库

└─———market 市场行情API、K线生成

└─———otc-api OTC交易API(如无需otc功能可不启动)

└─———otc-core OTC核心

└─———sql SQL脚本

└─———ucenter-api 用户个人中心API

└─———wallet 钱包资产管理,负责与RPC对接

01_wallet_rpc

└─———act

└─———bch

└─———bitcoin

└─———bsv

└─———btm

└─———ect

└─———eos

└─———erc-eusdt

└─———erc-token

└─———eth

└─———eth-support

└─———lib

└─———ltc

└─———rpc-common

└─———usdt

└─———xmr

02_App_Android

03_App_IOS

04_Web_Admin

05_Web_Front

使用教程

  1. 准备mysql数据库,创建名称为“xxxx”的数据库
  2. 准备redis缓存数据库
  3. 准备kafka流式处理环境(先配置运行zookper,接着配置运行kafka)
  4. 准备mongodb数据库环境,创建用户admin、xxxx,创建bitrade数据库
  5. 准备阿里云OSS(修改项目中需要配置的地方)
  6. 准备nginx,修改配置文件(可选,正式上线需配置)
  7. 修改framework代码中的配置文件为准备环境配置参数
  8. 编译生成jar可执行文件
  9. 运行cloud.jar(微服务注册中心)
  10. 运行exchange.jar(撮合交易引擎)
  11. 运行market.jar(行情中心,需要等待Exchange.jar完全启动)
  12. 运行ucenter.jar(用户中心)
  13. 运行其他模块(wallet.jar、chat.jar、otc-api.jar等)
  14. 打开mysql,导入framework代码中的sql文件夹中xxxxxxx.sql文件,注意,trigger的sql如果报错,需要针对wallet表添加trigger
  15. 运行前端vue项目
  16. 运行后端vue项目
  17. 运行钱包RPC
  18. 运行自动交易机器人程序(本部分代码未上传,但不影响)

技术支持

本数字货币交易系统系我所在公司为交易所开发的项目,该交易所因团队原因已停止运营,我司也已于2月解散。因我参与项目时,负责整体研发管理、架构设计以及客户对接,所以掌握所有代码。

本系统在功能使用上有一些需要特别注意的地方,例如新建交易对以后的其他操作,操作不当会引起数据紊乱的错误出现。

本人可提供有偿技术帮助与使用培训指导!

联系QQ:575822449

关于移动端源码与交易机器人源码

Android源码、IOS源码、交易机器人源码有偿提供,需要的加QQ:575822449

Android源码:10000(不包调试安装)、50000(包调试安装)

IOS源码:15000(不包调试安装)、80000(包调试安装)

交易机器人源码:10000(不包调试安装)、30000(包调试安装)

移动端源码基本上高手很容易调试安装成功,如果不太会的,可以选择让我帮助。

注意事项

当内存不足时,在linux控制台输入top可以查看java进程占用了大量内存(一个java进程占用1G以上),因为有很多jar包需要运行,所以需要控制某些jar包使用的内存,你可选择几个不怎么耗费资源的项目,如下:

java -jar -Xms128m -Xmx128m -Xmn200m -Xss256k admin-api.jar

java -jar -Xms512m -Xmx512m -Xmn200m -Xss256k cloud.jar

java -jar -Xms512m -Xmx512m -Xmn200m -Xss256k wallet.jar

关于邮件&短信

  1. 本系统支持邮件、短信发送系统运营状态
  2. 系统通知/报警支持:用户注册、用户认证、用户充值/提现、币种RPC运行状态、系统资源使用监控等24种监控

关于数据库脚本的问题

有朋友反映没有完整的SQL文件,这是因为编译成功的Jar,首次运行后会自动将Entity映射成数据库结构,项目中的SQL只是完成一些Springcloud无法完成的数据库结构。 数据库自动生成配置位于application.properties配置文件:

#jpa

spring.jpa.show-sql=true

spring.data.jpa.repositories.enabled=true

spring.jpa.hibernate.ddl-auto=update

spring.jpa.hibernate.ddl-auto=update 这个配置会自动更新数据库结构。

核心功能说明(用户端)

  1. 注册/登录/实名认证/审核(目前仅支持手机,二次开发可加入邮件,很简单)

  2. Banner/公告/帮助/定制页面(Banner支持PC与APP分开设置,帮助支持各种分类模式)

  3. 法币C2C交易/法币OTC交易(支持两种法币模式,项目早期可由平台承担C2C法币兑换,后期可开放OTC交易)

  4. 币币交易(支持限价委托、市价委托,二次开发可加入其它委托模式)

  5. 邀请注册/推广合伙人(支持对邀请推广人数、佣金进行以日、周、月的排行统计)

  6. 创新实验室(该部分支持功能较多,分项说明。另,APP暂不全部支持该功能)

6-1. 首发抢购活动模式(如发行新交易对时,可对交易对设置一定数量的币种进行抢购)

6-2. 首发分摊活动模式(如发行BTC/USDT交易对之前,官方拿出5BTC做活动,根据用户充值抵押的USDT多少进行均分BTC)

6-3. 控盘抢购模式(如发行ZZZ/USDT交易对之前,ZZZ币种价格为5USDT,官方发行活动价为0.5USDT,则可使用该模式)

6-4. 控盘均摊模式(如6-3,只不过平均分配)

6-5. 矿机活动模式(支持用户抵押一定数量的币种,由官方承诺每月返还一定数量的币种)

  1. 红包功能(支持平台及官方发放一定数量币种的红包,此功能适合用户裂变)

  2. 用户资产管理、流水管理、委托管理、实名管理等各种基础管理

核心功能说明(管理端)

  1. 概要(查看平台运行数据,包含交易额、注册人数、充值等)

  2. 会员管理(会员信息管理、会员实名审核、会员实名管理、会员余额管理、会员充值/冻结余额等)

  3. 邀请管理(会员邀请信息、会员邀请排行管理)

  4. CTC管理(CTC订单管理、流水管理、承兑商管理)

  5. 内容管理(PC广告管理、APP广告管理、公告管理、帮助管理)

  6. 财务管理(充值提现管理、财务流水管理、对账管理、币种钱包余额管理)

  7. 币币管理(新建交易对、管理交易对、新建交易机器人、设置交易机器人参数、设置行情引擎/交易引擎、撤销所有委托)

  8. 活动管理(新建活动、矿机认购、抢购/瓜分管理)

  9. 红包管理(平台红包管理、用户红包管理)

  10. 系统管理(角色管理、部门管理、用户管理、权限管理、币种管理、RPC管理、版本管理)

  11. 保证金管理(此功能设计时考虑到,但实际运营期间未使用到)

  12. OTC管理(广告管理、订单管理、OTC币种管理、退保管理等,此功能未获得实际运营检验)

关于区块链钱包对接

当你拿到代码以后,对本项目进行调试运行期间,可不连接区块链节点,这并不会有太大的影响;即使不连接区块链节点,你也可以部署其一个具有撮合交易功能的交易平台(只是用户无法通过钱包地址充值而已)。

当你渐渐熟悉整套系统,同时对区块链运行原理、节点搭建、区块链浏览器有一定基础储备后,就可以开始对 01_wallet_rpc 文件夹下的项目进行研究。每个币种对应不同的数据访问方式,大部分区块链项目的钱包操作方式是相同的或十分相似的,比如BTC、LTC、BCH、BSV、BCD等比特币衍生币,其API操作方式几乎一样;再比如ETH,当你掌握一个合约币种的操作,其他基于ETH发行的数字货币的操作方式几乎一样。所以,基本上当你花时间弄懂了一个,就懂了一堆币种。

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

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

一般而言,当交易所来往资金量不大的时候,你可以自己摸索,但是当交易所资金量大了以后,如果你对自己操作钱包不太放心,你也可以使用第三方的钱包服务,当然,这需要你与钱包服务商进行谈判,付个年费什么的。

下图是用户充值监控逻辑的简要说明图,简单看看就行:

充值逻辑

系统展示(PC前端)

首页

币币交易

法币交易

登录

活动/创新实验室

创新实验室详情

推广合伙人

公告

帮助

系统运行展示(APP前端)

首页

行情

K线

交易

个人中心

个人资产管理

邀请管理

手机Web端部分页面

APP下载

抢红包

活动/创新实验室

系统运行展示(后端)

登录

首页

用户管理

邀请管理

法币交易订单管理

首页Banner管理

交易对管理

活动管理

红包管理

币种管理

OTC管理,后端开发完成,前端未对接

APP下载图片示例

输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明

特别注意

任何使用本源码从事商业活动,对别人和自己造成损失的,本人概不负责!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 49.9%
  • Vue 33.3%
  • CSS 9.5%
  • JavaScript 6.9%
  • HTML 0.2%
  • FreeMarker 0.2%