How-To: установка NRS на Raspberry Pi

From Nxt Wiki
Jump to: navigation, search
This page is a translated version of the page How-To:InstallNRSRaspberryPi and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎Nederlands • ‎español • ‎italiano • ‎português do Brasil • ‎русский • ‎українська • ‎中文(简体)‎

1 Установка Nxt (і NRS клієнта) на Raspberry Pi

(Тут, переведений спочатку опублікований спосіб, авторства barbarosinciler на 359.0.html nextcoin.org. Якщо це було корисно для вас, будь ласка, підтримаєте його, перерахувавши трохи Nxt за адресою 7121642459245273749. Java пакет до установці Nxt на ваш Pi був написаний davethetrousers, гаманець 14923118471272229432)

І Raspbian, і Nxt NRS клієнт дуже добре працюють на Raspberry Pi. Завантаження процесора складає приблизно 15-20% з відкритим веб-клієнтом і розблокованим аккаунтом. Із закритим веб-клієнтом (все ще розблокованим) вона менша, ніж 10% велику частину часу (зрідка піднімається вище і іноді МОЖЕ досягти повного завантаження). Завантаження пам'яті близько 100MB.

Коли програмне забезпечення встановлене на ваш Raspberry Pi, воно автоматично запуститься при завантаженні. Ви можете управляти ним за допомогою видаленого робочого столу з іншого комп'ютера.

Це керівництво робить наступні припущення; настроюйте відповідно!

  • ваш інсталяційний комп'ютер працює під Windows і має IP-адрес 192.168.1.20
  • IP вашого мережевого роутера 192.168.1.1

1.1 Базове керівництво по установці Raspbian

  1. викачайте і встановіть Raspbian
    • Викачайте образ Raspbian з [1]
    • Викачайте diskimager для windows [2].
    • Розгорніть образ на SD Card і завантажтеся з цієї карти на Raspberry. Ви повинні побачити конфігураційне меню.
      • Розширте файлову систему і змініть пароль.
      • Дозвольте робочий стіл після завантаження.
      • Встановіть національні налаштування (мова, розкладка клавіатури і часову зону)
      • В якості просунутих налаштувань дозволите ssh і встановите hostname, наприклад, як "rpi".
      • Перевантажтеся. Тепер ви повинні побачити робочий стіл, а система повинна працювати

1.2 Оновлення системи

  1. відкрийте командний рядок bash (LXTerminal), введіть наступне і наслідуйте інструкції:
    • sudo apt - get upgrade
      sudo apt-get dist-update
  2. Перевірте налаштування вашого IP
    • Ваш Pi повинен отримати IP -адрес з DHC, це може бути підтверджено командою ifconfig у shell. Щоб настроїти статичний ip, відкриєте командний рядок bash (LXTerminal) і введіть наступне:
      • sudo nano /etc/network/interfaces
    • Змініть наступне з:
      iface eth0 inet dhcp
      на:
      iface eth0 inet static
      address 192.168.1.10
      netmask 255.255.255.0
      gateway 192.168.1.1
      network 192.168.1.0
      broadcast 192.168.1.255
    • Натисніть CTRL+O щоб зберегти файл
    • Натисніть CTRL+X щоб вийти
    • Перезавантажте свій Pi

1.3 Установка XRDP (RDP сервер)

  1. Відкрийте командний рядок bash (LXTerminal), введіть наступне і наслідуйте інструкції:
    • sudo apt - get install xrdp
      sudo apt-get upgrade xrdp
  2. Тепер ви можете використати Microsoft Remote Desktop і працювати з Raspberry видалено.
    • У Windows натисніть Старт -> у рядку введення введіть "mstsc"
    • Введіть IP-адрес вашого Raspberry (192.168.1.10), під'єднайтеся і зайдіть під своїм паролем


1.4 Перенаправлення портів роутера/файрвола

  1. Забезпечте перенаправлення TCP порту 7874 вашого мережевого роутера на IP-адрес вашого raspberry (192.168.1.10)

1.5 Установка NXT клієнта

У вас дві можливі опції:

  1. Використайте ваш Raspberry Pi з автономним пакетом Oracle JRE included(усі питання до автора: davethetrousers )
    1. Завантажте tar.gz файл з дзеркала завантаження davethetrousers' використовуючи wget і розпакуйте його:
      • wget http:// 109.230.224.65/~nxt/nxt_rasppi.tar.gz
        tar - xf nxt_rasppi.tar.gz
      • Для автоматичного старту NRS при запуску raspberry відредагуйте файл run_nxt.sh в теці nxt таким чином:
        • nano nxt/run_nxt.sh
      • Скопіюйте код розташований у кінці цього документу, і вставте у ваш файл.
      • Натисніть одночасно CTRL + O щоб зберегти
      • Натисніть одночасно CTRL + X щоб вийти.
      • Введіть: crontab -e
      • Вставте код у кінці файлу:
        @reboot /home/pi/nxt/run_nxt.sh start
      • Натисніть одночасно CTRL + O щоб зберегти
      • Натисніть одночасно CTRL + X щоб вийти.
    2. Тепер raspberry автоматично завантажуватиме програмне забезпечення NRS при завантаженні
  2. Покрокова інсталяція зі зборкою в raspbian Java, з дзеркала розробника
    1. Завантажте клієнт NRS (поточна версія: 1.11.15) https://www.jelurida.com/nxt-client.zip
    2. Розархівуйте файл:
      unzip nxt.zip
    3. Тепер клієнт NRS знаходиться в домашній теці (/home/pi/nxt/)
    4. Введіть: crontab - e
      • Вставте в кінець файлу цей код:
        @reboot /home/pi/nxt/run.sh
      • Натисніть одночасно CTRL+O щоб зберегти зміни
      • Натисніть одночасно CTRL+X для виходу.
    5. Тепер raspberry автоматично завантажуватиме програмне забезпечення NRS при завантаженні

1.6 Скрипт зупинки Nxt

  1. Створіть новий файл в каталозі /home/pi/nxt/ і назвіть його, наприклад, "stop_nxt.sh":
    nano nxt/stop_nxt.sh
    1. Якщо Ви використовуєте пакет Java davethetrouser, вводите цей код:
      /home/pi/nxt/ejre1.7.0_45/bin/java - Xmx1024M - cp nxt.jar;lib/*;conf nxt.Nxt STOP.PORT=11111 STOP.KEY=123456 --stop
    2. Якщо Ви завантажували безпосередньо програмне забезпечення Nxt :
      /usr/bin/java - Xmx1024M - cp nxt.jar;lib/*;conf nxt.Nxt STOP.PORT=11111 STOP.KEY=123456 --stop
  2. Натисніть CTRL+O для збереження файлу.
  3. Натисніть CTRL+X щоб вийти.

Тепер Ви можете зупинити клієнт з командного рядка наступною командою:
sudo bash nxt/stop_nxt.sh Перш ніж перезавантажувати Ваш Pi, Ви повинні використати цей скрипт, щоб запобігти помилці blockchain !

Тепер можете перезавантажити систему командою:
sudo reboot

1.7 З'єднання з довільним комп'ютером замість localhost

  1. Створіть файлnxt.properties у теці nxt/conf/. Ви можете створити цей файл з командного рядка використовуючи команду: nano nxt/conf/nxt.properties і запишіть в нього наступне. Упевніться, що змінили IP відповідно до Вашого:
    nxt.allowedBotHosts=127.0.0.1; localhost; 192.168.1.20; 0:0:0:0:0:0:0:1;
    nxt.allowedUserHosts=127.0.0.1; localhost; 192.168.1.20; 0:0:0:0:0:0:0:1;
  2. Натисніть CTRL+O для збереження файлу.
  3. Натисніть CTRL+X щоб вийти.

1.8 Старт форжинга вручну за допомогою NRS клієнта

Щоб почати форжинг вам треба спочатку залогиниться у вашому веб-браузері.

  1. Відкрити https://192.168.1.10:7876
  2. Розблоковувати аккаунт своєю секретною фразою (займає декілька секунд).
  3. Якщо в лівій стороні, поряд з червоною точкою, напис "Not forging", клацніть по ньому, щоб запустити форжинг.
  4. Якщо клієнт розблокований, ви можете закрити браузер і система почне форжинг.

1.9 Управління NRS і помилки Java

Ви можете перевірити файли логирования java (nxtout.txt і nxterr.txt) в каталозі nxt на наявність помилок!

1.10 З'явилися проблеми?

Подивіться Відповіді на питання, що часто ставляться, і "Загальні проблеми і їх рішення"!

1.11 Додаткові корисні команди і інструменти

1.11.1 Змонтуйте видалено ваш жорсткий диск на комп'ютері з Windows для доступу до нього з Raspberry Pi

sudo mount -t cifs //192.168.1.20/c$ /mnt -o user=myusername Де:

  • x = IP-адрес вашого комп'ютера з Windows
  • myusername = ім'я користувача на комп'ютері з Windows

1.11.2 Запустіть інтерфейс редагування налаштувань raspbian (мова, налаштування клавіатури, налаштування часу, ім'я хоста і так далі)

sudo raspi-config

1.11.3 Перевірка конфігурації вбудованої Java

sudo update-alternatives --config java Стандартне місцерозташування відмічене зірочкою, шлях буде щось подібне до /usr/lib/jvm/jdk-7-oracle-armhf/jre/bin/java/ Налаштування за умовчанням - priority=317 і auto-modus. Якщо вас усе влаштовує, підтвердіть натисненням Enter.

1.11.4 Видалене адміністрування за допомогою putty

Ви можете управляти вашим raspberry за допомогою утиліти "putty", через командний рядок SSL з'єднання. Викачайте утиліту звідси [3]

1.12 run_nxt.sh file

Використайте наступний код у Вашому run_nxt.sh скрипті:

#!/bin/bash
### BEGIN INIT INFO
# Provides:          NXTserver
# Required-Start:    $local_fs $remote_fs $network $syslog $named $sshd
# Required-Stop:     
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/stop NXT server
### END INIT INFO

if [ `id -u` != "0" ] && [ "$1" = "start" -o "$1" = "stop" ] ; then
  echo "You must be root to start/stop nxt."
  exit 1
fi

# Settings
nxtdir=/home/pi/nxt
nxt=nxt.jar
java=/usr/bin/java
nxtpid=/var/run/nxt.pid
nxtlog=/home/pi/nxt/nxt.log
nxtuser=pi
nxtgroup=pi
nxtnice=19
timeout=700
maxmem=120
# end Settings

# check for exist files and dirs
test -d $nxtdir || exit 0
test -f $nxtdir/$nxt || exit 0
test -f $java || exit 0

# make sure $nxtdir is ours!
chown -R $nxtuser:$nxtgroup $nxtdir

. /lib/lsb/init-functions

function status {

    start-stop-daemon -T --pidfile "$nxtpid" && echo "NXT server is started." \
    || { echo "NXT server is stopped." ; return 1; }

    return 0;
}

case "$1" in
    start)
        log_daemon_msg "Starting NXT server..." "" || true

        # check if server is running
        if [ -e $nxtpid ]; then
            pid=`cat $nxtpid`
            var=`ps -p$pid | wc -l`

            if [ $var -lt "2" ]; then
                # clear logfile
                echo -n > $nxtlog
            else
                echo -n " NXT server is already running!"
                log_end_msg 0 || true
                exit 0
            fi
        fi
        
        # Enable Debug for more info when starting NXT
        if cat $nxtdir/conf/nxt.properties | grep -q  "nxt.debug="; then
            if cat $nxtdir/conf/nxt.properties | grep -q  "nxt.debug=true"; then
                # Debug is enabled, nothing todo...
                echo -n ""
            elif cat $nxtdir/conf/nxt.properties | grep -q  "nxt.debug=false"; then
                echo nxt.debug=true >> $nxtdir/conf/nxt.properties
            fi
        else
            echo nxt.debug=true >> $nxtdir/conf/nxt.properties
        fi
                
        # n minute timeout.
        sleep $timeout &
        timerPid=$!

        # check log file and generate status-msg; will be killed when server is started or timeout hit
        tail -q -n0 -F --pid=$timerPid $nxtlog 2> /dev/null | while read line; do

            if echo $line | grep -q  "Scanning blockchain"; then
                echo -n " Scanning blockchain"            
            elif echo $line | grep -q  "processed block"; then
                echo -n "."            
            fi

            if echo $line | grep -q  "started successfully."; then
                echo -n "NXT server started successfully."
                log_end_msg 0 || true
                # stop the timer..
                kill $timerPid > /dev/null 2>&1
				$nxtdir/traffic_shaper.sh > /dev/null 2>&1
            fi
        done &
        
        # start server
        if start-stop-daemon --start --name nxt --nicelevel $nxtnice --chuid $nxtuser:$nxtgroup --pidfile $nxtpid -m --chdir $nxtdir --exec $java >> $nxtlog 2>&1 -- -Xmx"$maxmem"m -cp $nxt:lib/*:conf nxt.Nxt >> $nxtlog 2>&1 & then
            # wait for the timer to expire (or be killed)
            wait %sleep > /dev/null 2>&1
        else
            log_end_msg 1 || true
        fi
        ;;
    stop)
        log_daemon_msg "Stopping NXT server..." || true

        # check if server is running
        if start-stop-daemon --stop --pidfile $nxtpid > /dev/null 2>&1; then
            
            while status > /dev/null; do
                sleep 1;
            done
            
            echo -n " NXT server stopped."
            log_end_msg 0 || true
            rm $nxtpid  > /dev/null 2>&1
        else 
            echo -n " NXT server is not running!"
            log_end_msg 0 || true
            exit 0
        fi
        ;;
    restart)
        $0 stop
        sleep 1
        $0 start
        ;;
    status)
        status
        ;;
    *)
        echo "usage:`basename $0` start | stop | restart | status"
        exit 1
        ;;
esac