钱包节点搭建(filecoin钱包节点搭建)
前言
部门领导让我研究数字货币交易所的开发技术,今天好不容易把码云(Gitee)上开源数字货币交易所CoinExchange的代码编译成功并搭建出来了,在排查问题的过程中,不断的查看代码以及使用到的技术,因此对系统的整个架构有了一定的初步认识,这里做个笔记记录一下。
系统整体架构
这是开源项目CoinExchange上作者放的一张逻辑架构图,猛一看其实没什么感觉,但是当我通过代码层级的阅读,以及各种软件的安装,对这个图的认识更加深刻了。
![开源数字货币交易所开发学习笔记(1)——系统架构](https://www.ykjwk.com/uploadfile/202305/6504835f3957668.jpg)
数据存储
首先,我们从数据存储这一块看,该项目使用了三种数据存储方式,另外还有一个数据存储是内存,在撮合交易引擎中,直接通过Java的并发链表存储的。
![开源数字货币交易所开发学习笔记(1)——系统架构](https://www.ykjwk.com/uploadfile/202305/24746b09d6019a1.jpg)
MySQL主要存储业务数据,一共有65张表。
MongoDB主要存储委托成交明细和K线数据(成交量、成交价),如下所示是K线数据,按照一定的时间周期统计所得。
![开源数字货币交易所开发学习笔记(1)——系统架构](https://www.ykjwk.com/uploadfile/202305/f0f230966263621.jpg)
消息通讯
因为项目是基于SpringCloud微服务架构开发,所以这套交易系统有很多的服务,这些服务之间的通信本可以通过Euruka服务注册中心调用相应的服务,但是这套系统使用了Kafka,Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。大概是因为交易系统中对委托的处理需要非常迅速的处理能力和稳定性,所以这个项目使用了Kafka。
![开源数字货币交易所开发学习笔记(1)——系统架构](https://www.ykjwk.com/uploadfile/202305/5f2dac963e5c7af.jpg)
通过代码层面,可以看到,用户通过Exchange-api服务下单以后,它会将委托订单保存到数据库,同时会把委托订单发送到Kafka,通过Kafka传送给消费者Exchange(撮合引擎),当Exchange(撮合引擎)完成撮合以后,它会将委托成交明细发送给Kafka,接着由消费者Market(行情引擎)完成数据的存储(持久化)。
这样的设计可以让Exchange(撮合引擎)只需要专心处理撮合就可以,也能够充分发挥它的性能。
前后端分离
整套系统的前端与后端完全分离开,这是比较主流的开发方式,可以让后端开发人员与前端开发人员各自专注于自己的业务实现。目前可以看到前端主要有四个:用户PC端、用户Android端、用户IOS端、管理员PC端。它们都是通过Api与服务对接,传输数据是通过Json。
![开源数字货币交易所开发学习笔记(1)——系统架构](https://www.ykjwk.com/uploadfile/202305/b0b0dd769f59.jpg)
作为饱受上面代码的受害者,前后端分离的设计可以说是解放了我们这些程序员。
区块链钱包接口
项目中对每个币种的RPC接口做了一层抽象,作为抽象层的wallet项目,屏蔽了不同币种的对接问题,区块链钱包节点的RPC调用方式千奇百怪,项目中通过wallet把生成地址、扫块、充值监控、余额归集等操作抽象出来,当我们想接入新的币种的时候,只需要对Wallet-RPC-XXX项目进行复制粘贴就可以了。
![开源数字货币交易所开发学习笔记(1)——系统架构](https://www.ykjwk.com/uploadfile/202305/1ac507b2b5439c5.jpg)
前端技术实现
前端作者也用了比较流行的vue框架,对前端项目实现了很好的MVC解耦,开发人员不用频繁的操作html元素,只需要专注于对数据的处理就可以了,让前端的开发可以变得很优雅。比如下面,我截取了一段代码:
![开源数字货币交易所开发学习笔记(1)——系统架构](https://www.ykjwk.com/uploadfile/202305/22b360ff7faeb16.jpg)
交易机器人
从作者的架构图可以看出来,交易机器人通过同步获取到了各大交易所的交易数据,进而在自身交易所种绘制相应的K线,在我跟作者的沟通过程中,我了解到了机器人的大概设计原理,尤其是其中有很多参数的设计,非常关键,可以让盘面表现出跟大型交易所一样的行情展示效果。
![开源数字货币交易所开发学习笔记(1)——系统架构](https://www.ykjwk.com/uploadfile/202305/dd0eeb0839e7406.jpg)
总结
通过这几天的编译、调试,对整个交易所系统架构有了一定的理解,但是理解的肯定还不够深刻,后面继续学习&分享。
相关内容
相关资讯
-
用友财务报表生成(如何用用友软件生成财务报表)
这是在线使用的云会计财务软件,财务报表自动生成,只需录入凭证后,资产负债表、利润表、现金流量表就会自动计算,实时生成,还有总账、明细账、科目余额表等各类账簿也会实时生成,对于广大会计人员和小企业来说,
-
证券投资中的数学(证券投资中的数学结题报告ppt)
经济学:重理论轻实践,本科很难就业,适合性情沉稳、爱研究、数学、英语功底较好的同学,未来就业方向对院校层次有较高的要求
-
ASD币是哪个交易所的平台币?一文了解AscendEX
被称为「2020最火」的AscendEX不断取得突破,相继为机构启动专线接入服务、上线Staking产品和DeFi挖矿产品、开启BitMax「大航海计划」与100多个头部全球加密社区建立合作关系,并上
-
正规虚拟币平台?正规虚拟币平台排名
虚拟货币投资交易正规平台,国内都有哪些中国最大的虚拟货币交易平台是比特币交易平台,知名度最高的三家是比特币中国、okcoin、火币网
-
方正中期期货if合约多少钱,方正中期期货app下载
方正言文祥E356开机总要按F1怎么办开机需要按下F1键才能进入,主要是因为BIOS中设置与真实硬件数据不符引起的,可以分为以下几种情况:1、实际上没有软驱或者软驱坏了,而BIOS里却设置有软驱,这样
实时快讯
-
2023-09-08虚拟货币差别太大(有什么本质区别吗?)
-
2023-09-08社保基金投资哪些股票了(社保基金投资的股票有哪些)
-
2023-09-08黄金强支撑位(黄金支撑线和压力线的确定)
-
2023-09-08虚拟货币2022牛市行情 什么方向最挣钱?
-
2023-09-08用友代理商 安徽(代理用友软件太难了吧)
-
2023-09-08广西社保年审软件(广西社保认证一年认证几回)
-
2023-09-08庞庄(庞庄小学)
-
2023-09-08北京万达信息股份有限公司(北京万达集团股份有限公司)