Розробка стакану ордерів (order book)

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Розробка стакану ордерів (order book)
Складний
~1-2 тижні
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1306
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1218
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    920
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1147
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    610
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    885

Розробка стакана ордерів (order book)

Order book — центральний компонент будь-якої біржи. Продуктивність напрямою визначає можливості всієї торгової системи: від latency виконання до максимального throughput.

In-memory order book

Order book живе в ОЗУ. Доступ до диска при кожному matching — неприйнятна latency.

Класична структура: два відсортовані контейнери — bid side (покупки, по спаданню ціни) й ask side (продажі, по зростанню ціни). На кожному цінуовому рівні — черга ордерів (FIFO для price-time priority).

Вибір tree:

  • Red-black tree: O(log n) для всіх операцій, гарна cache locality
  • Skip list: конкурентний, lockfree skip list дає кращу масштабованість
  • Sorted slice + binary search: O(n) insert, O(log n) search, працює для малих books <1000 рівнів

Для біржи з 10–20 торговими парами й помірним обсягом: один Go процес обробляє >50,000 ордерів/сек.

Алгоритм matching

Price-time priority (FIFO) — стандарт для більшості бирж.

Снэпшот й інкрементальні оновлення

Клієнт не отримує весь order book при підключенні — це можуть бути мегабайти даних. Архітектура:

  1. Клієнт запрошує снэпшот (top N рівнів, наприклад 50) через REST
  2. Підписується на WebSocket channel diff updates
  3. Застосовує diff до локальної копії

Клієнт відкидає diff з seq <= snapshot.Sequence, застосовує всі наступні.

Візуалізація order book

Групування по тикам

Реальний order book може мати тисячі ціновых рівнів. Для відображення — групування по "тику" (мінімальний крок відображення).

Тики переключаються користувачем (0.01, 0.1, 1, 10, 100 для BTC/USDT) — це змінює детальність відображення.

Depth bar

Візуальний індикатор відносного обсягу на рівні.

Продуктивність

Для біржи з 10–20 торговими парами й помірним обсягом: один Go процес обробляє >50,000 ордерів/сек.

При необхідності масштабування: шардинг по парам (кожна пара — незалежний інстанс), горизонтальне масштабування API-слоя з спільною order book через Redis Sorted Sets.

Метрика Значення Умови
Matching latency <100 мкс In-memory, single core
Add order throughput 100k+ ops/sec Go, Red-Black tree
Cancel order O(1) Hash map lookup
Snapshot generation <1 мс Top 50 рівнів
WS diff broadcast <1 мс After each trade

База даних

Order book — лише in-memory. У PostgreSQL персистується:

  • Усі ордери (open, filled, cancelled)
  • Усі trades
  • Снэпшоти order book кожні N хвилин (для відновлення після рестарту)

При старті: завантаження усіх status=open ордерів → відновлення in-memory book.

Таймлайн розробки

  • In-memory order book з FIFO matching: 3–4 тижні
  • WebSocket diff feed + снэпшоти: 2–3 тижні
  • Frontend visualizer з grouping, depth bars: 2–3 тижні
  • Повний production-ready компонент: 6–8 тижнів