Здравствуйте. Проектом новой версии dpos.space я занимался с апреля по этот день августа. Речь про https://dpos.space/golos.
Репозитории с исходным кодом:
Ссылки на обзоры по сервису:
В следующих разделах статьи будет много о том, что было мной сделано, поэтому в начале даю ссылки для изучения инструкций по dpos.space.
- Общий обзор и начало работы по блокчейну GOLOS(аккаунты, профиль)
- GOLOS: завершение по Профилю
- GOLOS: сервисы Топов
- GOLOS: кошелёк
- GOLOS: Редактор(публикация постов)
- GOLOS: Бекап постов - Блок-эксплорер - ГСЧ
- GOLOS - Управление блокчейном и аккаунтом Golos
- GOLOS - Блокчейн-калькулятор - Опросы - Мультисиг
Что сделано
В целом, проект стал обладать гораздо большим количеством функций, а также блокчейны стали независимыми частями сайта, что удобно, так как не всем нужны другие БЧ.
По списку
Буду перечислять примерно, потому что времени прошло много, но как есть:
- Создан сервис кошелька. Это полноценный кошелёк с балансами, переводом средств, шаблонами переводов (сделал сегодня) и историей с фильтрацией по операциям и направлению (исходящие / входящие). dpos.space/golos/wallet;
- Аккаунты - сервис, позволяющий добавлять аккаунты. Их может быть несколько. Вводятся логин, постинг и активный ключ (последний не обязателен к вводу, но нужен для кошелька и некоторых других действий). dpos.space/golos/accounts;
- Активность за сутки - сервис, показывающий количество апвотов, флагов, средний процент апа, средний процент флага и количество постов + комментариев (контент объединён в один столбец). dpos.space/golos/activities;
- Были перенесены бекап постов, где сжигается определённая сумма на @null в целях антиспама запросами к сервису, и блокчейн-калькулятор (В калькулятор также добавил примерный подсчёт получения в CLAIM за сутки, а также изменил подсчёт суммы апа с учётом изменений), были созданы функции;
- Перенесён топ донатов. Также была включена поддержка операции donate, добавлен пропуск донатов с пустыми комментариями, если донат не за пост или комментарий.
- Создан Блок-эксплорер (полноценный сервис, если не считать block explorer api): выдаёт информацию по блокам, транзакциям, а также по параметрам сети, которые устанавливают делегаты.
Есть возможность ввода номера блока или хэша транзакции, просмотра последних обратимых и необратимых блоков, параметров.
На странице блока показывается, кто делегат, дата и время, а также таблица с данными по операциям. Если в операции есть from, creator , to, initiator и другие названия, становятся ссылками на dpos.space/golos/profiles; - Мультисиг - перенёс форму от @vik и интегрировал с авторизацией.
- Перенёс сервис опросов и публикации постов;
- Сделан сервис по управлению аккаунтом:
Профиль - изменение профиля. Из фишек: указание даты рождения.
Делегаты: список делегатов с возможностью голосовать путём отмечивания или снятия чекбоксов (галочек, флажков). Там-же можно установить и удалить прокси, либо проголосовать за делегата путём ввода его логина.
Управление делегатом - это страница делегата, где он может изменить ключ или url, установить параметры и впервые запустить Ноду на этой странице.
Заявки воркеров - список активных, закрытых и т.п. заявок. По клику откроется модальное (всплывающее) окно с информацией и, если она активна, возможностью проголосовать. Также отображается и список голосов. В rl отображается адрес заявки.
Подписки - список подписок с возможностью отписаться. Если не обновлять страницу, можно повторно подписаться.
Создать аккаунт - позволяет создать аккаунт при помощи текущего, используя делегирование СГ или передачу GOLOS;
Доступы аккаунта - позволяет установить минимальный вес, добавить или удалить ключи, аккаунты в правах доступа. Раздел требует специальных знаний.
Сброс ключей - позволяет сбросить ключи. Результат выводится на странице, а также предлагается сохранить txt файл с ключами. - Перенёс ГСЧ - генератор случайных чисел с использованием блокчейна GOLOS. Писал об этомздесь, а также топы пользователей.
Но в топах пользователей добавил TIP-баланс и репутацию, сделал возможность сортировки по делегированной другим СГ, полученному делегированию и эффективной СГ. - Топ пригласителей - это новый сервис, отображающий рейтинг тех, кто приглашает людей в Голос. При клике по логину переход в профиль пользователя, а при клике по количеству откроется модальное окно со списком приглашённых (аккаунты тоже ссылками на профили).
- Сервис просмотра профилей. Можно было бы написать "перенёс", но это не совсем так: было сделано многое. Рассмотрим его в разделе ниже.
Подробности про сервис просмотра профилей
На всех страницах просмотра профилей можно задонатить пользователю GOLOS. Для этого нажимаем на ссылку "Донат" под таблицей со списком страниц сервиса. Появится модальное окно, где достаточно ввести сумму не более TIP-баланса (отображается выше) и нажать "Наградить".
В переводах и других разделах с историей сделал фильтрацию с использованием get_account_history filter. Раньше был парсинг всей истории с выбором данных по условию. Соответственно скорость отдачи данных стала гораздо выше.
Начнём с основной информации:
- Появилось разделение инфы на блоки с возможностью навигации в начале страницы. При клике по суммам делегированного и полученного делегирования можно посмотреть список (модальное окно). Также список делегатов, за которых проголосовал пользователь, и история по голосованию, отображается в модальном окне. Оно открывается после клика по количеству делегатов;
- Также был добавлен баланс донатов и CLAIM баланс;
- Не помню, были ли в старой версии ссылки на соцсети, но добавлю это сюда.
- Количество подписчиков и подписок теперь являются ссылками: при клике открывается модальное окно со списком подписчиков или подписок (в зависимости от выбранного пункта).
Рассмотрим кратко другие разделы:
- Переводы средств: добавлены CLAIM, переводы на TIP-баланс и с TIP-баланса, создание инвайт-кодов, получение инвайт-кодов на баланс или в СГ, может что ещё...;
- Добавлен пункт "Сила Голоса" с историей, связанной с СГ: делегирование, ввод и вывод, перевод в СГ, может что ещё...;
- Добавил пункт "ДАО", где представлена история голосований за делегатов и, если пользователь делегат, голосований за него / снятий голосов. Также в данном разделе история голосований за заявки воркеров, а также создание, отмена заявки и получение выплаты по ней, если автор - пользователь;
- Донаты - новый раздел для нового функционала;
- Перенёс авторские, кураторские и бенефициарские награды;
- Аккаунты - новый раздел, где отображается история, связанная с аккаунтами: создание, изменение профиля и т.д.;
- Перенёс новые и получившие выплаты посты. Добавил сумму продвижения в новых постах;
- Перенёс Посты подписок не в виде отдельного сервиса, как было в старой версии, а в виде раздела в просмотре профилей;
- Перенёс раздел "Комментарии";
- Добавил раздел "Делегат", где отображаются выбранные делегатом параметры, дата его создания, количество пропусков, url, последний подтверждённый блок, статус (включён / выключен), за какой ХФ и когда проголосовал, а также текущая версия Ноды.
Что такое golos-apps?
В начале вы увидели ссылку на репозиторий golos-apps. Это backand сайта dpos.space, а если быть более точным, api сайта.
Список приложений
- golos_stake_bot - Telegram бот.
- golos-donators - топ донатящих, а также рейтинги получающих донаты постов и комментариев.
- golos-referrers - топ рефереров (пригласителей).
- golos-votes - система голосования.
- activity_stats - сервис статистики активности за сутки (очищается информация в полночь каждого дня). В базе данных логин, количество постов и комментов (одно значение), число флагов, апов, средний процент флага, средний процент апа.
Всё в js_modules.
А также там-же
- ajax.js - файл с golos-api приложений (можно вызвать по адресу с определёнными GET параметрами и получить данные).
- helpers.js - различные функции, например, перевод даты в красивую строку и т.д.
- methods.js - методы отправки данных к БЧ. Некоторые функции просто их вызывают с возвратом данных, а некоторые выполняют некую обработку.
В golos.js
Производится парсинг блоков и вызов методов приложений в зависимости от операции. Также ниже вызываются методы, которые необходимо запускать сразу, либо по cron.
В config.json
Все настройки: Нода, а также конфигурация приложений.
В databases
Файлы с методами работы с базой данных Mongo DB. Зависят от приложений.
Если в приложении используется больше одного файла базы данных (1 файл = одна коллекция), они размещаются в поддериктории databases.
Установка
- Скопировать на сервер
- Переход в папку проекта.
- npm install
- Изменение параметров в config.json;
- Запуск:
node golos.js или pm2 start golos.js
Вывод по golos-apps
Как видите, здесь много из того, что отображается на dpos.space.
Причин такой разработки три:
- Более удобно работать с node.js и mongo DB. На хостинге где сайт, есть лишь php и Mysql;
- Это позволит в будущем создать автоматическое переключение между серверами api dpos.space, чтоб пользователям не приходилось видеть ошибки в случае сбоя. Но для этого нужно несколько серверов с golos-apps, что один я обеспечить не могу.
- Сайт отдельно, скрипты с api отдельно: это удобно и понятно. Кроме того, в golos-apps есть и Telegram бот https://t.me/golos_stake_bot, а он к сайту не относится.
Фишка и golos-apps, и dpos.space
Особенность в том, что они состоят из приложений. Это значит, что при необходимости можно добавить приложение новое с любым функционалом. В golos-apps через js_modules, dpos.space через blockchains/golos/apps.
Видео
Большое, но для тех, кто не любит читать, будет полезно.
--
Планы
Опубликовал планы развития https://dpos.space/golos. Предлагаю ознакомиться с ними в посте
--
Про заявку и стоимость
- 4 месяца работы;
- Изменена структура, повышена гибкость проекта;
- Сделано много нового;
- Выполнены пожелания участников сообщества;
- Много времени на исправление недочётов;
- Донаты за обзор в количестве 4055 GOLOS;
- Полученные донаты за новости по сервису - 9089,041 GOLOS.
Чтобы заявка гарантировано прошла, ставлю минималку в 1 GOLOS, но с учётом выше написанного и описанного в посте, хотелось бы получить выплату минимум 788200 GOLOS, что по текущему курсу 12 копеек, составит 94584 руб. Максимум ставлю на уровне 1,5 МЛН для тех, кто хочет поддержать более существенно.
Куда будут направлены токены
Полученные токены будут начислены в СГ, где и будут находиться.
Возможно я встречу дизайнера и верстальщика, которые смогут улучшить внешний вид сайта, что очень хочется сделать: тогда смогу заплатить за работу из своих запасов фиата, зная, что у меня есть полученные средства.
Сила Голоса мне нужна для поддержки интересных мне проектов и постов донатами, поэтому токены продавать не буду.
Оглавление
Если вы хотите перечитать какую-то часть статьи, ниже находятся ссылки, которые помогут в навигации:
- Репозитории с исходным кодом
- Ссылки на обзоры по сервису
- Что сделано
3.1. По списку
3.2. Подробности про сервис просмотра профилей - Что такое Golos-apps
4.1. Список приложений
4.2. А также там-же
4.3. В golos.js (не путать с библиотекой)
4.4. В config.json
4.5. В databases
4.6. Установка golos-apps
4.7. Вывод по Golos-apps - Фишка и Golos-apps, и dpos.space
- Видео
- Про заявку и стоимость
7.1. Куда будут направлены токены
С вами был незрячий делегат, разработчик и автор @denis-skripnik. До встречи в следующих постах, и благодарю за поддержку.
@denis-skripnik Привет Денис! Хорошая статья.
Благодарю. Весь день описывал...
@denis-skripnik, Супер программист! Доброго вечера, Денис! Чудесного настроения и позитивного заряда на весь вечер!
Благодарю. Вам того-же.
@denis-skripnik Привет! Не могу найти раздел с историей делегатства. Где было отображено кто голосовал зе тебя и за кого голосовал ты. Где это можно найти?
Здравствуй. https://dpos.space/golos/profiles/avral - на количество делегатов нажимаешь (там есть история). Либо можно перейти в "ДАО" и там смотреть.
@denis-skripnik - Большая проделана работа!
Благодарю.
Сегодня примерно с 16 до 19 по Москве обновлялся сертификат. Сейчас сайт и все поддомены работают в нормальном режиме.
@denis-skripnik ты моя большая умничка, Деничка. отличный сервис сделал, очень объемный. можно детально посмотреть данные, которые нужны. с удовольствием поддержу тебя.
Благодарю.
@pioner777888, @takimova, @iren007, @tinochka, благодарю за апвоты. Если не видели ссылку на заявку в посте, я её добавил.