数字货币交易所源码开发前火币、币安、OKEX等产品系统架构设计指南和规划(1)
147小编
2024-07-12 00:22:16
0

前言

部门领导让我研究数字货币交易所的开发技术,今天好不容易把码云(Gitee)上开源数字货币交易所CoinExchange的代码编译成功并搭建出来了,在排查问题的过程中,不断的查看代码以及使用到的技术,因此对系统的整个架构有了一定的初步认识,这里做个笔记记录一下。

系统整体架构

这是开源项目CoinExchange上作者放的一张逻辑架构图,猛一看其实没什么感觉,但是当我通过代码层级的阅读,以及各种软件的安装,对这个图的认识更加深刻了。

数据存储

首先,我们从数据存储这一块看,该项目使用了三种数据存储方式,另外还有一个数据存储是内存,在撮合交易引擎中,直接通过Java的并发链表存储的。

MySQL主要存储业务数据,一共有65张表。

MongoDB主要存储委托成交明细和K线数据(成交量、成交价),如下所示是K线数据,按照一定的时间周期统计所得。

消息通讯

因为项目是基于SpringCloud微服务架构开发,所以这套交易系统有很多的服务,这些服务之间的通信本可以通过Euruka服务注册中心调用相应的服务,但是这套系统使用了Kafka,Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。大概是因为交易系统中对委托的处理需要非常迅速的处理能力和稳定性,所以这个项目使用了Kafka。

通过代码层面,可以看到,用户通过Exchange-api服务下单以后,它会将委托订单保存到数据库,同时会把委托订单发送到Kafka,通过Kafka传送给消费者Exchange(撮合引擎),当Exchange(撮合引擎)完成撮合以后,它会将委托成交明细发送给Kafka,接着由消费者Market(行情引擎)完成数据的存储(持久化)。

这样的设计可以让Exchange(撮合引擎)只需要专心处理撮合就可以,也能够充分发挥它的性能。

前后端分离

整套系统的前端与后端完全分离开,这是比较主流的开发方式,可以让后端开发人员与前端开发人员各自专注于自己的业务实现。目前可以看到前端主要有四个:用户PC端、用户Android端、用户IOS端、管理员PC端。它们都是通过Api与服务对接,传输数据是通过Json。

作为饱受上面代码的受害者,前后端分离的设计可以说是解放了我们这些程序员。

区块链钱包接口

项目中对每个币种的RPC接口做了一层抽象,作为抽象层的wallet项目,屏蔽了不同币种的对接问题,区块链钱包节点的RPC调用方式千奇百怪,项目中通过wallet把生成地址、扫块、充值监控、余额归集等操作抽象出来,当我们想接入新的币种的时候,只需要对Wallet-RPC-XXX项目进行复制粘贴就可以了。

前端技术实现

前端作者也用了比较流行的vue框架,对前端项目实现了很好的MVC解耦,开发人员不用频繁的操作html元素,只需要专注于对数据的处理就可以了,让前端的开发可以变得很优雅。比如下面,我截取了一段代码:

交易机器人

从作者的架构图可以看出来,交易机器人通过同步获取到了各大交易所的交易数据,进而在自身交易所种绘制相应的K线,在我跟作者的沟通过程中,我了解到了机器人的大概设计原理,尤其是其中有很多参数的设计,非常关键,可以让盘面表现出跟大型交易所一样的行情展示效果。

总结。通过这几天的编译、调试,对整个交易所系统架构有了一定的理解,但是理解的肯定还不够深刻,后面继续学习&分享。

相关内容

开发一个数字货币交易所需要...
开发一个数字货币交易所的费用也是根据多种因素决定的,例如交易所的规...
2024-08-26 01:25:41
全球最大数字货币交易所拟上...
格尔软件、御银股份涨停,高伟达一度大涨15%以上,广电运通涨超5%...
2024-08-26 00:59:41
以下是数字货币交易所的主要...
2.提供市场信息 | 交易所提供实时的市场价格、交易量等信息,帮助...
2024-08-26 00:55:41
了解数字货币交易所
在现实世界中,银行是经过授权的、可以为其客户接受存款、转移资金和储...
2024-08-26 00:50:18
国内币圈交易所排名前十 国...
Bitget 成立于2018年,是全球领先的加密资产交易平台,为全...
2024-08-26 00:25:18
不对啊!前50名数字货币交...
目前,数字货币行业正在从野蛮生长向良性发展演变,数字货币交易所既迎...
2024-08-26 00:23:59

热门资讯

ImtokEN数字货币钱包安全... 受设备和网络安全的影响:软件钱包的安全性取决于用户设备和网络的安全性。硬件钱包提供了最高的安全性,适...
移动用户可通过和包app将北京... 1月10日,中移动金融科技有限公司在京推出和包“小京通-京津冀互联互通卡”交通卡服务,即日起,北京移...
穆长春:基于央行数字货币桥的支... 北京商报讯(记者 刘四红)11月29日,中国人民银行数字货币研究所所长穆长春出席2023中国(深圳)...
原创 ... 数字货币的交易是去中心化的,不依赖于任何中央机构或政府进行发行和管理。1、降低交易成本:传统的跨境支...
狂热升温!Memecoin交易... 智通财经APP获悉,当前,数字资产市场对Memecoin的狂热丝毫没有停止的迹象,其交易量已达到两年...
阿联酋央行向中国支付5000万... 21世纪经济报道记者 陈植 上海报道 央行数字货币(CBDC)的跨境支付又取得新进展。 ...
全球整治数字货币:韩国没收53... 来源:华夏时报 摘要:“近期各国对于加密数字货币市场的清整行动出奇的一致,不仅中国和韩国,此前...
数字货币交易所 数字货币交易所
什么是挖矿病毒?一起来看看~ 科普干货挖矿病毒是什么?一起来看看!虚拟货币挖矿是指利用计算机的算力运行虚拟货币的特殊算法,来锁定虚...
如何正确使用数字货币进行交易? 近日,比特币以比特币的形式被盗。盗取者很可能是一个比特币交易平台工作人员。他并不是为了比特币而盗窃。...