Расширение API Minter от Monster's Club
@alexeyxlВсе вы знаете что я склоняюсь к созданию различных сервисов на блокчейне Minter, которые на столько незаметны или привычны для участников, что они воспринимаются как данность. Вот и сейчас я занимаюсь тем что не увидит ни один пользователь, а разработчик вцепится в результат зубами и будет счастлив тем что его сервисы стали легче и быстрее.
Сидя, как и многие, в режиме самоизоляции дома, решил облегчить жизнь разработчикам приложений и сервисов на блокчейне Minter, сделав значительно облегченные и заточенные под конкретные задачи модули API для сервисной ноды.
Владельцы сервисов могут опробовать удобство получения информации, которую раньше можно было достать сделав не менее десятка запросов, одним запросом.
Выложил все новые методы API в репозиторий на github (https://github.com/MNSTteam/MNST-API) с подробной инструкцией по их интеграции в ноду Minter
Надеюсь сделанное окажется полезным многим разработчикам. По мере написания новых методов они будут появляться в ноде на тестовом сервере и на github. Полный список методов доступен тут: http://95.216.6.249:8841
Свои благодарности можете отправлять ко мне на кошелек Mx61d52dea150beb1de2a1bd24c556d2750534b5e4 или пушами в телегу @alexeyxl. Кстати идеи и пожелания можете тоже отправлять в telegramm.
Ниже представлено краткое описание сделанных методов:
1) /userstake - Поиск делегированных стейков по адресу кошелька в стейках указанного делегатора (может использоваться как с параметром height=, так и без)
Не всем нужна информация по стейкам всей ноды и обрабатывать все полотенце запросов на много ресурсозатратнее чем просто запросить информацию о всех делегированиях конкретного участника проекта в нужную вам ноду.
Бонусом будет практически пятикратное ускорение получения ответа чем при использовании стандартного запроса /candidate
2) /userstakes - Поиск всех делегированных стейков по адресу кошелька (может использоваться как с параметром height=, так и без)
http://95.216.6.249:8841/userstakes?address=Mxa64c6e11840b2cdc6a8320342e07b10f69628885
Вообще удобный метод, работает быстрее почти в 10 раз чем запрос /candidates с параметрами вывода всех стейков, а еще ведь и обработать нужно будет. Так что если вам нужно просто получить информацию о всех стейках пользователя во всех нодах, то этот запрос вам идеально подойдет.
3) /coinstake - Поиск всех делегированных стейков в конкретной монете по конкретной ноде (может использоваться как с параметром height=, так и без)
Аналогично запросу /userstake находит все стейки в определенной монете в ноде. Так же шустрее родителя /candidate.
4) /coinstakes - Поиск всех делегированных стейков в конкретной монете (может использоваться как с параметром height=, так и без)
http://95.216.6.249:8841/coinstakes?symbol=MNST
Очень удобный модуль для владельцев монет. Выдает только делегированные в монете стейки во всех нодах. Шустрее и удобнее родителя.
5) /userbalance - подробный баланс кошелька с учетом количества и стоимости всех имеющихся и делегированных монет во все ноды (может использоваться как с параметром height=, так и без)
http://95.216.6.249:8841/userbalance?address=Mxa64c6e11840b2cdc6a8320342e07b10f69628885
Идеальный метод для сервисов кошельков. Выдает информацию быстро и сразу рассчитывает стоимость каждой кастомной монеты в bip и общую стоимость всех монет на кошельке с учетом делегированных.
Просто идеально. Один запрос и сразу вся нужная информация.
6) /mcandidate - подробная информация по кандидату(в т.ч. и по валидаторам, может использоваться как с параметром height=, так и без): общий стейк, комиссия, количество занятых слотов, количество уникальных пользователей, минимальный стейк, статус кандидата.
7) /mcandidates - запрос аналогичный /mcandidate, но по всем кандидатам
http://95.216.6.249:8841/mcandidates
Идеальный вариант запроса для рейтингов валидаторов. Получился весьма нагруженным, но зато 1 запрос и вся нужная информация в кармане. Без лишней обработки.
8) /convertmx - простенький конвертер кошелька стандартного вида в побайтный вариант
http://95.216.6.249:8841/convertmx?wlt=Mxa64c6e11840b2cdc6a8320342e07b10f69628885
Сомневаюсь что где то кто то будет применять этот запрос, но мне он был необходим, а найти в исходниках не смог
9) /mevents - поиск eventов по кошельку или PublicKey валидатора, или по тому и другому в конкретном блоке
Мультизапрос удобен тем что можно выводить и парсить не все events сети на конкретный блок, а только те которые необходимы, например по конкретному кошельку или нескольким кошелькам или валидатору, а можно и в комбинированном варианте.
Фишка запроса что при разумном использовании он быстрее родителя /events раз в 50-100, т.к. обрабатывает и выводит только НЕОБХОДИМЫЕ данные.
10) /revents - Информация по всем ревардам начисленным по конкретному блоку в разрезе валидатора и типов ревардов
http://95.216.6.249:8841/revents?height=480000
Один из самый странных запросов, но может быть применим для ряда сервисов для более быстрого и удобного парсинга сгруппированных данных по ревардам. Шустрее родителя раз в 200 за счет того что не выводит слайсы по каждому реварду
PS: Кто выдержал и дочитал до конца, тот молодец) А я продолжаю сидеть в режиме самоизоляции и дальше делать что то полезное.
PSPS: Про донат я не шутил. Всегда приятно что твои старания кто то оценил и лучший вариант оценки это собранный донат. Отмечу еще раз кошелек Mx61d52dea150beb1de2a1bd24c556d2750534b5e4
PSPSPS: И не стесняйтесь обращаться с вопросами. Сейчас время есть - могу помочь и подсказать.