Архив: Разработка телеграмм бота для мониторинга статуса нод в блокчейне.

Бюджет По договоренности
Создан: 7 лет назад
Закрыт
Описание
Необходимо написать бота, который будет мониторить состояние нод в сети и иметь возможность привязываться к конкретным нодам.



Существующий бот для проекта Smartcash @SmartNodeMonitorBot

Его код https://github.com/xdustinface/SmartNodeMonitorBot



Нужно сделать такого же бота для этого проекта https://github.com/swiftcashproject



Информационный сайт по нодам, которые уже доступны в сети, их позиции:

https://swiftcash.bitcoiner.me/swiftnodes/payouts/

https://swiftcash.bitcoiner.me/swiftnodes/list/



Бот должен работать как в групповом чате так и в закрытом чате с одним пользователем.



По сути, бот берет данные из блокчейна, которые доступны через толстый кошелек.

Команда в кошельке swiftnode list, получаем вот такой вот результат.



{

"rank": 8,

"network": "ipv4",

"txhash": "750f262718c1a78f130a6f5f4b10ef28bd51918666ad73f1580a0c2d303280d8",

"outidx": 1,

"status": "ENABLED",

"addr": "Sj1LR3nnTrVYzrZ5iar6YFWMxX4mHR61sw",

"netaddr": "51.15.229.0:8544",

"version": 80411,

"lastseen": 1541939613,

"activetime": 947614,

"lastpaid": 0

}

Бот парсит из этой команды следующие данные:

• Addr (Публичный адрес )

• Status (Cтатус ноды)

• Rank (Позиция ноды в очереди выплат)

• Last Seen (Время последнего отклика в сети)

• Last Paid (time) (Время последнего вознаграждения)

• Last Paid (block) (Блок последнего вознаграждения)

• Activetime (С какого времени активна нода в сети)

Так же использую сайт https://explorer.swiftcash.cc/ нужно парсить конечный баланс по публичному адресу(Final Balance).



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

В свою очередь пользователь бота сообщает боту какие IP его, и бот начинает мониторить его IP.

Если в нашей промежуточной БД меняется статус ноды, либо нода получает выплату (ранк =1) то бот уведомляет пользователя об этом.

Так же необходимо предусмотреть HELP секцию в боте.

Функционал бота:

• Проверить текущее общее количество созданных / задействованных нод в сети. (команда /nodecount) Выводить общее количество нод в сети. (Команда в кошельке swiftnode count).

• Добавить / удалить личные ноды в приватном чате с ботом. (команда /add(remove)node “IP” “метка\название ноды”). Так же необходимо предусмотреть возможность удаления\добавления нод списком.

• Отобразить подробное резюме всех ваших добавленных нод(команда /mynodes). Метрики включают:

o Имя ноды и IP

o Статус ноды

o Ранг

o Uptime

o Последний блок выплат и время

• Проверить текущий баланс ваших нод использую публичный адрес(/mynodesbalance).

• Включить / отключить несколько уведомлений в приватном чате с ботом(/enable(disable)winnernotification | /enable(disable)statusnotification):

o Уведомления о наградах. Получайте уведомление, когда один из ваших узлов получает вознаграждение.

o Уведомления о состоянии - получение уведомления, если один из ваших узлов изменяет свой
Категория