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)
# При выполнении нижеуказанной команду необходимо заменить 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
Привязываем ноду к веб-кошельку.
- Переходим на сайт веб-кошелёка и создаём кошелёк. Не забываем записать мнемонику.
- В телеграм канале 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
Полезные ресурсы:
- https://linux-notes.org/uvelichit-max-open-file-limit-v-linux/
- https://1cloud.ru/help/network/nastroika-ipv6-na-ubuntu-debian
- https://nymtech.net/docs/run-nym-nodes/mixnodes/