Skip to content

ndexnetwork/cryptoexchange-release

 
 

Repository files navigation

HighDAX CryptoExchange

English version can be found here.

领先的加密数字交易平台

DEMO

功能:

  • 完全面向AWS的生产环境;
  • 多币种与多交易对支持,新增币种与交易对无需停机;
  • 支持REST API并集成Swagger;
  • 全部专业订单类型,包括限价单、市价单、止损单、限价止损单、移动止损单、FOK订单、IOC订单、Hidden订单、PostOnly订单等;
  • 高性能内存撮合引擎,速度高达每秒1万单;
  • 高性能实时清算,100%无误差;
  • 实时监控并收集所有性能指标;
  • 实时财务审计,可实时探测数据库非法修改;
  • 内置币种支持包括:BTC、BCH、USDT、ETH、ETC、ERC20;
  • 高度安全的冷热分离钱包,使用标准的HD钱包机制;
  • 集成工业级别的安全存储引擎Vault用以存储冷钱包密钥;
  • 允许对Maker/Taker设置不同费率;
  • 允许对Maker设置负费率;
  • 允许对买方收取计价货币作为手续费;
  • 可定制预处理/后处理订单(例如,白名单检查,交易挖矿,手续费返还等);
  • 内置国际化支持,包括英文、中文、日文、韩文等;
  • 内置完整的后台管理。

高性能架构设计

HighDAX交易系统采用高性能模块化架构设计:

Arch

核心交易系统模块包括:

  • account:为每个用户提供各币种的可用/冻结/锁定账户模型,不但可支持高速交易,还可为钱包系统提供锁定功能(例如,ERC代币锁定);
  • sequence:32路高性能定序系统,可并发32路定序;
  • match:为每个交易对提供高达每秒1万单的内存撮合,定期持久化快照,并可从任意时间点恢复;
  • clearing:实时异步高性能清算系统,可实现并行清算、多次清算但完全确保最终清算结果的一致性;
  • notification:基于Vertx的高性能WebSocket推送,可实时推送市场信息与用户订单成交信息;

HighDAX交易系统采用RocketMQ作为高性能/高可靠的消息系统。为充分提高系统性能,HighDAX尽可能对多个消息进行批处理。此外,HighDAX在消息发送方/接收方实现了消息重复检测、消息遗漏检测,可100%完全确保有序消息不乱序、不丢消息,极大地降低了运维成本。

超高安全性冷钱包设计

HighDAX冷钱包使用 Vault 作为加密存储引擎存储HD钱包的HD扩展根密钥。Vault是一款工业级的开源加密存储引擎,具有非常高的安全性。

在冷钱包初始化阶段,初始化程序会自动创建 随机 助记词和 随机 口令,并立刻写入Vault,然后通过Vault的3/5分散密钥将口令分散至5个人。整个过程无人可见助记词和口令,启动冷钱包的唯一途径是通过3/5分散密钥。

此方案保证了任何人(包括系统管理员)也不可见钱包根密钥。在部分分散密钥丢失、疑似泄漏、需要密钥交接时,可更换分散密钥,原有的分散密钥作废。唯一需要安全备份的是Vault加密文件。

除冷钱包外,HighDAX交易系统、UI系统、热钱包以及数据库均 不存储 任何私钥,极大地保障了钱包的安全性。

术语

  • 分散密钥:一组M/N分散密钥是指由一个主密钥通过Shamir算法将密钥分成N份,满足M份即可恢复主密钥。例如,Vault默认使用3/5分散密钥,对于这5个分散密钥,任意3个密钥组合即可恢复主密钥。

  • HD助记词和HD口令:由BIP39规定的一组HD助记词(最多24个)和一个特定的HD口令(长度任意)可唯一确定一个扩展根私钥(xprv),使用此扩展根私钥可根据BIP44规范为所有币种创建不同的确定性地址。

实时审计系统

HighDAX系统内置实时财务审计系统,时刻自动对每一笔订单、清算记录及账户更改进行审计对账。无需对账务进行离线对账,实时审计系统确保系统任意时刻的资产负债表总额为0。一旦出现任何账务错误,系统将自动暂停并停止接受任何订单与提币请求。

任何对数据库的直接修改都将导致实时审计系统报警并立刻暂停整个交易系统。

专业订单类型

HighDAX支持几乎所有专业金融订单类型,包括:

Limit:限价单是最常用的一种订单,它允许交易员在买入或卖出时指定交易价格和数量。

Market:市价单会以市场最优价格立刻成交。市价卖单将与订单簿的买单按最优价格(从高到低)依次成交,直到订单被全部执行。市价买单将与订单簿的卖单按最优价格(从低到高)依次成交,直到订单被全部执行。

FOK:一个FOK(Fill or Kill)订单将立刻被全部执行或者在无法全部执行时自动全部取消。

IOC:一个IOC(Immediate or Cancel)订单将立刻被执行,未成交的部分将被立刻取消。

PostOnly:强制订单始终以做市身份执行。当Post Only限价单被触发时,它总会显示在订单簿中,或者在条件不满足时自动全部取消。

Hidden:隐藏单不会在订单簿中显示,但价格和时间优先级与普通订单一致。作为代价,Hidden订单始终支付Taker费率。

Stop:一个Stop订单将在市场价格达到指定触发价时自动以市价单执行。Stop单常用于当市场价格朝着不利于头寸的方向移动时自动止损。

StopLimit:Stop-limit订单和Stop订单类似,在市场价格达到指定触发价时自动执行。不同的是,Stop-limit订单以限价单执行,因此,Stop-limit订单可能不会立刻完全成交。

TrailingStop:移动止损单,Trailing-stop订单提供了高度的灵活性,它在在市场价格向着头寸有利方向移动时,当市场价格回调至指定价格距离时自动以市价单触发执行。合理使用Trailing-stop订单可以让盈利最大化。

软件运行平台

HighDAX运行平台:

OS

64bit Linux,推荐AWS官方Ubuntu Server x64镜像。

Software

JDK 1.8,推荐通过APT安装openjdk-8-jre-headless

MySQL 5.7,推荐使用AWS托管的RDS/Aurora。

Redis 4.x,推荐使用AWS托管的ElasticCache。

OpenResty 1.11;

RocketMQ 4.2;

NodeJS 10.x。

部署

HighDAX采用符合行业标准,基于Jenkins和Ansible的完全自动化构建与部署方案,可在几分钟内实现一键部署。

安全防护

为AWS定制的安全防护策略,并可直接接入CloudFlare CDN,可自定义限速、DDoS防护、自动识别机器人、高性能分发并完全隐藏服务器IP。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 54.6%
  • JavaScript 34.7%
  • CSS 8.4%
  • TypeScript 1.5%
  • Lua 0.3%
  • Python 0.3%
  • Shell 0.2%