Skip to content

Hidden Engine for light node.js VIZ tools

License

Notifications You must be signed in to change notification settings

VIZ-Blockchain/viz-nodejs-hidden-engine

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Что такое HiddenEngine?

Hidden Engine это легкий движок для сайтов и приложений специализированных для блокчейна Steem/Golos.

Статус разработки

Текущая версия: v0.0.5

GitHub: https://github.com/On1x/HiddenEngine

Веб-страница: https://goldvoice.club/@hiddenengine/

Что сделано в последнем релизе

Добавлена поддержка отложенных действий в очереди. Эта возможность внедрена и в интерфейс, теперь там можно указать delay в секундах.

Теперь не нужно запускать и настраивать nginx для проксирования запросов на определенный порт. HiddenEngine запускается на 80 и 443 порту с поддержкой SSL-сертификатов. При инсталяции генерируется новый сертификат с помощью openssl. Работает перенаправление с 80 порта на 443, чтобы исключить передачу незащищенного трафика в приложении. Пароль в json формате теперь не хранится (хранится только md5-hash).

Полностью внедрена поддержка быстрой установки всех зависимых пакетов через npm. Параллельная работа очередей Steem и Golos (нагрузка на процессор почти нулевая, возрастает только при трансляции транзакций в блокчейн).

Планы на будущее

Написать механизм автоматического курирования постов авторов из списка с указанием задержки во времени и силой голоса.

Отдельный модуль для делегатов: выполнение publish_feed, слежение за пропущенными блоками, интерфейс для запуска/паузы на подпись блоков.

Модуль E-mail оповещений, очередь писем.

Разработка

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

  • index.js — Основной каркас приложения, который подготавливает окружение, выполняет модуль и завершает соединение (по-умолчанию включена поддержка gzip-сжатия);
  • /class/ содержит классы:
    • global.js — предустановка переменных при запуске (логин и пароль по-умолчанию: admin);
    • template.js — легкий класс для html-шаблонов;
    • watchers.js — класс наблюдателя, который следит за выполнением операций из очереди;
  • /module/ содержит исполняемые модули:
    • prepare.js — выполняется автоматически для каждого запроса, содержит предопределенные настройки сайта и подготовительные операции (такие как проверка авторизации администратора);
    • login.js — форма авторизации;
    • logout.js — выход;
    • change-admin.js — смена пароля администратора;
    • accounts.js — управление базой аккаунтов;
    • watch-control.js — управление наблюдателями (steem/golos);
    • upvote-circle.js — управление связкой аккаунтов, добавление в очередь задач по upvote, флагам и голосованию за делегата;
    • index.js — главный файл доступный из корня сайта, содержит служебное меню;
  • /templates/ содержит html-шаблоны;
  • /ssl/ содержит ssl-сертификат (генерируется автоматически при первичной установке, если есть действующий SSL-сертификат, то bundle.crt следует записать в ssl.crt, а server.key в ssl.key);
  • /public/ — для публичных файлов (css/js/img);
  • /uploads/ — для загружаемых файлов.

Установка

HiddenEngine при установке запишется в автозапуск pm2, что позволит восстановить работу и состояние приложения после перезагрузки сервера.

cd ~
curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh -o install_nvm.sh
bash install_nvm.sh
source ~/.profile
nvm ls-remote
nvm install 8.5.0
node -v
sudo apt-get install nodejs-legacy
npm install npm -g
npm install pm2 -g
git clone https://github.com/On1x/HiddenEngine.git
cd HiddenEngine
apt-get install openssl
mkdir ssl
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ./ssl/ssl.key -out ./ssl/ssl.crt -subj "/C=HE/ST=HE/L=HE/O=HE"
npm install

Управление состоянием приложения

npm stop
npm start
npm restart
pm2 monit hiddenengine

About

Hidden Engine for light node.js VIZ tools

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 87.4%
  • CSS 10.1%
  • Smarty 2.5%