前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数字货币交易所开发常用的7个开源撮合引擎

数字货币交易所开发常用的7个开源撮合引擎

作者头像
用户1408045
修改2019-10-22 10:30:07
8.4K2
修改2019-10-22 10:30:07
举报
文章被收录于专栏:汇智网教程汇智网教程

如果你希望按照自己的需求打造金融交易平台,那么应当选择合适的交易撮合引擎进行二次开发而不是基于完整的交易平台实现进行修改。本文将介绍10个采用不同语言开发的开源的撮合引擎,你可以根据自己的需要选择。

要快速掌握区块链和数字货币应用开发,推荐汇智网的区块链开发系列在线教程。 内容涵盖比特币、以太坊、EOS、超级账本、Tendermint等多种主流区块链 平台,同时支持Java、C#、Python、PHP、JavaScript、Dart等多种开发 语言。

1、Liquibook

Liquibook是OCI提供的开源交易撮合引擎,主要采用C++开发,因此性能极佳:

在这里插入图片描述
在这里插入图片描述

Liquibook的功能很完善,支持市价委托单、限价委托单、止损委托单等常见类型的委托,同时内置多级市场深度聚合功能,并且提供事件通知功能,引擎内发生的重要事件,例如接受订单、成交、取消订单等,应用程序都可以实时捕捉。

Liquibook是一个仅包含头文件的库,因此你只需要在自己的项目中引入这些头文件就可以了。

2、exchange-core

exchange-core是一个基于LMAX Disruptor和Eclipse Collections实现的超快的交易所核心撮合引擎。可以在8年前的硬件上(intel志强x5690 CPU)实现每秒5百万委托账本操作:

rate

50.0%

90.0%

95.0%

99.0%

99.9%

99.99%

worst

125K

0.6µs

0.9µs

1.0µs

1.4µs

4µs

24µs

41µs

250K

0.6µs

0.9µs

1.0µs

1.4µs

9µs

27µs

41µs

500K

0.6µs

0.9µs

1.0µs

1.6µs

14µs

29µs

42µs

1M

0.5µs

0.9µs

1.2µs

4µs

22µs

31µs

45µs

2M

0.5µs

1.2µs

3.9µs

10µs

30µs

39µs

60µs

3M

0.7µs

3.6µs

6.2µs

15µs

36µs

45µs

60µs

4M

1.0µs

6.0µs

9µs

25µs

45µs

55µs

70µs

5M

1.5µs

9.5µs

16µs

42µs

150µs

170µs

190µs

6M

5µs

30µs

45µs

300µs

500µs

520µs

540µs

7M

60µs

1.3ms

1.5ms

1.8ms

1.9ms

1.9ms

1.9ms

在这里插入图片描述
在这里插入图片描述

exchange-core的主要特性包括:

  • HFT优化
  • 内存工作状态
  • 无浮点数计算,不会丢失精度
  • 支持CPU多核并行
  • 采用对象池化降低垃圾回收压力

3、CppTrader

开发语言:C++ 源代码:https://github.com/chronoxor/CppTrader

CppTrader是采用C++开发的一套用于构建高性能交易平台的组件,包括以下内容:

  • 超快的交易撮合引擎
  • 委托账本处理器
  • NASDAQ ITCH 处理器

CppTrader的主要特性包括:

  • 跨平台支持Linux、OSX和Windows
  • 包含详细的使用示例代码和测试用例
  • 支持持续集成

4、GO-matching-engine

开发语言:GO 源代码:https://github.com/fmstephe/matching_engine

这是一款采用GO语言开发的金融交易撮合引擎,非常适合希望深入探究撮合引擎实现的go开发者。

5、viaBTC Exchange Server

开发语言:C 源代码:https://github.com/viabtc/viabtc_exchange_server

viaBTC交易服务器是viabtc开源的代码,它其实是一套基本完整的交易所后台系统,包括撮合引擎、行情服务、历史数据服务以及API服务等多个组件:

在这里插入图片描述
在这里插入图片描述

由于viabtc交易服务器是一个系统,因此部署的复杂性更高一些,你需要MySQL、Redis、Kafka等基础设施,相比于单纯的撮合引擎而言适应不同项目需求的灵活性要弱一些,但好处在于你基本上只需要补充一个前台系统就可以了。

6、LightMatchingEngine

开发语言:Python 源代码:https://github.com/gavincyi/LightMatchingEngine

LightMatchingEngine是一个轻量级的交易撮合引擎,采用Python开发。轻量的意思是其支持的特性有限,但适合希望深入了解交易撮合引擎实现原理的Python开发者利用。

LightMatchingEngine支持Python2.x和Python3.x。

7、orderbook-rs

开发语言:Rust 源代码:https://github.com/dgtony/orderbook-rs

Orderbook-rs是采用Rust开发的交易撮合引擎,适合用于研究交易撮合引擎的实现原理。

orderbook-rs支持的特性包括:

  • 市价委托单
  • 限价委托单
  • 取消限价委托单
  • 部分成交

原文链接:7个开源交易撮合引擎 - 汇智网

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、Liquibook
  • 2、exchange-core
  • 3、CppTrader
  • 4、GO-matching-engine
  • 5、viaBTC Exchange Server
  • 6、LightMatchingEngine
  • 7、orderbook-rs
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档