区块链交易所针对撮合技术发展,现阶段撮合技术性关键是以数据库系统撮合技术性向运行内存撮合技术发展趋势,主要是因为数据库系统撮合技术性愈来愈不能满足高频交易针对可靠性高、性能卓越、强安全系数、扩展性及其易维护性的需要。文中就码云上开源系统的虚拟货币交易所源代码——CoinExchange开展撮合交易软件的理解。
更多区块链项目开发还请关注区块链项目开发
系统总体设计
2.1层级设计方案
一般而言,数字货币交易所买卖交易撮合系统内包含以下几种关键控制模块:
■客户:客户授权委托价格与总数,形成订单信息发送到平台交易。
■网关ip:承担搜集客户订单信息,并把它派发送给撮合模块。
■撮合模块:买卖系统中关键一部分,用以接受订单信息并依据领域模型完成订单信息,撮合与此同时形成交易明细,接着给与客户买卖信息反馈。
■市场行情模块:接受撮合买卖模块的处置结果,将撮合买卖交易数据持久化到数据库系统,与此同时按时形成多周期的K线信息(开盘价格、收盘价格、成交量、最高成交价、最低价位)。
■数据库系统:用于储放交易中订单和交易明细,完成数据持久化。
除此之外,文中依据不同种类的数字货币交易商品(现货交易、合同、期货交易、杆杠)将撮合模块划分为多个业务流程系统分区,每一个系统分区单独开展撮合,彼此之间影响不大。此章的总体方案设计紧紧围绕撮合模块层及其撮合模块与网关层、数据库系统层交互技术的总体方案设计。
2.2撮合买卖优化算法
如下图2.1所显示,撮合模块的关键业务模块便是撮合买卖优化算法撮合买卖算法的每日任务一方面是实现对客户所下订单开展公平公正的排序和撮合作用,也要确保撮合算法的公平公正、精确性及其可扩展性等。因为不一样金融投资全面的撮合业务流程各不相同,因而这节对通用撮合买卖优化算法开展抽象性叙述。
2.3订单信息序列
撮合买卖不可或缺的一部分便是交易订单信息,根据对交易订单信息开展撮合最终产生交易明细。因此对没法马上进行撮合订单,必须要有买进序列和售出序列储存订单信息。序列依照“价高者得、同价位下时长优先选择”原则。买进序列依照委托价格由低到高顺序,售出序列将依据委托价格由低到高的排列顺序,如下图2.2所显示:
作为一名资深区块链交易所开发者,在区块链交易所有多年开发经验,从总体设计入手,将撮合业务处理从数据库迁移至内存中,同时釆用多机热备份技术解决内存撮合技术的易失性问题,最终提出内存状态机复制方案作为高可靠髙性能撮合系统的实现路线。撮合技术的具体实现将在下一章进行详细论述。