вторник, 28 августа 2018 г.

Восстановление объема флешки

Чтобы восстановить реальный размер флеш-накопителя, нужно выполнить низкоуровневое форматирование. В результате с флешки будут удалены все данные, поэтому предварительно перенесите информацию на другой носитель.


  1. 1.В меню «Пуск» найдите командную строку и запустите её с полномочиями администратора.
  2. 2.Введите команду «diskpart», чтобы открыть одноименную утилиту для работы с дисками.

     3.Выведите список всех подключенных носителей командой «list disk». Найдите подключенную флешку по её объему (если у вас накопитель на 16 Гб, он может отображаться как диск на 15 Гб).



4.Выберите номер диска – «select disk=5». Вместо «5» вы указываете номер флешки.


5.Командой «clean» очистите флеш-накопитель от содержимого. Вместе с файлами будет удалена и разметка.


Вы получили полностью чистый носитель, теперь нужно заново его разметить. Выполняется эта процедура через диспетчер задач


Переделка китайского вольтметра в амперметр.

Не буду углубляться в подробности работы таких вольтметров. Взамен этого расскажу как быстро переделать его в амперметр.
Дополнительно понадобятся всего 2 детали - 5-ти ватный резистор на 0.1Ом и подстроечник (Сгодятся любой - будет в  делителем).
Вольтметр обычный, китайский. С тремя проводами. Для вольтметров с двумя проводами нужно будет выпаять диод, идущий на вход стабилизатора и подпитать измеритель от отдельного источника питания.
Собираем согласно схеме. Подстроечник припаян параллельно шунту. Им и выставляем точное значение отображаемого тока.
Для вольтметров с тремя проводами (белый, красный, черный) один конец припаиваем на среднюю ногу подстроечника, а второй сразу на вход МК.

Теперь можно посчитать нагрев шунта.

Согласно закону Ома падение напряжения равно:
U=R*I = 0.5(вольт при токе 5А) - что не очень то эффективно...
При этом, мощность рассеиваемая шунтом:
P=U*I = 0.5*5=2.5Вт

Выводы. 

Можно, если нет альтернатив. Для полноценного использования нужна дополнительная доработка по уменьшению сопротивления шунта.


воскресенье, 26 августа 2018 г.

Портативная глушилка Wifi сигнала на ESP826

Данный пост был написан для ознакомления возможностей ESP8266. Помните, описанные в этом посте действия над некоторыми WiFi сетями могут быть наказуемы!. Не проводите эти действия над другими сетями.
Сразу опустим все аппаратные и программные моменты.  Технически, это устройство, которое позволяет производить "WiFi deauthentication attack".  Вы выбираете клиентов, которых вы хотите отключить от WiFi сети и начинаете атаку.

ШАГ 1
Покупаете esp8266 Nodemcu на Али.  Стоит на примерно $2.
Можете сделать это по ссылке, можете в другом магазине, если у вас ее еще нет. Я покупал по ссылке.
ШАГ 2
Я не автор этого кода. Все поздравления направляются ему.
Переходим по ссылке и скачиваем архив и распаковываем его.

ШАГ 3

Скачиваем и станавливаем Arduino IDE (у меня это весия 1.8.2)
ШАГ 4
  1. Открываем Arduino IDE
  2. Переходим Файл > Настройки
  3. Вставляем эту ссылку > http://arduino.esp8266.com/stable/package_esp8266com_index.json
  4. Далее переходим Инструменты > Плата > Менеджер плат
  5. Ищем в поиске Esp8266 и устанавливаем версию 2.0.0
  6. Затем, снова переходим в Файл > Настройки и открываем ссылку "Другие настройки можно отредактировать непосредственно в файле"
  7. Копируем это имя user_interface.h ) и вставляем в поиск по папке и открываем с помощью текстового редактора.
  8. Прокручиваем файл до конца и перед " #endif " вставляем эти 4 строки
     typedef void (*freedom_outside_cb_t)(uint8 status);
    int wifi_register_send_pkt_freedom_cb(freedom_outside_cb_t cb);
    void wifi_unregister_send_pkt_freedom_cb(void);
    int wifi_send_pkt_freedom(uint8 *buf, int len, bool sys_seq);
  9. Сохраняем, закрываем :D
  10. Подключаем ESP дата кабелем.
  11. Запускаем Arduino IDE, открываем код, выбираем нужную плату в менеджере и загружаем.
ШАГ 5
Подключаемся к точке по ip 192.168.4.1 (название сети - pwned, пароль - deauther) и  поочередно клацаем на Search ,Select и Attack на любую сеть в радиусе ESP8266.
Название сети и пароль по-умолчанию можно изменить в файле Settings.cpp


У меня заработала после некоторых танцев с бубном. Блочит как гаджеты так и компьютеры. Для некоторых может пригодиться использовать файлы из папки sdk_fix. Несомнено интересная игрушка, особенно в сочетании с повер банком! Ну и в заключении пару скринов от себя. Блокирует 1 устройство и сразу всех.

Управление LM317 от ШИМ сигнала

егулируемый интегральный стабилизатор напряжения LM317 компании National Semiconductor является очень популярной микросхемой, применяемой в источниках питания. LM317T позволяет изменять выходное напряжения в диапазоне от 1.25 до 37В при максимальном токе нагрузки до 1.5A. Регулировка выходного напряжения осуществляется на входе Vadj, для этого обычно применяют делитель напряжения, а для точной подстройки можно использовать потенциометр вместо постоянного резистора. См. онлайн калькулятор LM317/LM350/LM338
Однако, с развитием цифровой техники, иногда встает задача управления выходным напряжением преобразователя от микроконтроллера, либо любого другого цифрового устройства с ШИМ выходом. Представленная ниже схема позволяет заменить потенциометр или постоянные резисторы аналоговым напряжением после ШИМ сигнала. Т.е. можно осуществить real-time мониторинг выходного напряжения и точную его подстройку.

Используя операционный усилитель и простейший ФНЧ фильтр на RC-цепочке можно преобразовать ШИМ-сигнал в необходимый регулятору уровень постоянного напряжения на входе Vadj. После ФНЧ, ШИМ сигнал амплитудой 5В преобразуется в аналоговый сигнал 0-5В, а затем при помощи ОУ преобразуется до требуемого уровня. В качестве примера разберем ситуацию, когда ОУ умножает сигнал на 2. В таком случае на вывод Vadj преобразователя LM317 поступает напряжение от 0 до 10 Вольт. Следуя формуле Vout=Vadj+1.25В из даташита, получим размах выходного напряжения в диапазоне от 1.25 до 11.25 Вольт. Можно изменять коэффициент усиления ОУ при помощи резисторов R2 и R4, например при управлении от микроконтроллеров с 3.3В выходами.
В качестве ОУ можно применить известную м/с LM741, или любую другую, с подстройкой напряжения смещения входа. Номиналы RC-фильтра рассчитываются в зависимости от частоты ШИМ. В данной схеме частота ШИМ составляла 1 кГц.

Миллиомметр - приставка к мультиметру

Иногда в радиолюбительской практике возникает потребность измерения саб-омного сопротивления. И покупать готовый прибор ради пары - тройки измерений не особо улыбается. Предложенная мной схема - приставка к мультиметру, который может измерять милливольты - совершенна проста и точность показаний находится на высоком уровне. Собрана на доступных компонентах. Лично мной были проверенны и сверены с эталоном сопротивления до 0.01 ом включительно. Считаю, что сопротивления ниже этой отметки у обычного радиолюбителя если и встречаются, то крайне редко. По началу приставка задумывалась как прототип готового прибора, но потом, будучи удовлетворенный результатом - оставил как есть.
Схему вы можете увидеть выше. Lm317 включена в режиме ограничения тока. При составном резисторе на 1.2 Ома ток - 1А. Мультиметр замеряет ограничиваемое напряжение на нагрузке. Таким образом, зная ток и напряжение, можно по закону Ома вычистить сопротивление. Для тех, кто не помнит - вот формула:

R=U/I

Так как значение I нам известно - 1А, то R=U. Другими словами на экране мультиметра мы получаем уже сопротивлениев Омах.

Автоматический регулятор скорости вентилятора

В отличии от схемы, которая замедляет обороты вентилятора после старта (для уверенного запуска вентилятора), данная схема позволит увеличить эффективность работы вентилятора путем увеличения оборотов при повышении температуры датчика. Схема также позволяет уменьшить шум вентилятора и продлить его срок службы.

Настройка производится до закрепления термодатчика на радиаторе. Вращая R1 добиваемся чтобы вентилятор остановился и затем вращая в обратн
ую сторону заставляем его гарантированно запускаться при зажимании терморезистора между пальцами (36 градусов) Если ваш вентилятор иногда не запускается даже при сильном нагреве (паяльник поднести) то нужно добавить цепочку С1, R2. Тогда R1 выставляем так, чтобы вентилятор гарантированно запускался при подаче напряжения на холодный блок питания, а потом, через несколько секунд после заpяда конденсатора, обороты падали, но полностью вентилятор не останавливался. Теперь закрепляем датчик и проверяем как все это будет крутится пpи реальной работе.
Rt - любой терморезистор с отрицательным ТКЕ, например, ММТ1 номиналом 10 - 30 кОм. Терморезистор крепится (приклеивается) через тонкую изолирующую прокладку (лучше слюдяную) к радиатору высоковольтных транзисторов (или к одному из них).

суббота, 25 августа 2018 г.

Счетчик подписчиков Youtube

О чем мечтает каждый автор YouTube? О том, чтобы зрители смотрели все его новые видео! Если пользователи подпишутся на ваш канал, они будут сразу узнавать о новых роликах и посещать вашу страницу снова и снова. 
Счетчик подписчиков - хорошее решение для украшения интерьера любого автора Youtube . Данный счетчик позволяет показывать до 9999 подписчиков.
Потребуется: модуль сегментного индикатора на TM1637 и esp8266 (в моем случае esp-01, нам нужны всего 2 ноги). Чтобы все это более меее цивильно выглядело, я вытравил печатную плату с предумсотренным преобразователем на 3.3 вольта от 5. Также я купил рамку в FixPrice за 25 рублей и набросал картинку в формате рамки - 10х15. Если кому понадобится.

Как это работает

Скетч опрашивает через API канал на youtube и считывает показания:
  1. Количество подписавшихся
  2. Количество загруженных видео
  3. Количество просмотренных видео
  4. Количество скрытых подписчиков

Скетч

 Скачиваем нужные библиотеки:
  1. Для работы с дисплеем
  2. YouTube API
  3. ArduinoJson
#include "SevenSegmentTM1637.h"
#include                   // installed by default  
#include             // https://github.com/witnessmenow/arduino-youtube-api
#include            // https://github.com/bblanchon/ArduinoJson


#include 
#include 
const byte PIN_CLK = 0;   // define CLK pin (any digital pin)
const byte PIN_DIO = 2;   // define DIO pin (any digital pin)
SevenSegmentTM1637    display(PIN_CLK, PIN_DIO);


//------- Replace the following! ------
char ssid[] = "Имя WiFi"; // your network SSID (name)
char password[] = "Пароль";   // your network password

// google API key
// create yours: https://support.google.com/cloud/answer/6158862?hl=en
#define API_KEY "Создайте свой по ссылке выше"

// youtube channel ID
// find yours: https://support.google.com/youtube/answer/3250431?hl=en
#define CHANNEL_ID "Создайте свой по ссылке выше"



WiFiClientSecure client;
YoutubeApi api(API_KEY, client);

unsigned long api_mtbs = 1000; //mean time between api requests
unsigned long api_lasttime;   //last time api request has been done

long subs = 0;

void setup() {

  Serial.begin(115200);
display.begin();            // initializes the display
  display.setBacklight(100);  // set the brightness to 100 %
  display.print("INIT");
  
  // Set WiFi to station mode and disconnect from an AP if it was Previously
  // connected
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);

  // Attempt to connect to Wifi network:
  Serial.print("Connecting Wifi: ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  IPAddress ip = WiFi.localIP();
  Serial.println(ip);
display.clear();

}

void loop() {
  if (millis() > api_lasttime + api_mtbs)  {
    if(api.getChannelStatistics(CHANNEL_ID))
    {
      Serial.println("---------Stats---------");
      Serial.print("Subscriber Count: ");
      Serial.println(api.channelStats.subscriberCount);
      Serial.print("View Count: ");
      Serial.println(api.channelStats.viewCount);
      Serial.print("Comment Count: ");
      Serial.println(api.channelStats.commentCount);
      Serial.print("Video Count: ");
      Serial.println(api.channelStats.videoCount);
      // Probably not needed :)
      //Serial.print("hiddenSubscriberCount: ");
      //Serial.println(api.channelStats.hiddenSubscriberCount);
      Serial.println("------------------------");

  display.print(api.channelStats.subscriberCount); 
  
    }
    api_lasttime = millis();
  }

}

Установка ownCloud (Nextcloud) в OMV 4 (Arrakis) без плагинов

Всем привет!
Openmediavault 4 (Arrakis) вышел в релиз и я решил опробовать его на виртуалке.
Что привлекло в новом OMV: Debian 9.2; архитектура только 64х; "из коробки" php 7.0.
Дистрибутив OMV (на момент написания 4.0.14.) скачивается с оф. сайта:https://sourceforge.net/projects/openmediavault/files/4.0.14/openmediavault_4.0.14-amd64.iso/download
Установку самого OMV нет смысла описывать - она ничем не отличается от предыдущих версий, настройка основных сервисов тоже, а вот установка ownCloud имеет некоторые нюансы, поэтому решил сваять этот гайд.

 Общее

После установки OMV Вы увидите консоль с предложением ввести логин. Логин у всех root, а пароль тот, что Вы задали при установке. Далее, для простоты, я везде использую пароль "123", но у меня система виртуальная и не стоит так делать на рабочей системе - это понятно.
После ввода логина и пароля надо узнать (если не знаете), какой IP адрес достался серверу, чтобы зайти на его веб-морду.
Вводим:
 ip a 
В результате увидим IP(первый слева в строке, у меня это 192.168.115.134), который вводим в браузере и больше мы к этой консоли не вернемся!
Все скрины далее можете открыть в новом окне - они развернуться в полном размере.


Для ввода всех последующих команд будем использовать протокол SSH и программу PuTTY https://www.chiark.greenend.org.uk/~sgtatham/putty/
Работу с файлами и папками будем осуществлять в Midnight Commander (mc) запушенном все в том же PuTTY- это консольный файловый менеджер для Linux.
Немного о работе в mc, далее уже повторять не буду:
Копирование файла - F5
Перенос файла - F6
Создать папку - F7
Меню - F9
Перемещение курсора между панелями - Tab
Выход из mc - F10
Открыть файл для чтения - F3
Открыть файл для правки - F4 (в первый раз просит выбрать редактор - самый простой и надежный nano под цифрой 1)
Сохранить изменения в файле Ctrl+O
Выйти из режима редактирования файла Ctrl+X
Для копирования текста внутри файла надо поставить курсор клавишами стрелок (не мышкой) в место, куда вставляется текст, мышкой выделить фрагмент, который копируем, и на ранее установленный курсор кликаем правой кнопкой мышки.
Для копирования текста между файлами или между виндовой машиной и PuTTY лучше использовать сочетание Ctrl+insert (копировать) и Shift+insert (вставить).
Чтобы не писать руками пути до папок, открываем в mc нужную папку и сворачиваем панели mc сочетанием Ctrl+O. После этого открытый путь выделяем мышкой и жмем Ctrl+insert для копирования, затем панели надо вернуть опять нажав Ctrl+O !!! При свернутых панелях можно вводить команды, но не стоит открывать файлы для редактирования - есть баг. Все дело в том, что сохранение редактируемого файла и скрытие панелей используют комбинацию Ctrl+O и если Вы откроете в nano файл для редактирования и потом захотите его сохранить, то при нажатии CTRL+O у вас откроются панели mc и файл не сохранится.
Итак: Мы попали на веб-морду OMV. Стандартный логин: admin, пароль: openmediavault (лучше сразу сменить в общих настройках)


Открываем раздел сервиса SSH (он уже включен по умолчанию) и для первичной настройки можно ничего не менять, просто ввести эти же данные в PuTTY. В дальнейшем лучше отключить вход для рут и сделать для этого другого пользователя.

После ввода пользователя root и его пароля в PuTTY должны увидеть нечто подобное:

Проверяем обновления и ставим mc, поочередно выполняя команды (так как мы зашли под root, можно не писать sudo перед каждой командой)
apt-get update
apt-get upgrade
apt-get install mc
mc
Если все правильно, то Вы увидите файловый менеджер и переходим к следующему этапу.

Установка ownCloud (Nextcloud устанавливается аналогично)

Для работы ownCloud нам понадобится установить 2 плагина, которые идут в пакете OMVExtras
Скачиваем пакет с оф. сайта http://omv-extras.org/openmediavault-omvextrasorg_latest_all4.deb
Заходим на веб-морду OMV -> раздел плагины -> кнопка "загрузить" и выбираем скачанный выше файл.
После этого в списке сразу появится нужный плагин, отмечаем его и устанавливаем:

После установки в разделе плагины ждем кнопку "проверка" для обновления списков плагинов, без этого нужные не отобразятся.
Находим в списке нужные, отмечаем, устанавливаем:

Если все верно, в списке сервисов появится 2 новых, только что добавленных:

Через консоль поочередно ставим пакеты, необходимые для правильной работы ownCloud
apt-get install php7.0-zip
apt-get install php7.0-gd
apt-get install php7.0-curl
apt-get install redis-server php-redis
apt-get install php-apcu
apt-get install memcached php-memcached
Через веб-морду создаем общий каталог www и в нем подкаталок owncloud (права пока не трогаем, оставим по умолчанию). Создаем именно за 2 раза.
У меня примонтирована виртуальная файловая система с меткой "data" поэтому везде далее будет путь на этот диск.

Для хранения данных рекомендую использовать отдельную папку, вне созданной выше. Это облегчит дальнейшее администрирование.
Так же как и выше, создаем в корне диска каталог clouddata, права пока тоже по умолчанию.
С оф. сайта ownCloud скачиваем серверную часть, распаковываем и любым удобным способом закидываем в папку www/owncloud https://download.owncloud.org/community/owncloud-10.0.3.zip
Теперь можно выставить права. Чтобы не писать в консоли, делаем через веб-морду, как на скринах:

Через веб-морду создаем SSL сертификат, нужен будет позже.
Переходим к настройке MySQL.
В списке сервисов открываем MySQL, включаем, сбрасываем пароль по умолчанию:

Кнопкой "show" открываем сайт управления MySQL. Логин по умолчанию omvadmin, пароль установили шагом выше.
- Создаем базу данных owncloud и открываем ее
Через меню Инструменты -> пользователь manager создаем пользователя owncloud и даем ему пароль (у меня все тот же 123)

тут же даем пользователю права на базу owncloud (порядок действий на скрине):

Можно закрывать страницу MySQL - настройка завершена.
Настройка плагина Nginx:
В списке сервисов открываем плагин, включаем.
На вкладке pools добавим запись как на скрине (доп опции пока не трогаем, может не запуститься сайт в первый раз)

На вкладке сервера добавим сервер:

В расширенные опции сервера добавим следующее:
client_max_body_size 10G; # set max upload size
fastcgi_buffers 64 4K;

add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";

rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

index index.php;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;

location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}

location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}

location / {
# The following 2 rules are only needed with webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

try_files $uri $uri/ index.php;
}

location ~ ^(.+?\.php)(/.*)?$ {
try_files $1 = 404;

include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$1;
fastcgi_param PATH_INFO $2;
fastcgi_param HTTPS on;
fastcgi_pass $socket;
}

# Optional: set long EXPIRES header on static assets
location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
# Optional: Don't log access to assets
access_log off;
}
Теперь нам надо сделать первичную настройку облака, чтобы сконфигурировался файл config.php, который потом будем править.
В строке сервера кликаем на url и должен открыться сайт ownCloud с первичной настройкой

меняем настройки базы и путь до каталога данных на свои, пользователя и пароль указываем любого - это будет учетка админа

Первичная настройка завершена
При входе на веб-морду облака в разделе основных настроек видим ошибки:

Устраним их:
- В файл www/owncloud/config/config.php добавим следующие строки:
'memcache.local' => '\\OC\\Memcache\\APCu',
'memcache.locking' => '\\OC\\Memcache\\Redis',
- в дополнительные опции пула nginx добавим следующее:
env[PATH] = /usr/local/bin:/usr/bin:/bin
- в консоли пишем
crontab -u www-data -e
и в самый низ открывшегося файла добавим строку и сохраним:
*/15  *  *  *  * php -f /тут свой путь до папки/owncloud/cron.php
После этого надо зайти на веб-морду облака и включить в настройках cron, после чего выйти из системы и заново зайти
Вуаля! Все настройки завершены:

Запуск Storj Share для Linux

В данной статье, мы разберем вопрос запуска Storj Share для заработка с помощью лишнего пространства на наших жестких дисках. Гайд написан для пользователей Linux, именно данная ОС рекомендуется для постоянного использования в подобных делах.
Группа Storj Вконтакте: https://vk.com/storjproject
Неофициальные минимальные системные требования для установки Storj Share Daemon:
  • 1 гигабайт оперативной памяти (Критический минимум)
  • 10 гигабайт на жестком диске
  • Стабильное подключение к интернету,  +10 мбит/с
  • Средненький процессор, не рекомендуется использование Intel Atom и тому подобных.
  • Свежая ОС семейства Linux
  • Белый IP, с возможностью проброса порта вашей машины во внешний мир.
Хотелось бы дополнить. По мере наполнения вашего хранилища, растет и нагрузка, от загруженности вашего процессора зависит дельта (задержки с сетью Storj), что в последствии приводит к возможной потере контрактов.  Вы можете использовать VDS для создания ноды в Storj, но учтите, все может захлебнуться в любой момент.

Установка Storj Share Daemon в Linux

Шаг 1. Обязательно обновляем репозитории системы из под привилегированного пользователя, например root.
Для Debian & Ubuntu:
apt-get update
Для Centos:
yum update

Шаг 2. Устанавливаем необходимые зависимости для установки Storj Share Daemon.
Для Debian & Ubuntu:
apt install git python build-essential
Для Centos:
yum groupinstall ‘Development Tools’

Шаг 3. Создаем пользователя с произвольным именем, из под которого будет работать Storj Share Daemon(Обязательный пункт).
Добавить пользователя систему:
adduser имяпользователя
Сменить пароль для пользователя:
passwd имяпользователя

Шаг 4. Переходим под созданного пользователя, Вы можете заново подключиться к сессии используя новые данные, или перейти на нового пользователя с помощью команды su (при этом нужно будет сменить директорию на домашнюю).
Устанавливаем NVM.
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash

Закройте терминал, откройте новый. Установите NPM.
nvm install --lts
Шаг 5. После успешной установки NPM & NVM, устанавливаем Storj Share Daemon из репозиториев.
npm install --global storjshare-daemon
Ожидаем компиляции.
Поздравляем! Если Вы сделали все правильно, Storj Share установлен на ваш сервер. Далее необходимо настроить конфиг storj ноды и запустить его.

Запуск Storj Share Daemon в Linux

Шаг 1. Ознакомимся с доступными командами, используем пользователя под которым устанавливали Storj ранее.
Все достаточно просто, чтобы узнать, какими командами взаимодействовать с Storj, используйте:
storjshare —help

Шаг 2Запускаем Storj Share Daemon, данный процесс требуется для работы наших нод.
storjshare daemon

Шаг 3Создаем конфиг ноды для Storj Share.
Пример создания простого конфига, без дополнительных настроек.
storjshare create --storj <Адрес_Кошелька> --key <Приватный_Ключ> --storage <Адрес_Папки_или_Диска> --size <Размер> --noedit
<Адрес_Кошелька> — регистрируем адрес на My Ether Wallet, используем ему для получения вознаграждений в сети Storj.
<Приватный_Ключ> — случайный идентификатор, используется для переноса конфигов вместе с контрактами и файлами на другой сервер.
<Адрес_Папки_или_Диска> — путь, где Storj будет создавать и хранить файлы сети.
--noedit — используется для того, чтобы после создания конфига не открывался его редактор. Если вы хотите более тонко настроить Storj, уберите данный аргумент.
ВАЖНО! Если у вашей машины есть свой белый ип, или Вы пробросили порт через роутер, используйте аргумент --manualforwarding
ВАЖНО! Стандартно Storj использует 3 порта для RPC: 4000, 4001, 4002. Убедитесь данные порты не заблокированы и доступны для внешних соединений.
После создания конфига, скопируйте его идентификатор, например 3306d8d761cbe14b79c3acc5e7e19839592efc3d, он потребуется в следующем шаге для запуска.
Шаг 4. Запуск ноды Storj Share Daemon.
storjshare start -c /home/имяпользователя/.config/storjshare/configs/ИД_КОНФИГА.json
После этого Вы должны получить уведомление об успешном запуске ноды.
Шаг 5. Ждем 5 минут после запуска. Смотрим статус ноды, чтобы удостовериться что все идет по плану:
storjshare status

Здесь отображается основная информация о нашей ноде, все достаточно просто — зеленое хорошо, красное — плохо.
С помощью данной команды Вы можете отслеживать статус ноды, аптайм (время непрерывной работы, рестарты, количество подключенных пиров, контракты (показываются новые контракты полученные после рестарта), дельта (задержка), порт (В нашем случае используется белый IP, по этому Storj работает по TCP что обеспечивает максимальную отдачу), вкладка Shared отображает общее количество место уже занятое под контракты.
Storj Share Daemon установлен и запущен!
Для работы Storj очень важно синхронизировать время в системе, выполните следующие действия:
(Инструкция для Ubuntu & Debian)
service ntp stop
ntpdate -s time.nist.gov
service ntp start
timedatectl status timedatectl
list-timezones
sudo timedatectl
set-timezone <Часовой_пояс_из_списка>
После этого время будет синхронизировано.

 Автозагрузка Storj Share при включении

1. Открываем терминал и выполняем:
env > ~/.env
 2. Создаем скрипт watchdog.sh в своей домашней директории
nano ~/watchdog.sh
3. Добавляем строки в скрипт, не забывая при этом указать свои пути к файлу
#!/bin/bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
cd $HOME

APP=$(ps aux | grep -v grep | grep storjshare)
if [ -z "$APP" ];
then
echo "Restart storjshare-daemon"
storjshare daemon
fi
APP=$(ps aux | grep -v grep | grep 'farmer.js --config')
if [ -z "$APP" ];
then
echo "Restart farmers"
storjshare start --config $HOME/.config/storjshare/configs/1f100594a6c1830b3d135f537575dea05f41cbf1.json
fi
3.  Делаем его выполняемым
chmod +x ~/watchdog.sh
4. Создвем задачу Cron
crontab -e
5. Добавляем строки в самый конец файла
*/5 * * * * $HOME/watchdog.sh
@reboot $HOME/watchdog.sh