Prism

Prism

Высоконадежный сервис для доступа к множеству бирж криптовалют по единому унифицированному API.

Prism используется институциональными и HFT трейдерами, брокерами, биржами и другими участниками рынка для подключения своих решений к торговле криптовалютами. Данный сервис использует стандартизованный биржевой протокол FIX, что позволяет использовать существующие торговые платформы с минимальными затратами на интеграцию. Предусмотрен также полнофункциональный RESTFul+WebSockets протокол.
Говоря кратко, Prism – это в точности то, каким должен быть программный интерфейс для доступа к криптовалютной торговле!

Отправьте запрос на тестовое подключение

Какие сложности несет многообразие рынка криптовалют

Благодаря принципам децентрализованности и распределенного доверия, криптовалюты позволили создавать торговые площадки, совмещающие в себе одновременно как функции брокера, так и клиринговой организации. Исчезла необходимость выстраивать цепочку доверенных лиц и организовывать стандартные протоколы взаимодействия. Тем самым, это привело к росту числа различных криптовалютных бирж с множеством торговых функций и великим разнообразием нестандартных программных интерфейсов.

Фрагментация

Ликвидность рынка криптовалют довольно высока и растет с каждым днем, вместе с тем растет и количество бирж. Чтобы обеспечить хорошие объемы сделок, либо охватить множество различных alt-coins необходимо проделать очень большую работу по интеграции с каждой из них.

Web и публичный доступ

Web и публичный доступ

Наиболее распространенным подходом к организации программного интерфейса для криптовалютных бирж является WebAPI в виде отдельных RESTFul запросов. Получение обновлений рыночных данных, как правило, также осуществляется RESTFul запросами. Реже – используя потоковые (push) данные WebSockets. Это неизбежно приводит к тому, что количество запросов к бирже растет. Биржи вводят ограничения по количеству транзакций за единицу времени. Это может добавлять сложности для реализации разного рода торговых алгоритмов, в особенности связанных со сделками арбитража либо сделками на исполнение больших объемов.

Для защиты от возможных DDoS атак, биржи предоставляют WebAPI не напрямую, а через сервисы фильтрации запросов. Каждый запрос проходит процедуру аутентификации и маршрутизируется на процессинговый сервис биржи. Это вносит дополнительные задержки при выполнении транзакций.

Слабая устойчивость к сбоям

Отдельного внимания заслуживает проблема устойчивости к сбоям, так как WebAPI не вносит никакой функциональности, направленной на поддержание транзакционной целостности. API криптовалютных бирж подвержены разного рода ситуациям, когда транзакция исполняется не полностью и становится крайне сложно вычислить ее состояние. Например, вы отсылаете RESTFul запрос на постановку заявки, затем соединение разрывается, и вы не получаете ответа о результате выполнения этой операции биржей. В такой момент не известно состояние вашей заявки - возможно она выставлена в рынок, но возможно не принята биржей.

Доступность

В большинстве своем, криптовалютные биржи работают без перерывов на клиринг 24/7, тем не менее простои также не редкость. Часто WebAPI бирж может быть отключен по причине обслуживания или сбоев на рынке.

Как Prism меняет ситуацию

Единый интерфейс

Prism реализует единый стандартизованный протокол FIX 4.4 для доступа ко всем криптовалютным биржам. Данный протокол является устоявшимся стандартом для биржевых операций, включает себя все необходимые функции для осуществления торговых операций.

Мы предоставляем полноценную реализацию этого протокола с наиболее полной поддержкой вариантов транзакций и типов биржевых заявок.

Через Prism доступны следующие типы заявок:

Для заявок типа MARKET, IOC, FOK автоматически выбирается наиболее ликвидный рынок для данной валютной пары, если не задан конкретный рынок.

Если API какой-то из бирж не поддерживает той или иной тип заявки, то мы берем работу на себя и производим внутреннюю эмуляцию.

Через систему Prism доступен полный набор операций над заявками – PLACE, MOVE, CANCEL. Даже если какая-то из бирж не поддерживает MOVE, мы безопасно осуществляем это внутри системы.

Защищенный доступ и высокая скорость отклика

Для доступа к сервису используется защищенный канал и фиксированный сетевой адрес. Подключение клиента осуществляется в изолированной среде, что исключает любую дополнительную нагрузку со стороны.

FIX протокол базируется на протоколе TCP, минуя заголовки HTTP. Это позволяет получать данные в виде потока без периодического опроса сервера. Нет необходимости проходить аутентификацию на каждый запрос к серверу, это делается единожды при установлении соединения. Геопозиция серверов Prism выбирается таким образом, чтобы минимизировать время отклика от наиболее важных бирж.

Запросы к биржам делятся на типы:

Публичные — для получения информации, не связанной с учетной записью пользователя. Например, чтении книги заявок, или всех совершенных на бирже сделок. Для повышения отклика Prism использует кэширование публичных запросов и переброс запросов на внутренние proxy сервера. Что дает возможность увеличить число обращений к биржам и частоту обновления данных. Через Prism вы видите более актуальные цены в книге заявок, чем если бы вы напрямую использовали API конкретной биржи.

Публичные
Приватные

Приватные — для исполнения транзакций. Например, работа с заявками, ввод и вывод средств на депозит. Такие запросы требуют цифровую подпись владельца учетной записи используя API ключ, выданный биржей.

Prism не хранит ключи для исполнения приватных запросов. Подпись внутренних сообщений к бирже происходит на стороне клиента, использую ПО с открытым кодом. Это исключает любые незатребованные операции с ключами и дает возможность клиенту отозвать ключ в любой момент.

Если клиент опасается хранить ключи у себя, возможен режим хранения зашифрованных ключей на серверах Prism. В этом случае подпись транзакций осуществляется на стороне сервера, и клиент не принимает в этом участие. Могут быть установлены ограничения на операции по данным ключам, например – запрет на ввод или вывод валюты.

Устойчивость к сбоям

Внутренняя архитектура системы устроена таким образом, что при возникновении проблем на одной из бирж, например, превышение максимального количества транзакций в секунду происходит переключение на другую биржу. При большом количестве доступных бирж, это минимизирует проблему доступности.

Протокол FIX решает проблемы восстановления после сбоев путем ресинхронизации сообщений после подключения. Если соединение было прервано в виду нештатной ситуации, сторона клиента всегда сможет получить утерянные сообщения. А состояние заявок всегда можно проверить, используя собственный идентификатор заявки
(ClOrderId).

Устойчивость к сбоям

Prism осуществляет постоянный контроль консистентности заявок, используя для этого ряд общих для всех бирж алгоритмов:

Доступность 24/7

Доступность 24/7

Клиент работает с сервисом используя собственное подключение. Система работает в изолированной среде, используя специально выделенные для клиента ресурсы. В случае, если одна из бирж перестала отвечать, транзакции переводятся на другую биржу. Алгоритмические заявки осуществляют переброс объемов в автоматическом режиме.

Margin trading

Торговля с плечом доступна через биржи, которые поддерживают маржинальную торговлю. В данный момент доступно плечо до 3х на биржах Bitfinex и Poloniex для наиболее ликвидных валютных пар.

Аудит

Детальная информация о совершенных через систему Prism транзакциях доступна в полном объеме. Данные можно извлечь через API системы, либо запросить в виде текстовых файлов. Совершенные сделки также можно получать по протоколу FIX Drop Copy.

Спецификации

Мы предоставляем два вида API – классическое биржевое API используя протокол FIX 4.4 либо WebAPI для клиентов, кто ранее работали напрямую с критовалютной биржей.

Список поддерживаемых бирж

Exchange name Market data Trading
Binance Ok Ok
Bitfinex Ok Ok
Poloniex Ok Ok
Bittrex Ok Ok
Kraken Ok Ok
Deribit Ok Ok
BitMEX Ok Ok
Exchange name Market data Trading
OasisDEX Ok Ok
BancorDEX Ok Ok
KyberDEX Ok Ok
UniswapDEX Ok Ok
HitBTC Ok Ok
KuCoin Ok Ok
bitFlyer Ok Ok