Выполняемые действия при запуске:
- Получение из конфига API ключей Binance. Они нужны, чтобы торговать - то есть выставлять и отменять ордера, а также получать информацию по балансу пользователя.
- Подключение к каналам Aeron. Всего четыре канала:
- Канал отправки данных стакана
- Канал отправки данных баланса пользователя
- Канал отправки ошибок
- Канал получения команд на управление ордерами от ядра (создание и отмена)
- Отправка текущего баланса по криптовалютам в ядро. Отправляются только балансы больше нуля.
- Подключение веб-сокетов Binance, для получения данных по стакану и данных о балансе пользователя. Это позволяет не нагружать Binance API постоянными запросами.
- Запуск главного цикла.
Шаги главного цикла:
- Получение непрочитанных сообщений об ордерах из Aeron и их обработка, если они имеются. Gateway формирует ордер, отправляет его в Binance API, и обрабатывает ответ. Если Binance сообщает о неправильном ордере, отправляет сообщение ядру через канал Aeron.
- Обработка данных, которые получают веб-сокеты. Данные по стакану и изменениям баланса пользователя отправляются ядру через Aeron.
- Происходит проверка времени работы веб сокетов. Если прошло половина времени их работы, происходит переподключение. Если этого не сделать, то поток данных прервется через некоторое время.