[Work in progress, PR/Contributions welcome! Testing on Kovan test network]
ZeroEx Open Source Relayer using the Open Orderbook strategy.
Follows ZeroEx Standard Relayer API V0 Draft specification.
To start the local dev server:
yarn install
yarn dev
The server is hosted at http://localhost:3000
To make sure it is working, make a GET request to http://localhost:3000/api/v0/token_pairs
┌──────────────┐
│ │
│ Client │
│ │
└──────────────┘
▲ ▲
┌───────┘ └───────┐
│ ▼
┌─────────────┐ ┌─────────────┐
│ │ │ │
│ WebSocket │ │ HTTP API │
│ │ │ │
└─────────────┘ └─────────────┘
▲ ▲
│ emits │
└─events┐ ┌──────┘
│ │
│ ▼
┌──────────────────┐ ┌──────────────┐ ┌──────────────┐
│ Relevant event │ │ │ │◦◦◦◦◦◦◦◦◦◦◦◦◦◦│
│ streams │─────▶│ App Engine │◀─────▶│◦◦◦◦0x.js◦◦◦◦◦│
│ (includes 0x.js) │ │ │ │◦◦◦◦◦◦◦◦◦◦◦◦◦◦│
└──────────────────┘ └──────────────┘ └──────────────┘
▲
│
▼
┌──────────────┐
│ │
│ Orderbook │
│ │
└──────────────┘
▲
│
▼
┌──────────────┐
│ │
│ Data store │
│ │
└──────────────┘
I'll be adding support for Matching as soon as this proposal is implemented. I personally think the matching strategy will lead to a better UX (atomic, no race conditions, faster relay feedback), but currently requires large upfront capital. Matching engine will use sorted sets on top of red-black trees and will be configured as a separate strategy.