您好!欢迎来到源码码网

Crypto-Exchange / Coin-Exchange区块链BTC|ETH|数字货币交易所源码介绍

  • 源码教程
  • 来源:源码码网
  • 编辑:admin
  • 时间:2021-11-04 18:24
  • 阅读:1918

简要介绍

本项目是基于Java(SpringCloud)开发的比特币交易所 | BTC交易所 | ETH交易所 | 数字货币交易所 | 交易平台 | 撮合交易引擎。本项目基于SpringCloud微服务开发,可用来搭建和二次开发数字货币交易所,有完整的系统组成部分。

  • 撮合交易引擎

  • 后台管理(后端+前端)

  • 前台(交易页面、活动页面、个人中心等)

  • 原生安卓APP源码

  • 原生苹果APP源码

  • 币种钱包RPC源码

新项目优点

  • 全新UI版面

  • 支持49国语言

  • 支持54种货币汇率

  • 全新K线组件

  • 等等等各种,可以自己对比着老版的看看。

后端的改造更多,不一一列出。

新版闭源系统PC演示

http://118.25.133.182:84/#/

老版系统PC演示

http://118.25.133.182/

虽然说是演示的,但其实并不是专门用来给大家演示的,而是给我自己开发用的。所以请不要乱动数据,这样会导致脏数据,我开发的最新成果一般都会反应到这个站上。你本周看到的页面,可能下周就不一样了,一直在优化,一直在开发新功能。

2020/11/07 稳定版更新公示

  • 新增 期权合约 Android App

  • 新增 阿里云&赛邮(短信&邮件)支持

  • 新增 Link & YFI钱包RPC支持

  • 新增 Api模块(进度:80%)

  • 新增 超机器人增加跟随型趋势设置

  • 新增 PC端白蓝版

  • 新增 基础版手机端H5页面支持

  • 新增 Android App去除第三方K线插件(改为自研K线模块)

  • 新增 永续合约 IOS App(感谢nomo)

  • 新增 双端APP多语言(中英)支持

  • 修复 币币交易Websocket行情推送卡顿

  • 修复 IOS App兼容IOS 13颜色设置

  • 修复 升级OmniUSDT版本至0.8.0,解决部分节点接口过时问题

  • 更新 安装部署文档新增2节

2020/09/08 稳定版更新公示

  • 新增 永续合约后端

  • 新增 永续合约PC用户端

  • 新增 永续合约PC管理端

  • 新增 永续合约 Android App

  • 新增 预测合约后端

  • 新增 预测/期权合约PC用户端

  • 新增 预测/期权合约PC管理端

  • 新增 Android APP白色版

  • 新增 IOS App白色版

  • 修复 12个BUG(非重大)

  • 优化 33个UI细节

  • 优化 安装部署文档新增3节

白色版截图预览: 输入图片说明

特色

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

声明一:我已在新公司上班,一些说明性的东西我会抽空在这里更新,以方便大家编译、搭建、开发
声明二:APP源码及交易机器人源码未开源,有需要的添加QQ:540383622
声明四:请不要用本开源代码直接搭建交易所!本源码尚有一些隐藏BUG,仅供学习!否则后果自负!
声明五:本交易所完整源码仅向有技术团队或技术实力的人提供,小白或不同技术的请勿咨询!

部分新功能预览

永续合约 永续合约

二元期权/预测合约 二元期权/预测合约

PC

APP

APP

部署文档(超详细版)

仅限客户使用 输入图片说明

系统架构概要

随便画的几个草图,凑合看吧。。。

整体架构

整体架构

逻辑架构

逻辑架构

部署架构

部署架构

依赖关系

依赖关系

关于SpringCloud

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。 一般而言,一个完整的SpringCloud框架应该如下图所示:

SpringCloud框架图

如果对SpringCloud尚不熟悉,可以先简单学习一下SpringCloud的相关教程,这样再回来看本项目,会更加容易上手。 提醒一下,因为Springcloud框架图中是完整的架构,在开发的时候,我们会适当的裁剪一些内容,从而让开发和部署更加快速,所以有一些出入的地方。

关于撮合交易引擎

本系统对交易队列采用内存撮合的方式进行,以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项目中的撮合逻辑就可以。

关于技术构成

  • 后端:Spring、SpringMVC、SpringData、SpringCloud、SpringBoot

  • 数据库:Mysql、Mongodb

  • 其他:redis、kafka、阿里云OSS、腾讯防水校验

  • 前端:Vue、iView、less

实际演示网站

https://www.bizzan.com

这个是给客户做的,但是后来客户不运营了,所以遗留了这个网站,因为我没有服务器权限,所以这个网站随时可能无法访问。

搭建起来一个测试站点需要购买好几台云服务器,成本较大,所以我自己没有搭建测试站,但是系统是完整的,经过了将近一年的商用及实际运营考验。

关于交易机器人
交易机器人是自动交易的程序,可以根据外部行情,自动进行交易,让本交易所的交易对价格与外部保持一致,防止因部分用户“搬砖”导致的损失。

关于搬砖
例如A交易所BTC价格是10000USDT,而B交易所的BTC价格是9500USDT,搬砖就是在B交易所通过9500USDT的价格买入BTC,然后转账到A交易所,赚取差价(500USDT)。
如果交易所没有交易机器人,就会导致本交易所的币种价格与其他主流交易所相比有差价,从而让用户“搬砖”,导致交易所损失。
另外,交易机器人还有一个功能,就是在交易所初期运营的时候,形成一个初期的交易深度,不会让用户觉得交易所冷清,没有用户。

我本人是Java程序员,对移动端开发不太了解,所以包调试安装实际上也是我付费请别人帮忙的。

如果你没有技术人员,我可以帮助你搭建一套完整的交易所系统,但是需要你请一到两名维护人员,因为系统的稳定运行少不了运维人员。

==============================================

系统运行环境

  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

└─———bitcoin

└─———bsv

└─———btm

└─———eos

└─———erc-eusdt

└─———erc-token(可对接各种ERC20币种)

└─———eth

└─———ltc

└─———usdt

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. 运行自动交易机器人程序(本部分代码未上传,但不影响)

  19. 运行Admin项目(该服务并不依赖其他服务,因此也可只运行此项目,直接查看后台)

注意事项

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

java -jar -Xms128m -Xmx128m -Xmn200m -Xss256k  admin-api.jarjava -jar -Xms512m -Xmx512m -Xmn200m -Xss256k  cloud.jarjava -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. 矿机活动模式(支持用户抵押一定数量的币种,由官方承诺每月返还一定数量的币种)

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

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

核心功能说明(管理端)

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

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

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

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

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

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

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

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

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

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

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

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

关于区块链钱包对接

本项目提供两种钱包对接方式,一种是自建节点+区块链浏览器的方式,另一种是第三方钱包对接方式。如果你想使用自建节点或区块链浏览器,你直接使用00_framework中的代码进行编译即可。如果你想使用第三方钱包对接,你可以下载07_Uduncloud文件夹的优盾钱包的项目文件,把他们复制到00_framework中即可。

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

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

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

  • 如BTC、USDT,使用的自建全节点,现在差不多需要300G硬盘空间;

  • 如ETH,使用的是自建轻节点(参考文章),因为全节点需要硬盘空间太大;

  • 如BCH、BSV等,使用的是第三方区块链浏览器获取数据;

  • 如XRP,官方就已经提供了访问区块数据的接口(Ripple API GitHub地址)

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

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

充值逻辑

系统展示(PC前端)

首页

币币交易

法币交易

登录

活动/创新实验室

创新实验室详情

推广合伙人

公告

帮助

系统运行展示(APP前端)

区块链交易所数字货币交易所

数字货币数字货币

区块链区块链

邀请管理

手机Web端部分页面

APP下载

抢红包

活动/创新实验室

系统运行展示(后端)

登录

首页

用户管理

邀请管理

法币交易订单管理

首页Banner管理

交易对管理

活动管理

红包管理

币种管理

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

APP下载图片示例

区块链 区块链 区块链 区块链 输入图片说明


特别声明:
1、如无特殊说明,内容均为本站原创发布,转载请注明出处;
2、部分转载文章已注明出处,转载目的为学习和交流,如有侵犯,请联系客服删除;
3、编辑非《源码码网》的文章均由用户编辑发布,不代表本站立场,如涉及侵犯,请联系删除;
全部评论(0)
推荐阅读
  • 常用测试压力工具使用介绍
  • 常用测试压力工具使用介绍
  • ab 是 ApacheBench 工具的缩写,它是一个HTTP压力测试工具。让我详细说明如何测试:1. 安装ApacheBenchWindows系统:方法一:安装XAMPP或WAMP(自带ab)下载地址:https://www.apachefriends.org/zh_cn/index.html安装后,ab工具在:C:xamppapacheinab.exe方法二:使
  • 开发工具
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-13 20:27
  • 阅读:56
  • 工程项目一体化自动管理软件解决方案
  • 工程项目一体化自动管理软件解决方案
  • 1.项目概述1.1项目背景在工程建设行业数字化转型浪潮下,传统项目管理面临信息孤岛、协同困难、进度不可控、成本超支等痛点。本方案旨在构建一个覆盖工程项目全生命周期、全参与方、全业务流程的一体化智能管理平台。1.2解决方案愿景打造数据驱动、智能协同、风险预警、自动执行的工程大脑,实现:管理流程自动化率≥80%项目协同效率提升40%成本偏差率降低至±3%以内安全事故发生率降低60%1.3目标用户矩阵┌───────────────┬
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 11:26
  • 阅读:169
  • 车辆管理系统需求文档与技术架构PC端+小程序
  • 车辆管理系统需求文档与技术架构PC端+小程序
  • 第一部分:需求文档1.项目概述1.1项目背景为企事业单位、车队运营商、租赁公司等提供一套完整的车辆全生命周期管理解决方案,实现车辆管理数字化、智能化。1.2项目目标建立车辆从购置到报废的全流程管理体系实现用车申请、调度、监控、结算的闭环管理通过数据分析优化车辆使用效率降低车辆运维成本20%以上1.3用户角色矩阵┌──────────────┬─────────────────────────────┬──────────────
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 11:11
  • 阅读:157
  • 智慧农业/渔业物联网系统需求文档
  • 智慧农业/渔业物联网系统需求文档
  • 智慧农业/渔业物联网系统需求文档文档版本: V1.0项目目标: 构建一个集环境智能监测、设备自动化控制、生长模型分析、溯源管理与远程指挥于一体的综合物联网管理平台,实现降本增效、提质增产、风险预警与品牌增值。1.系统总体概述1.1核心价值: 数据驱动决策,解放人力,实现农业/渔业生产的精准化、自动化与智能化。1.2用户角色:生产员/养殖员: 现场巡视、接收告警、执行设备手动控制、查看实时环境
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 11:04
  • 阅读:68
  • 程序员AI编程工具推荐
  • 程序员AI编程工具推荐
  • AI编程工具是当前开发者的“副驾驶”,能够极大提升开发效率。以下我将从通用型、代码专用型、垂直领域型以及开源/自部署型几个维度为您分类推荐,并附上它们的核心特点和适用场景,帮助您选择。一、通用型AI对话助手(编程是核心能力之一)这类工具本质是“更懂代码的ChatGPT”,适合处理广泛的编程问题、解释代码、生成文档等。ChatGPT(GPT-4/4o)简介:行业标杆,尤其在GPT-4版本下,代码理解和生成能力极强。优点:上下文能力强,
  • 源码教程
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 10:56
  • 阅读:96
联系客服
源码代售 源码咨询 技术开发 联系客服
029-84538663
手机版

扫一扫进手机版
返回顶部