NXTER.ORG

Как сделать: Настройка Nxt ноды на Raspberry Pi 2

nxt-raspberry-pi2

Nxt является одной из самых впечатляющих и недооцененных одноранговых сетей в Интернете. Это децентрализованная блокчейн платформа с открытым исходным кодом, ввела новый алгоритм консенсуса proof-of-stake и выжила в диких условиях в течение 2 лет. Сегодня технологии, пионером которых является Nxt, используются в хорошо финансируемых проектах, таких как Эфириум, в то время как Nxt остается вне поля зрения радаров.

Но разработчики Nxt были очень заняты, и последний релиз приносит еще один набор передовых возможностей.API продолжает расширяться, в то время как программное обеспечение требует минимальных системных ресурсов для работы. “Полная нода” генерирования блоков может работать на Raspberry Pi 2, стоимостью около 50 $ по частям, и если вы читаете эту статью вы, вероятно, хотите создать свою собственную, так что давайте начнем.

Вам понадобится следующее:

  • Raspberry Pi 2
  • Карта памяти microSDHC 8GB+ (класс 6, но рекомендуется выше)
  • Микро USB кабель для питания
  • Сетевой кабель категории 5 (Cat 5) или USB wifi адаптер
  • USB клавиатура, монитор + HDMI кабель (только для первоначальной настройки)

Установка ОС

Мы будем использовать Linux, потому что он надежный, безопасный и бесплатный. Raspbian является наиболее используемой версией Linux для устройств Raspberry Pi, и он хорошо поддерживается. На момент написания статьи, последняя версия Raspbian это “Джесси” (2015-11-21), которая доступна для скачивания на RaspberryPi.org. Это будет специальная нода и клиент будет доступен только удаленно, так что я рекомендую использовать Jessie Lite, поскольку нам не понадобится оконный менеджер.

Есть множество путей записи образа на microSDHC карту и инструкций по установке на Linux, OS X и Windows.

“Это легко, если вы однажды сделали это…”

Конфигурация ОС

После того, как microSDHC карта готова, вы можете загрузить Raspberry Pi 2 в первый раз. Сначала вставьте карту памяти, подключите USB-клавиатуру, Ethernet-кабель и HDMI, а затем подайте питание на Raspberry Pi 2, подключив кабель микро USB. Многие потребительские маршрутизаторы продаются с портом USB, который должен быть в состоянии питать Raspberry Pi 2, но если вы планируете использовать любые периферийные устройства (например, USB WiFi) я рекомендую использовать 1.0A+ USB A/C адаптер.

После загрузки системы вы должны увидеть приглашение для входа. По умолчанию имя пользователя – pi пароль – raspberry. После того как вы вошли в систему, чтобы установить последние обновления ОС, введите:

sudo apt-get update
sudo apt-get upgrade

Затем запустите утилиту конфигурации ОС, набрав:

sudo raspi-config

Первое, что нужно сделать, это изменить пароль по умолчанию на что-то надежное. Выберите “2 Изменить пароль пользователя” (“2 Change User Password”) и следуйте инструкциям, чтобы установить новый пароль.

Выберите “9 Дополнительные параметры” (“9 Advanced Options”)

Поскольку мы не используем оконный менеджер, мы можем перераспределить графическую память в ОС. Выберите “Разделить память A3” (“A3 Memory Split”) и установите значение 16.

Если вы хотите получить доступ к вашей ноде с другого компьютера через SSH, можно запустить службу под “А4 SSH”. Я очень рекомендую установить SSH  когда у вас все заработает.

Наконец, выберите опцию “1 Развернуть файловую систему” (“1 Expand Filesystem”) для перезаписи таблицы разделов вашей microSDHC карты и использования всей емкости.

После завершения нажмите ESC, чтобы выйти из raspi-конфигурации и перезагрузите систему:

sudo reboot

После повторного входа в систему, проверьте и убедитесь, что корневая файловая система смонтирована/была расширена:

df -h

Размер корневой файловой системы должны быть близок к размеру вашей microSDHC карты.

Filesystem      Size  Used Avail Use% Mounted on
/dev/root        15G  2.2G   13G  14% /

Теперь мы увеличим пространство подкачки с помощью редактирования файла конфигурации подкачки и перезапуска службы:

sudo nano /etc/dphys-swapfile

Измените строку CONF_SWAPSIZE, установив значение 512 или 1024 и сохраните файл (CTRL-O, ENTER, CTRL-X).

# set size to absolute value, leaving empty (default) then uses computed value
#   you most likely don't want this, unless you have an special disk situation
CONF_SWAPSIZE=1024

Перезапустите службу файла подкачки:

sudo service dphys-swapfile restart

Конфигурация сети

Так как это будет полная нода, вам нужно будет разрешить трафик одноранговой сети через межсетевой экран маршрутизатора. Каждая сетевая конфигурация отличается, поэтому этот раздел будет носить общие рекомендации. Предполагая, что вы подключены к маршрутизатору с поддержкой DHCP, у вашего Raspberry Pi 2 должен быть локальный IP адрес, в противном случае вам нужно будет настроить статический IP-адрес. Чтобы показать текущую конфигурацию сети:

ifconfig eth0

eth0   Link encap:Ethernet  HWaddr b1:ff:4a:a4:ff:1b
       inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0

inet addr это ваш локальный IP-адрес, HWaddr это ваш МАС-адрес. В конфигурации маршрутизатора, найдите настройки переадресации портов и направьте TCP/UDP трафик для порта 7874 на локальный IP-адрес вашего Raspberry Pi 2. Если вы не используете статический IP-адрес, вы должны настроить статический DHCP (ака DHCP резервирование) для MAC-адреса и локального IP-адреса. Таким образом Raspberry Pi 2 всегда будет получать тот же локальный IP-адрес, который вы настроили в правиле проброски порта.

Установка Java

Nxt требуется Java 8. Вы можете скачать и вручную установить Oracle JRE, или можете проще установить OpenJDK JRE:

sudo apt-get install openjdk-8-jreВы любите Java.

Убедитесь, что Java правильно установлена проверив версию:

java -version

Вы должны увидеть результат, похожий на этот:

openjdk version "1.8.0_40-internal"
OpenJDK Runtime Environment (build 1.8.0_40-internal-b04)
OpenJDK Zero VM (build 25.40-b08, interpreted mode)

Установка Nxt

Скачайте последнюю версию Nxt с публичного репозитория. Вы можете использовать команду wget в консоли для прямого скачивания файла через HTTPS. На момент написания статьи текущая версия Nxt 1.7.4, но вы захотите убедиться, что используете последнюю версию.

wget https://bitbucket.org/JeanLucPicard/nxt/downloads/nxt-client-1.7.4.zip

Проверьте хэш пакета и убедитесь, что он соответствует хэшу в в примечаниях к релизу. Вы также можете проверить хэш в блокчейне. Nxt аккаунт, используемый ведущим разработчиком ядра Nxt Жан Люком NXT-X4LF-9A4G-WN9Z-2R322.

sha256sum nxt-client-1.7.4.zip

baf0286983fee3f718ea755dd76f5e9bb3d6a2962560368d513ffc9517d10c9b  nxt-client-1.7.4.zip

Распакуйте архив, чтобы создать “nxt” каталог:

unzip nxt-client-1.7.4.zip

Перед настройкой Nxt, найдите свой публичный IP-адрес. Вы можете сделать это с помощью команды:

curl ipinfo.io

Запишите ваш IP-адрес, а затем выполните следующую команду, чтобы создать новый файл конфигурации:

nano ~/nxt/conf/nxt.properties

Ниже приведен пример файла конфигурации:

nxt.myAddress=12.34.56.78
nxt.apiServerHost=0.0.0.0
nxt.allowedBotHosts=*

Если вы смогли настроить переадресацию портов на маршрутизаторе, выставите в nxt.myAddress ваш IP адрес, как показано в выводе curl команды, в противном случае удалите эту строку из файла конфигурации. Для других параметров, мы установим API, чтобы разрешать подключение отовсюду. Если у вас все работает, вы должны рассмотреть вопрос об ограничении доступа к локальной сети или конкретным IP адресам. Смотрите nxt/conf/nxt-default.properties для описания параметров конфигурации. Сохраните файл конфигурации и выйдите из редактора.

Отредактируйте файл запуска и оптимизируйте конфигурацию памяти:

nano ~/nxt/run.sh

Добавьте параметр -Xmx640m для увеличения значения по умолчанию распределения динамической памяти Java до 640mb:

java -Xmx640m -cp classes:lib/*:conf nxt.Nxt

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

Запуск & Подключение

Nxt работает как серверный процесс, который обеспечивает API и интерфейс веб-клиента. Во-первых, запустите сервер:

cd ~/nxt
./run.sh

Вы должны увидеть запуск Nxt сервера и синхронизацию с сетью. После завершения запуска, вы увидите следующее:

2016-01-03 13:43:28 INFO: Nxt server 1.7.4 started successfully.
2016-01-03 13:43:28 INFO: Copyright © 2013-2016 The Nxt Core Developers.
2016-01-03 13:43:28 INFO: Distributed under GPLv2, with ABSOLUTELY NO WARRANTY.
2016-01-03 13:43:28 INFO: Client UI is at http://localhost:7876/index.html

Откройте веб-браузер на компьютере, подключенном к той же сети и перейдите к локальному IP в Raspberry Pi 2 на порт 7876.

Пример: http://192.168.1.10:7876

Для интерактивного API-интерфейса, добавьте /test в URL-адрес.

Пример: http://192.168.1.10:7876/test

Поздравляем, если вы получили доступ к страницу входа/тестовой странице, установка Nxt прошла успешно. Чтобы остановить Nxt сервер, нажмите CTRL-C в консоли.

Заключительные шаги

 

Включение SSL

Прежде чем вы сможете безопасно использовать Nxt, необходимо настроить SSL на вашей ноде. Если вы используете HTTP, злоумышленник в вашей сети может украсть ваш пароль. Я настоятельно рекомендую настроить самоподписанный сертификат для вашей ноды, используя только протокол HTTPS. Я постил некоторые “шпаргалки” на основе инструкций в вики. Разработчик ядра Riker создал ветку по настройке SSL.

Установка экрана

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

sudo apt-get install screen

Чтобы использовать экран на Nxt сервере, отредактируйте run.sh командой:

nano ~/nxt/run.sh

screen -mS nxt java -Xmx640m -cp classes:lib/*:conf nxt.Nxt

В следующий раз когда вы запустите сервер, используя run.sh, вы сможете отсоединиться от процесса, нажав Ctrl-A, Ctrl-D. Для повторного прикрепления сессии, введите команду:

screen -r nxt

Автозапуск

Самый простой способ автоматически запускать сервер Nxt при загрузке с планировщиком задач cron. Вы должны добавить запись указания @reboot и произвести запуск:

crontab -e

@reboot sleep 30 && cd /home/pi/nxt && ./run.sh

В этом примере сервер Nxt будет запущен через 30 секунд после загрузки. Вы можете использовать cron для планирования других задач.

При возникновении вопросов или комментариев, пожалуйста, посетите ветку форума для этого блога.

View this in: English 简体中文 Español

Оставьте комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.