Скорость или качество?
В этой статье мы разберем то, как качество написания бота и его функционал влияет на скорость или же почему нам порой приходится выбирать между скоростью и качеством.
Что влияет на скорость бота:
- Количество пользователей
- Количество фильтров
- Скорость ответа используемых сервисов
- Место размещения серверов
- Прокси
- Этап обработки блока (ВАЖНО!)
Количество пользователей
Думаю тут все понятно. Чем больше людей, тем больше времени требуется на обработку фильтров всех пользователей.
Из-за этого мы придерживаемся политики малого количества людей. Это позволяет не только предотвратить выход друг о друга, но и увеличить скорость открытия фьючерсной позиции.
Количество фильтров
Чем больше уникальных фильтров пользователь может выставить самостоятельно, тем больше запросов на соответствие необходимо сделать на сервер и тем дольше времени. И конечно все эти действия можно смело умножать на количество человек.
Тем временем, наш сервис позволяет подстроить не только все базовые характеристики DCA, но так же выставить TP, SL, настроить Whitelist либо Blacklist на токены, а так же настроить блокировку открытия Long/Short позиций (если того требует рынок).
Место размещения серверов
Тут все просто. Чем ближе наши сервера к серверам API, прокси, тем быстрее.
Этап обработки блока
Существует 3 стадии обработки блока: processed – confirmed – finalized
Переводя на русский: обработка – подтверждение – завершено
Они идут именно в этой последовательности и в зависимости от того, на каком этапе вы отправляете запросы RPC, будет различаться время открытия сделки.
В основном все запросы на RPC должны отправляться на стадии confirmed, это считается более безопасным, но так же можно отправлять запросы на стадии processed.
Плюсы processed – вы можете открывать транзакции с большой скоростью, вплоть до 600-1000 мс (зависит от количества запросов на RPC);
Минусы processed – в ситуации с перезагруженностью сети, например как было на лаунче токенов TRUMP и MELANIA, фейлятся 90% всех транзакций и при работе софта с подобными транзакциями могут быть ложные срабатывания, что является критической проблемой и может привести к потере депозита.
Плюсы confirmed – работа только с 100% прошедшими блоками обеспечивает безопасность работы софта и исключает ложное срабатывание при любой ситуации;
Минусы confirmed – дольшее время срабатывания софта, по сравнению с processed
Заключение:
В целом, скорость сработки софта и любого подобного проекта зависит от многих показателей, но в основном от количества запросов на сервер, чем больше начинка софта (настройка фильтрации), тем дольше будет идти обработка, а так же от того, с каким типом блока мы работаем.
И от этого встает зависимость:
– быстрее, но больше рисков и меньше гибкость в настройке
– медленнее, но качественнее и более безопасно
В среднем, время сработки нашего бота упирается в 5 секунд и это не является пределом наших мечтаний. Но так же мы понимаем, что для ускорения работы нужно либо резать функционал, либо подставлять пользователя с возможным пропуском фейловых транзакций.
Мы знаем, что у нас есть конкуренты, как открытые и закрытые софты участвуют с нами в одной гонке, и нам искренне забавно наблюдать, как приходит конкурент с обрезанным функционалом и processed этапом обработки блока, хвастаясь своей скоростью.
В данный момент мы работаем на confirmed блоках с большой гибкостью в плане настройки и не готовы жертвовать этим в сторону ускорения работоспособности.
Единственный вариант который мы видим и который будет вскоре у нас реализован – парсинг информации на стадии processed, чтобы не тратить время впустую, а при получении всех данных ожидаем перехода блока в стадию confirmed, после которого уже открываем фьючерсную позицию пользователя.