Nym

Nym

@CryptoWatermelon

Введение


Для запуска узла понадобится сервер, соответствующий следующим требованиям:

  • 2 CPU | 1 RAM | 20 GB HDD | Ubuntu 20.04 | Поддержка IPv4 и IPv6 протоколов.

Арендовать можно на любом понравившемся сервисе. Лично я рекомендую воспользоваться услугами WebTropia, First VDS, Vdsnia.

Для подключения к серверу через SSH и работы с ним будем использовать MobaXterm. Гайд по MobaXterm.


Установка ноды


# Устанавливаем необходимые пакеты.

$ sudo apt-get update

$ sudo apt-get install curl

$ sudo apt-get install git

$ sudo apt-get install tmux

# Устанавливаем rust.

$ curl https://sh.rustup.rs -sSf | sh # При загрузке скрипт попросит выбрать вариант установки. Просто жмём Enter т.е. выбираем дефолтные вариант.

$ source $HOME/.cargo/env

# Клонируем git репозиторий с файлами ноды.

$ git clone https://github.com/nymtech/nym.git

$ cd nym 

# Выполняем сбор проекта.

$ cargo build --release 

# Если при компиляции высочит ошибка, прописываем команду, указанную ниже, для фикса и заново компилируем.

$ sudo apt-get install pkg-config build-essential libssl-dev -y

# Если ошибок при компиляции не возникло, идём дальше. Открываем порты IPv4.

$ sudo ufw allow 22/tcp

$ sudo ufw allow 1789/tcp

$ sudo ufw enable

$ sudo reboot

# Проверяем, работает ли у нас IPv6

$ ping6 ipv6.google.com
Если все работает правильно, то пойдут логи.
# Если логи не пошли (если у вас все ок - пропускайте эту часть).

# Выводим список всех сетевых интерфейсов

$ ifconfig -a

Ищем сетевой интерфейс, который требует настройки. В моём случае, это ens3 (на скриншоте подчёркнуто красным).

# Открывает файл /etc/network/interfaces с помощью редактора nano 

$ sudo nano /etc/network/interfaces

# Редактируем файл:

auto <interface name>
iface <interface name> inet6 static
pre-up modprobe ipv6
address <IPv6 server address>
netmask <netmask number>
gateway <IPv6 gateway>

# Чтобы сохранить изменения в файле, жмём Ctrl + X -> y -> Enter
# Открываем файл /etc/resolv.conf с помощью редактора nano

$ sudo nano /etc/resolv.conf

# Редакируем файл:

nameserver <IPv6 server address>

# Сохраняем.
# Запускаем сетевую службу

$ ifdown <interface name> && ifup <interface name>

# Проверяем, заработал ли IPv6

$ ping6 ipv6.google.com
Если все работает правильно, то пойдут логи.
# Продолжаем установку ноды.

# Устанавливаем имя ноды. Имя ноды можно выбрать любое. Например, имя моей ноды - cryptowatermelon_node

$ echo 'export NYMNAME="set_your_name"' >> ~/.profile

# Устанавливаем телеграм @username

$ echo 'export USERNAME="@set_your_username"' >> ~/.profile

$ source ~/.profile

$ cd $HOME/nym/target/release/

$ ./nym-mixnode init --id $NYMNAME --host $(curl ifconfig.me)
Данные (Identity key и Sphinx key), которые вы увидите после ввода вышеуказанной команды, потребуются нам совсем скоро для привязки ноды к кошельку на сайте. Сохраняем их.
# При выполнении нижеуказанной команду необходимо заменить TELERGARM_USERNAME на свой @username

$ ./nym-mixnode sign --id $NYMNAME --text $USERNAME

# Запрашиваем токены по инструкции из терминала. 

# Увеличиваем лимит открытых файлов. Нужно для правильной работы ноды.

# Открываем файл /etc/sysctl.conf с помощью редактора nano.

$ sudo nano /etc/sysctl.conf

# Добавляем в конец файла строку:

fs.file-max = 500000

# Чтобы сохранить изменения в файле, жмём Ctrl + X -> y -> Enter
# Выполняем следующую команду, чтобы изменения вступили в силу

$ sysctl -p

# Задаём лимиты для каждого пользователя.

# Открываем файл /etc/security/limits.conf с помощью редактора nano.

$ sudo nano /etc/security/limits.conf

# Вставляем в файл следующие параметры:

* hard nofile 500000
* soft nofile 500000
root hard nofile 500000
root soft nofile 500000

# Сохраняем изменения.
# Проверям, все ли сделали правильно.

$ cat /proc/sys/fs/file-max
# Создаём сессию tmux и запускаем ноду. Если вы никогда раньше не работали с tmux, советую загуглить "шпаргалка tmux".

$ tmux new -s nym

$ cd $HOME/nym/target/release/

$ ./nym-mixnode run --id $NYMNAME
Если все сделали правильно, нода запустится и, примерно через минуты 3 пойдут логи.


Привязываем ноду к веб-кошельку.

  • Переходим на сайт веб-кошелёка и создаём кошелёк. Не забываем записать мнемонику.
  • В телеграм канале https://t.me/halbotnym запрашиваем тестовые токены командой
/faucet АДРЕС_ВАШЕГО_КОШЕЛЬКА
  • Переходим во вкладку "Bound" и заполняем все поля.


Установка и настройка завершена. Статус ноды можно отслеживать через эксплорер.


ВНИМАНИЕ! Перед каждым перезапуском делайте Unbond ноды в веб-кошельке. После запуска привязывайте заново.


Создание бекапа


Данные, необходимые для бекапа, хранятся в папке data, расположенной по пути $HOME/.nym/mixnodes/$NYMNAME/ Эту папку необходимо скопировать себе на компьютер. После переустановки ноды будет достаточно заменить вновь созданную папку data на сохранённую ранее.


Обновление ноды


# Переходим к сессии tmux, где запущена нода.

$ tmux attach -t nym 

# Останавливаем ноду сочетанием клавиш Ctrl + C

# Переходим в директорию с кодом NYM. С помощью git скачиваем последнюю версию кода.

$ cd $HOME/nym

$ git fetch

# Переключаемся на нужную версию кода. На момент написания гайда актуальная версия - v0.10.1 Отслеживать версию кода можна на GitHub https://github.com/nymtech/nym

$ git checkout set_version

# Компилируем код.

$ cargo build --release

# Запускаем ноду.

$ $HOME/nym/target/release/nym-mixnode upgrade --id $NYMNAME

$ $HOME/nym/target/release/nym-mixnode run --id $NYMNAME

Полезные ресурсы:


Report Page