Top donators and donated posts for Golos blockchain Сервис, выводящий топ пользователей, донатящих авторов и топ постов, получающих донаты. Комментарии в коде есть.
- node.js
- Mongo DB.
- Парсит блоки (функция в основном файле donators.js) и складывает последний блок в базу данных golos-donates, коллекцию blocks (файл БД - js_modules/blocksdb.js);
- В файле js_modules/work.js производится просмотр операций (в т.ч. виртуальных) блока с поиском переводов, memo которых является json;
- В случае, если json соответствует формату отправки донатов, направляет данные: from (от кого), author, permlink, full_amount (полная сумма с токеном через пробел).
- В той функции производится разделение суммы и токена, после чего проверяется наличие в базе данных сначала донатера, а затем поста;
- Если есть, выводятся условия, согласно которым сумма прибавляется либо к количеству в GOLOS, либо в к количеству в GBG (golos_amount или gbg_amount);
- В js_modules/ajax.js производится вызов npm пакета express с фрмированием страниц, отдающих json с топом в зависимости от отправленных GET параметров: если type=users - список донатящих, type=posts - постов. Также вывод зависит от параметров month и year. Формат первого - это 1-12, а года, например, 2020 (в запущенном скрипте выводятся данные с февраля 2020 года).
Коллекции постов и донатящих имеют названия users2-2020 или posts2-2020, где 2 - месяц, а 2020 - год. Это значит, что после начала марта будут складываться данные за март, а не февраль.
- Сортируются лишь по GOLOS. По GBG сортировку делать надо локально;
- Выводятся в формате JSON;
- Порт 3900;
- Идентификатор golos-donates.
ip:3900/golos-donates?type=posts&date=2-2020
- Донатеры: https://dpos.space/golos-donates
- Посты: https://dpos.space/golos-donates/posts
Незрячий разработчик Денис Скрипник. профиль на Голосе.