Добавить в корзинуПозвонить
Найти в Дзене
Andrey N

Установка ноды IDENA на сервер (VPS/VDS) без оболочки, как сервис

В данной инструкции мы установим ноду блокчейна Идена (Node Idena Blockchain) как сервис, чтобы она запускалась, автоматически, при перезагрузке сервера. Я надеюсь Вы уже защитили свой сервер согласно инструкций: Можно не переживать за ноду которую мы настроим? Ну что же, давайте приступим! Первым делом нужно убедиться в том, что мы находимся на сервере под нужным пользователем. ❗️ НЕ рекомендую производить установку Node Idena под пользователем «root» - это не безопасно, но каждый решает сам за себя. ❗️❗️ Если производите действия под пользователем root - вносите соответствующие изменения в ходе установки. Данная инструкция подразумевает под собой установку ноды под любым пользователем кроме root. Для того чтобы убедиться нужно обратить внимание вот на эту строчку: Если указан иной пользователь - вводим команду и нажимаем «Enter» su - USERNAME где USERNAME – это имя пользователя на которого переключаемся, в моем случае команда выглядела бы так: su - andrey Теперь нужно создать дир
Оглавление

В данной инструкции мы установим ноду блокчейна Идена (Node Idena Blockchain) как сервис, чтобы она запускалась, автоматически, при перезагрузке сервера.

Я надеюсь Вы уже защитили свой сервер согласно инструкций:

Можно не переживать за ноду которую мы настроим?

Ну что же, давайте приступим!

Первым делом нужно убедиться в том, что мы находимся на сервере под нужным пользователем.

❗️ НЕ рекомендую производить установку Node Idena под пользователем «root» - это не безопасно, но каждый решает сам за себя.

❗️❗️ Если производите действия под пользователем root - вносите соответствующие изменения в ходе установки. Данная инструкция подразумевает под собой установку ноды под любым пользователем кроме root.

Для того чтобы убедиться нужно обратить внимание вот на эту строчку:

Пользователь «andrey» (не «root»)
Пользователь «andrey» (не «root»)

Если указан иной пользователь - вводим команду и нажимаем «Enter»

su - USERNAME

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

Теперь нужно создать директорию в которую будем производить установку Node Idena (ноду Айдена/ноду Идена - кому как нравится).

Вводим команду и нажимаем «Enter»:

mkdir idena

Переходим в созданную директорию - вводим команду и нажимаем «Enter»:

cd idena

устанавливаем idena в созданную директорию - водим команду целиком (начиная с «wget» )и нажимаем «Enter»:

wget https://github.com/idena-network/idena-go/releases/download/v0.27.3/idena-node-linux-0.27.3

где idena-node-linux-0.27.3 это имя файла с указанием номера версии. Как правило, достаточно изменить только цифры, если требуется. По состоянию на 28.10.2021 последняя версия 0.27.3

Актуальную версию всегда можно найти по этой ссылке:

https://github.com/idena-network/idena-go/releases/

Скриншот с сайта github.com на котором опубликованы все версии Idena
Скриншот с сайта github.com на котором опубликованы все версии Idena

После ввода команды установки мы увидим процесс самой установки и по завершению система ожидает дальнейшей команды:

Установка IDENA завершена и сервер ожидает следующую команду
Установка IDENA завершена и сервер ожидает следующую команду

После завершения установки файл запуска IDENA будет иметь следующий вид: «idena-node-linux-0.27.3», но данный вид файл не удобен и поэтому следующей командой мы приведем его к универсальному виду:

mv idena-node-linux-0.27.3 idena-go

После ввода этой команды, стартовый файл имеет вид: «idena-go»

Чтобы в этом убедиться, вводим следующую команду нажимаем «Enter»:

ls -la

отображение файлов и директорий того места где мы сейчас находимся

Универсальный вид файла запуска IDENA
Универсальный вид файла запуска IDENA

Название файла запуска «idena-go»

Идём дальше!

Теперь нужно дать права на запуск ноды IDENA.

Вводим команду и нажимаем нажимаем «Enter»:

chmod +x idena-go

Следующей командой создаем файл конфигурации.

Копируем и вставляем весь блок текста целиком:

cat > $HOME/idena/config.json <<EOF
{
"DataDir": "datadir",
"P2P": {
"MaxInboundPeers": 12,
"MaxOutboundPeers": 6
},
"IpfsConf": {
"Profile": "server",
"IpfsPort": 40405,
"BlockPinThreshold": 0.3,
"FlipPinThreshold": 0.5,
"AllFlipsLoadingTime":21600000000000
},
"RPC": {
"HTTPHost": "localhost",
"HTTPPort": 9009
},
"Sync": {
"FastSync": true,
"LoadAllFlips": true
}
}
EOF

Нажимаем «Enter»

Теперь создаем сервис для IDENA.

Копируем и вставляем весь блок текста целиком:

cat > $HOME/idena/idena.service <<EOF
[Unit]
Description=Idena Node
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
User=$USER
WorkingDirectory=$HOME/idena/
ExecStart=$HOME/idena/idena-go --config $HOME/idena/config.json
Restart=on-failure
RestartSec=60
LimitNOFILE=1000000
[Install]
WantedBy=multi-user.target
EOF

Нажимаем «Enter»

Отправляем созданный сервис систему (потребует пароль текущего пользователя):

sudo mv idena.service /etc/systemd/system/

Вводим пароль от текущего пользователя и нажимаем «Enter»

Обновляем конфигурацию всех служб (сервисов):

sudo systemctl daemon-reload

Подключаем созданный сервис IDENA:

sudo systemctl enable idena.service

Запускаем сервис IDENA:

sudo systemctl start idena.service

❗️ Всё, нода запущена и уже начала синхронизацию!

Для того чтобы удостовериться в том, что нода запущена нужно отобразить логи ноды, для этого воспользуемся командой представленной НИЖЕ (в блоке управления): «Посмотреть идущие логи ноды IDENA».

Отобразится вот такое окно в котором будут появляться строчки, как на этом скриншоте:

Логи IDENA (ошибок нет)
Логи IDENA (ошибок нет)

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

Логи IDENA (отказ доступа)
Логи IDENA (отказ доступа)

Далее для информации - вводить не нужно

-- Блок управления --

Посмотреть идущие логи ноды IDENA:

journalctl -fu idena

чтобы выйти из них начать «Ctrl+С»

Остановить сервис IDENA:

sudo systemctl stop idena.service

Запустить сервис IDENA:

sudo systemctl start idena.service

Перезапустить сервис IDENA:

sudo systemctl restart idena.service

Отключить сервис и его автоматическую загрузку:

sudo systemctl disable idena.service

Подключить сервис и его автоматическую загрузку:

sudo systemctl enable idena.service

Вот вроде бы и всё, но нет же - остались не менее важные моменты:

1. Нужно вытащить API.KEY для вставки его в клиента IDENA, который установлен на локальном ПК.

2. Нужно сохранить содержимое файла NODEKEY (если нода установлена впервые), если нода переносится с локального ПК или другого сервера - нужно на новом сервере стереть содержимое файла NODEKEY и вместо него вставить NODEKEY которым уже пользовались так как он уже активирован.

Здесь, забегая вперед, хочу сказать следующее:

❗️ Никогда и ни при каких обстоятельствах никому не показывай содержимое этого файла.

Грубо говоря, это пароль от вашего кошелька и сам кошелек IDENA

Итак, приступим к завершающим процессам!

После запуска ноды IDENA в директории «idena» появилась директория «datadir» - переходим в нее введя команду:

cd datadir

Вводим команду для отображения списка содержимого директории «datadir»:

ls -la

Здесь мы видим содержимое директории «datadir» - сейчас нас интересует файл: «api.key»:

Содержимое директории «datadir»
Содержимое директории «datadir»

Далее Вводим команду и нажимаем «Enter»:

cat api.key && echo

Отобразится содержимое файла «api.key» (это ключ API):

API-ключ (содержимое файла «api.key») - всё, что до имени пользователя
API-ключ (содержимое файла «api.key») - всё, что до имени пользователя

Аккуратно выделяем весь ключ ЛКМ - всё, что до имени пользователя (скопируется автоматически) и сохраняем его где-нибудь на локальном ПК - он нам пригодится чуть позже.

Напоминаю: ЛКМ - Левая Кнопка Мыши, ПКМ - соответственно, Правая Кнопка Мыши

Теперь нам нужно:

  • либо сохранить содержимое файла «nodekey» находящегося на этом сервере (если нода устанавливается впервые)
  • либо вместо содержимого файла «nodekey», находящегося на этом сервере, вставить ключ NODEKEY, который мы использовали ранее на локальном ПК или другом сервере (активированный ключ).

Для выполнения данной задачи нам нужно перейти в директорию «keystore».

Вводим команду и нажимаем «Enter»:

cd keystore

Для отображения содержимого директории вводим команду и нажимаем «Enter»:

ls -la

Отобразится всего один файл «nodekey»:

Файл «nodekey» в директории «keystore»
Файл «nodekey» в директории «keystore»

ЕЩЕ РАЗ, ЕСЛИ КТО-ТО ЗАБЫЛ ИЛИ НЕ ПОНЯЛ:

❗️ Никогда и ни при каких обстоятельствах никому не показывай содержимое этого файла.

Далее по обстоятельствам (один из двух вариантов):

  • Если нужно заменить приватный ключ на сервере - открываем содержимое файла командой (предельная аккуратность):
nano nodekey

стираем ключ и вставляем свой - тот которым уже пользовались ранее на другом сервере или локальном ПК (это обычно при переносе ноды).

Приватный ключ (nodekey) - открыт для редактирования
Приватный ключ (nodekey) - открыт для редактирования

После замены приватного ключа нужно выйти из файла нажав на «Ctrl+X»

Если ключ подлежал замене - нажимаем на клавиатуре латинскую букву «y» (подтверждение внесенных изменений) и жмём «Enter».

  • Если нода устанавливается впервые с последующей активацией - нужно сохранить приватный ключ где-нибудь на локальном ПК или облачном хранилище (храните его как зеницу ока) - используем эту команду чтобы ничего, случайно, не стереть:

Открываем содержимое файла командой:

cat nodekey && echo

Отобразится приватный ключ, без возможности редактирования:

Приватный ключ (nodekey) - всё, что до имени пользователя. изменение не возможно
Приватный ключ (nodekey) - всё, что до имени пользователя. изменение не возможно

Собственно почти всё - осталось совсем чуть-чуть!

Запускаем клиент IDENA, установленный на локальном ПК (если IDENA на локальном ПК уже установлена).

Если клиент IDENA еще не установлен на локальном ПК - его нужно скачать установить, вот ссылка на релизы:

https://github.com/idena-network/idena-desktop/releases/

Переходим по ссылке и выбираем один из релизов последней версии соответствующий ОС (операционной системы) вашего локального ПК:

Страница с официальными релизами клиента Idena
Страница с официальными релизами клиента Idena

  • Если на локальном ПК установлена ОС Windows - нужно выбирать релиз Win
  • Если на локальном ПК установлена ОС Mac OS - нужно выбирать релиз Mac
  • Если на локальном ПК установлена ОС Linix- соответственно, нужно выбирать релиз Linux

После установки и(или) запуска клиента IDENA и переходим в нём в раздел «Настройки» --> «Узел (нода)»:

Раздел «Настройки узла (ноды)»
Раздел «Настройки узла (ноды)»

Переставляем чек-боксы (переключатели) так как указано на скриншоте выше:

Запустить встроенную ноду: ВЫКЛ

Подключиться к удаленной ноде: ВКЛ

Адрес ноды: http://localhost:9999

Api-ключ ноды: нужно вставить API.KEY который сохранили ранее (не путайте с NODEKEY). Стираем все эти точки и после копирования API-ключа из сохраненного место вставляем его в соответствующее поле клиента сочетанием клавиш «Ctrl+V».

Обязательно нажимаем на кнопку «Сохранить»

Вот вроде бы и ключ вставили, и адрес ноды ввели, но клиент по прежнему показывает «Offline»:

Окно клиента IDENA со статусом «Offline»
Окно клиента IDENA со статусом «Offline»

На этом этапе следует дать некоторое разъяснение:

Сам по себе клиент IDENA - это только оболочка т.е. визуальное отображение ноды на работу самой ноды, установленной на сервере, клиент никак не влияет.

Клиент IDENA используется для прохождения валидаций и составления флипов, а в остальное время его можно отключать.

Так вот (возвращаемся к вопросу статуса «Offline»)...

Клиент подключается к ноде через туннель который настраивается в консоли (в моем случае это «консоль PuTTY») и если туннель не настроен или сама консоль выключена - клиент IDENA будет показывать статус «Offline»

Сейчас давайте настроим сам туннель, для этого закрываем «консоль PuTTY» (если открыта).

Снова запускаем «PuTTY», в разделе «Сеанс» однократным нажатием ЛКМ на одном из сохраненных сеансов (на этом этапе подразумевается, что Вы уже читали и настраивали свой сервер согласно инструкции указанной в самом начале этой статьи и сохраненные сеансы у Вас есть), далее нажимаем на кнопку «Загрузить», потом переходим в подраздел «Соединение» --> «SSH» --> «Туннели»:

Окно «PuTTY» подраздел «Туннели»
Окно «PuTTY» подраздел «Туннели»

В данном окне нужно ввести:

Исходный порт: 9999

Назначение: localhost:9009

И нажать кнопку «Добавить»:

Окно «PuTTY» подраздел «Туннели»  - параметры туннеля введены и добавлены
Окно «PuTTY» подраздел «Туннели» - параметры туннеля введены и добавлены

Возвращаемся в раздел «Сеанс» и нажимаем кнопку «Сохранить»:

Окно «PuTTY» раздел «Сеанс»  - Пересохранение настроек, после настройки Туннеля
Окно «PuTTY» раздел «Сеанс» - Пересохранение настроек, после настройки Туннеля

Теперь, с обновленными настройками туннеля, нажимаем на кнопку «Соединиться»

Вводим логин и пароль от SSH-ключа соответствующего пользователя.

Примечание: лично я добил и сохранил туннели для обоих пользователей (и root, и andrey)

После соединения, через несколько секунд, в клиенте IDENA изменится статус! Был «Offline», а будет либо «Synchronized» (зеленый) - нода уже синхронизирована, либо «Synchronizing» (оранжевый) - нода еще в процессе синхронизации.

Синхронизация выполнена
Синхронизация выполнена

Синхронизация в процессе (нужно ожидать)
Синхронизация в процессе (нужно ожидать)

Ну вот и всё, процесс установки ноды на сервер завершен, сама по себе нода спокойно функционирует при выключенной консоли и(или) клиенте.

За майнинг можно, особо, не беспокоиться - если сервер перезагрузится, по какой-либо причине, нода перезапустится автоматически.

На этом данная инструкция подошла к концу и Вы можете пользоваться нодой IDENA.

!!! ЗА СКРИПТОМ ОБНОВЛЕНИЯ НОДЫ СТУЧИТЕ В ЛИЧКУ: @an_trader

Но я с вами не прощаюсь! В следующей статье я расскажу как настроить автоматическую настройку директории «ipfs»

Пожертвования и благодарность:

Яндекс (Ю.Money): https://sobe.ru/na/nuzhdy_Andrey_N

IDNA: 0x5d69be52a201f9d0a2f3ec49060112811a63e4d1