Skip to content

Golos starter pack with interface

Pre-release
Pre-release
Compare
Choose a tag to compare
@On1x On1x released this 15 Sep 12:37
· 25 commits to master since this release

Что такое HiddenEngine?

Hidden Engine это легкий движок для сайтов (данная реализация на node.js), с упрощенной разработкой приложений для блокчейн проектов (Steem/Golos).

Что сделано

Изменена архитектура приложения, теперь она менее линейна, более правильное использование callback вызовов. Переработан класс работы с шаблонами, улучшен интерфейс приложения.

Управление аккаунтами вынесено в отдельный модуль.

Заложена поддержка Steem, но она станет доступна после того, как починят golos-js issue 8. Наблюдатели за блокчейном вынесены в отдельные функции. Ими возможно управлять через интерфейс (ставить на паузу, продолжать или перезапускать наблюдателя).

Планы

Модуль для делегатов по publish_feed, слежение за пропущенными блоками, интерфейс для установки паузы на подпись блоков. Создать механизм отложенных действий в очереди. Написать механизм автоматического курирования/флагования постов авторов из списка с указанием задержки во времени и силой голоса. Добиться параллельной работы библиотек Голоса и Steem (на данный момент работает только Голос).

Разработка

Легкая модульная подсистема позволяет расширять сайт или приложение отдельными файлами-модулями. Порог входа программистов снижен интуитивной структурой:

  • index.js — Основной каркас приложения, содержит также логику по выполнению задач из очереди для Голоса и Steem;
  • /class/ содержит классы:
    • template.js — легкий класс для html-шаблонов;
  • /module/ содержит исполняемые модули:
    • prepare.js — выполняется автоматически для каждого запроса, содержит предопределенные настройки сайта и подготовительные операции (такие как проверка авторизации администратора);
    • login.js — форма авторизации;
    • logout.js — выход;
    • clear-global.js — очистка глобальной json базы данных;
    • change-admin.js — смена пароля администратора;
    • accounts.js — управление базой аккаунтов;
    • upvote-circle.js — управление связкой аккаунтов, добавление в очередь задач по upvote, флагам и голосованию за делегата;
    • clear-global.js — очистка глобальной json базы данных;
    • index.js — главный файл доступный из корня сайта, содержит служебное меню;
  • /templates/ содержит html-шаблоны;
  • /public/ — для публичных файлов (css/js/img);
  • /uploads/ — для загружаемых файлов.

Главный исполняемый файл подготовливает окружение (cookies, _GET, _POST), формирует объекты для удобного обращения (templates, global), выполняет модуль и завершает соединение (по-умолчанию включена поддержка gzip-сжатия).

Установка

cd ~
curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh -o install_nvm.sh
nano install_nvm.sh
bash install_nvm.sh
source ~/.profile
nvm ls-remote
nvm install 8.4.0
node -v
sudo apt-get install nodejs-legacy
npm install express -g
npm install pm2 -g

git clone https://github.com/On1x/HiddenEngine.git
cd HiddenEngine
npm install

npm install steem --save
npm install golos-js --save
npm install crypto --save
npm install body-parser --save

Запуск

pm2 start index.js --watch