Задача:
Заказчик ставит задачу — обеспечить его майнинговую ферму системой мониторинга. Площадка для работы с мониторингом — Telegram
Заказать разработку приложений любого уровня сложности и для любых бизнес-задач можно здесь: контакты HDService
Сразу скажу, что это не про майнинг крипто-монеток, это про майнинг (добычу) полезной от проприетарного алгоритма информации. Майнеры генерируют некую информацию + guid к ней и сверяют ее с контрольными данными в БД, в случае успеха уведомляют владельца.
Система должна по запросу предоставлять информацию о:
— состояние майнинг-серверов
— скорость работы каждого из них
— средняя скорость работы всего пула
— статус и состояние базы данных
— текущие результаты
Реализация:
Стек: Python, aiogram, PostgreSQL, UbuntuServer 20.04 LTS
Срок реализации: 4 рабочих дня
Релиз #1:
Т.к. у программ-майнеров нет никакого API — источником данных служит сервер БД PostgreSQL и его содержимое. Учитывая тот факт, что в БД для каждой записи имеется tstamp, соответствующими SQL запросами выбираем из базы информацию для аналитики, агрегируем ее, и считаем по определенным формулам нужные показатели.
Релиз #2:
После реализации системы мониторинга заказчик предложил второй заказ: «Провести аудит текущей майнинговой фермы, алгоритмов и пр… и предложить рационализаторское решение направленное на увеличение скорости работы майнинг-пула».
В результате его ферма была полностью переделана — собрана облачная инфраструктура из нескольких VDS серверов (различной конфигурации — в зависимости от роли на проекте). О том что именно и как было сделано — будет отдельная история, но в двух словах:
— Скорость работы алгоритмов генерации значительно увеличилась на серверах с NWMe
— Процессы: агрегации, вычисления, выборки информации перенесены на уровень приложения СУБД PostgreSQL (в виде INNER JON), что кратно прибавило скорости обработки
— Все процессы работы кластера серверов были автоматизированы bash-скриптами, что позволило вообще не думать о процессе работы пула, а только 2 раза в неделю получать уведомления и отчеты.
Результаты пула ДО:
Скорость пула: 50 операций в сек = 129.6 млн. операций в месяц
Стоимость 1 млн. операций = 31 р 33 коп
Содержание пула: 4060 рублей в месяц
Результаты пула ПОСЛЕ:
Скорость пула: 630 операций в сек = 1.633 млрд. операций в месяц (x12.6)
Стоимость 1 млн. операций = 2 р 05 коп (x15.3)
Содержание пула: 3340 рублей в месяц (x1.2)
Как итог = экономия 20% и увеличение производительности почти в 13 раз!
Ну и, конечно же, изменился бот в телеграм — теперь он только доставляет статусы по работе пула и отчеты