marketmatchengine

market match engine, golang;

dep

  • need golang 1.12, go module,kafka
  • git clone git@github.com:zhangdaoling/marketmatchengine.git
  • cd path
  • go get github.com/stretchr/testify/assert

example

see "TestEngine" in engine/engine_test.go

0.0.0.0 account.jetbrains.com

to do

*行情实现不太好,使用btree(google/btree)替换proprity_queue,行情改为主动推送。

*order进kafka前需要保证唯一性,撮合内部不做去重

*kafka message create timestamp没法设置(研究下kafka这个特性)

*支持取消交易功能

*log

*行情服务:数据流转:撮合行情数据->kafka->websocket。websocket根据时间去重

*清算服务:数据流:撮合交易数据->kafka->消费者->db(mysql),用户资产按照资产类型分库分表,所有数据库操作按照uid排序再操作数据库,交易数据会被多个消费者消费,例如btc-usdt交易对,会被btc,usdt,手续费三个消费者消费。

*通知服务:数据流:撮合交易数据->kafka->通知服务

support

*btc address:394nLFQo2XVf9ruET6JYRw4inoPF2YUaox

*eth address:0x4914eAb996a15c8b8B0896F178357838cb0aD60a