《JAVA全系列》
项目简介:
开源数字货币交易所,基于Java开发的比特币交易所 ,包含BTC交易所、ETH交易所、数字货币交易所、交易平台、撮合交易引擎等核心模。项目技术采用业界流行、社区非常活跃的开源组件Spring Cloud Alibaba来构建我们的交易系统,是行业第一家基于Alibaba技术的大型项目,也是Spring Cloud的实践之一。近年来, 我国在CBDC的研究和测试工作走在全球前列,并且十分坚定推进该项工作。研究机构认为成本优势决定了DC/EP是否会被广泛接受,支持混合技术架构意味着围绕DC/EP 有望诞生更多的应用创新场景。在短期主要是金融基础设施的建设,在长期有望催生开放银行、物联网支付等更大规模的建设需求。其中银行IT厂商和提供身份认证的安全厂商主要受益。学习完本项目,大家将对云架构、区块链、法定数字货币、金融科技以及货币发展有自己更深入的认识和理解,为以后20年中国CDBD的研究和发展 作出自己的贡献,同时也为争取40w的年薪增加一份可靠的技术保障!
适合对象:
1、 在职程序员的自我提升
2、 有SSM/Spring Boot/Mybatis 基础的学员
3、 有VUE/React的基础的学员
4、 有Docker、ECS 运维基础的学员
技术选型:
1、 后端技术
Spring Cloud Alibaba + Spring Boot + Mybatis Plus + Elasticsearch + Kafka + Mongodb + Zookeeper + RocketMQ + OAuth2、0 + Jwt + Redis + Hutool + Orika + Fst + Swagger-ui + Mycat + Docker + ECS + OSS + 腾讯防水墙
2、 前端技术
Vue + + iView + less + axios
项目的核心功能模块:
1、 注册/登录/实名认证/审核(目前仅支持手机,二次开发可加入邮件,很简单)
2、 Banner/公告/帮助/定制页面(Banner支持PC与APP分开设置,帮助支持各种分类模式)
3、 法币C2C交易/法币OTC交易(支持两种法币模式,项目早期可由平台承担C2C法币兑换,后期可开放OTC交易)
4、 币币交易(支持限价委托、市价委托,二次开发可加入其它委托模式)
5、 邀请注册/推广合伙人(支持对邀请推广人数、佣金进行以日、周、月的排行统计)
6、 创新实验室(该部分支持功能较多,分项说明。)
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、 撮合交易引擎
本系统对交易队列采用内存撮合的方式进行,以Kafka做撮合订单信息传输,MongoDB持久化订单成交明细,MySQL记录订单总体成交。 其中Exchange项目主要负责内存撮合、Market项目主要负责订单成交持久化、行情生成、行情推送等服务,包括:
1.1 K线数据,间隔分别为:1分钟、5分钟、15分钟、30分钟、1小时、1天、1周、1月
1.2 所有交易对的市场深度(market depth)数据
1.3 所有交易对的最新价格
1.4 最近成交的交易对
1.5 内存撮合交易支持的模式
1.6 限价订单与限价订单撮合
1.7 市价订单与限价订单撮合
1.8 限价订单与市价订单撮合
1.9 市价订单与市价订单撮合
2、 金融交易钱包对接
本项目提供两种钱包对接方式,一种是自建节点+区块链浏览器的方式,另一种是第三方钱包对接方式。如果你想使用自建节点或区块链浏览器,你直接使用framework中的代码进行编译即可。如果你想使用第三方钱包对接,你可以下载Uduncloud文件夹的优盾钱包的项目文件,把他们复制到framework中即可。
章节2_:环境的搭建 |
01_环境搭建课程简介简介 |
02_服务器的准备 |
03_Mysql_Redis_软件的安装 |
04_RockerMQ软件的安装 |
05_Mongo_Nacos_Sentinel_Seata软件的安装 |
06_项目的创建和管理 |
07_前端的运行 |
08_数据库的导入 |
09_YApi的搭建 |
10_项目的接口文档导入 |
章节3:_架构设计和模块搭建 |
01_大纲_架构设计 |
02_模块的简介 |
03_模块的创建 |
04_依赖管理关系的解决 |
05_添加项目的打包方式_代码的提交 |
章节4:IASS基础服务的搭建和开发 |
01_课程大纲的设计 |
02_网关基础设施的搭建 |
03_Sentinel_SpringCloudGateway整合 |
04_使用Nacos持久化配置 |
05_使用SentinelDashboard |
06_Authorization_Servrer的搭建完成 |
07_使用Reids共享Token |
08_资源服务器和授权服务器的交互 |
09_使用JWT来存储Token |
10_在网关里面校验用户token |
11_管理员的登录接入 |
12_PasswordEncoder的使用 |
13_用户的登录实现 |
14_Refresh_token的实现 |
15_Token的传递和客户端授权 |
章节5:微服务公共依赖common的搭建 |
01_课程设计_common模块配置的写法 |
02_Swagger自动装配 |
03_常量_公共的模型对象_WebLog切面 |
04_Web全局异常的处理 |
05_MybatisPlus常用对象的介绍 |
06_CoinCommon测试_Swagger_WebLog |
07_日期格式化_RedisTemplate |
08_Redis_JetCache测试 |
章节6:服务中台_后台管理系统的开发 |
01_后台管理系统的简介_代码生成器安装 |
02_代码的生成_admin-service代码完善_启动 |
03_登录前端分析_后台代码的实现_1 |
04_登录的实现_2_远程调用_jwt解析 |
05_登录的实现_3_菜单数据的查询 |
06_登录的持续改进 |
07_权限数据的CURD |
08_MybatisPlus的自动填充功能 |
09_角色管理 |
10_角色权限的展示 |
11_角色授予的展示 |
12_员工的查询操作 |
13_员工的新增和删除 |
14_系统日志的记录 |
15_公告管理 |
16_文件上传完成 |
17_公告管理的新增和修改 |
18_资源配置管理 |
19_客户工单完成 |
20_公司银行卡管理完成 |
21_参数配置管理 |
章节7:服务中台_会员系统的开发 |
01_会员系统的搭建和访问测试 |
02_会员列表的查询 |
03_会员的修改 |
04_会员详情_银行卡查询_银行卡修改 |
05_会员钱包地址_提币地址_用户邀请列表 |
06_用户的审核信息查询 |
07_用户的审核 |
08_极验_账号准备 |
09_极验加载 |
10_登录的实现 |
11_极验数据的二次验证 |
12_会员详情_实名认证_上 |
13_会员的实名认证_下 |
14_高级认证状态回显 |
15_OSS_Web直传身份证信息 |
16_高级实名认证实现 |
17_短信的发送_上 |
18_短信的完善_下 |
19_用户修改手机号 |
20_登录密码_交易密码_重置密码_上 |
21_登录密码_交易密码_重置密码_下 |
22_用户邀请列表的查询 |
23_银行卡的查询和绑定 |
24_后台管理系统远程调用会员系统 |
25_用户的注册 |
26_密码的重置 |
章节8:服务中台_财务系统的开发 |
01_财务系统的简介和搭建 |
02_货币类型的CURD |
03_数字货币分页查询 |
04_数字货币的装修修改_数据回显 |
05_归集地址的查询 |
06_数字货币的新增操作 |
07_数字货币的配置的新增操作 |
08_GCN充值记录的查询 |
09_GCN提现记录的查询 |
10_充币_提币记录的查询 |
11_流水记录的查询 |
12_充值记录的导出 |
13_提现记录的导出 |
14_场外交易充值审核 |
15_场外交易提现审核 |
16_GCN资产查询 |
17_GCN买入和卖出记录查询操作 |
18_GCN的买入 |
19_GCN的卖出 |
20_账号的扣减 |
21_提现地址的查询和新增 |
22_提现地址的删除 |
23_用户充币和提币记录的查询 |
章节9:服务中台_交易系统的开发 |
01_交易系统的简介_搭建_运行 |
02_交易对的分页查询 |
03_交易区域的新增_修改_状态的修改 |
04_市场的查询操作 |
05_市场的新增操作 |
06_市场的修改操作 |
07_市场的全查询 |
08_banner加载 |
09_前台公告的展示 |
10_工单系统的查询 |
11_交易区域和市场的展示 |
12_个人自选交易数据的查询 |
13_个人收藏和取消 |
14_委托记录查询 |
15_成交记录查询 |
16_个人资产的查询 |
17_个人资产的补充 |
18_充币和提币的说明 |
19_交易对资产的查询 |
20_交易对历史记录查询 |
21_未完成委托单的记录查询 |
22_深度数据的查询 |
23_成交数据的查询 |
24_创建委托单的操作 |
章节10:服务中台_撮合引擎的开发 |
01_撮合的简介 |
02_SpringBoot集成Disruptor |
03_RocketMQ的集成 |
04_委托单记录本的数据结构设计 |
05_交易对的加载 |
06_交易策略工厂 |
07_并发的思路 |
08_数据的流转测试 |
09_使用Controller观察数据 |
10_在交易引擎里面发送消息测试 |
11_撮合交易 |
12_订单的匹配 |
13_数据的发送 |
14_盘口的插入和取消操作 |
15_小bug的发现 |
16_盘口记录的查询 |
17_撮合完成后更新账户 |
18_余额返回的说明 |
19_委托单的取消 |
章节11:服务中台_推送服务的开发 |
01_推送服务的搭建 |
02_整合RocketMQ |
03_和前端的适配完成 |
章节12:服务中台_定时任务 |
01_项目的简介和启动 |
02_事件的定义_MQ发送到队列里面 |
03_盘口深度数据 |
04_K线的构造和推送 |
05_K线的生成 |
06_从撮合引擎里面获取交易数据 |
07_市场的趋势数据查询 |
08_市场详情数据的推送 |
09_交易对成交记录的数据的处理 |
10_行情K线的生成 |
11_将所有的交易对小写 |
12_启动任务服务 |
13_实现任务服务里面的接口_盘口数据的查询操作 |
14_盘口数据的推送测试 |
15_K线的查询和推送 |
16_其他的2个推送 |
另附各章节课程资料