Ноды / Nodes
July 29

Установка актуальных нод на один "супер" сервер.

Содержание


В этом гайде мы установим все актуальные ноды, такие как Allora, Waku, Farcaster, Ritual, Titan, Humanoda и Analog

Выбор сервера


Давай посчитаем характеристики которыми должен обладать сервер.
В таблице представлены рекомендованные характеристики для каждой ноды.

В итоге получаем что нам необходимо:

  • не менее 58 ГБ оперативной памяти (этот параметр лучше не уменьшать)
  • 1.3 ТБ свободного места на SSD (HDD крайне не рекомендую брать), этот параметр можно уменьшить до примерно 1 ТБ, проекты редко потребляют все заявленное свободное место (на крайний случай со временем одну ноду можно отселить)
  • 25 ядер процессора, тут тоже не все так однозначно складывается, проекты могут задействовать одни и те же ядра, и количество потоков процессора тоже имеет значение.

Так что выбирай сначала по размеру SSD, затем смотри количество оперативной памяти, а процессор уж какой достанется.
Операционную систему выбирай Ubuntu 22.04 (большинство нод нормально работают на ней, теперь и Humanode тоже работает)

Переходи к аренде "супер" сервера, можешь взять его на Play2go.

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


Ноды Ritual, Allora, Titan, Humanoda можешь устанавливать в любой последовательности, они ни как не мешают друг другу.

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

В гайде я начну с Ritual, гайд по установке тут. Переходи внимательно не спеша устанавливай ноду.

После установки у тебя в Docker появятся пять контейнеров. Обрати внимание на порты которые используют контейнеры (подчеркнуты на скрине), некоторые из них используют другие ноды (Farcaster и Waku), нам придется их поменять.

Проверь все запущенные контейнеры командой:

 docker ps

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

Теперь переходи к гайду по установке ноды Allora.
Есть два гайда по установке, один основан на официальных документах - "ручная" установка.
Второй облегчает установку, но основан на скрипте из интернета, при использовании скриптов существуют риски, что автор заложил код, который поможет завладеть ему твоими учетными данными (сид-фраза, приватный ключ кошелька).
Принимай решение каким методом пользоваться, Cам!

После установки любым из способов в твоем Dockere появятся еще четыре рабочих контейнера, так же могут появиться остановленные контейнеры (ничего с ними не делай, просто знай что они есть)

Посмотри все существующие контейнеры командой:

docker ps -a

Ну вот теперь на твоем "супер" сервере уже две ноды спокойно существуют между собой!

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

Переходи к установке простенькой ноды. Гайд тут.

После ее установки добавится еще один контейнер:

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

Ну вот подошли к последней ноде при установке которой у нас не возникнет никаких трудностей с портами.
Установка Humanode происходит не через докер, поэтому новых контейнеров ты не увидешь.
Переходи к установке, вот гайд. Потом возвращайся - продолжим!

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

При установке этой ноды у нас возникнут конфликты портов Rituala и Grafanы Farcastera (порт 3000)

Есть два варианта решения этой проблемы:

  • Остановить один контейнер Rituala, установить Farcaster (посмотреть что в Grafane все хорошо), остановить контейнер с Grafana Farcastera и запустить Ritual снова.
    После этого Grafana Farcastera перестанет работать, мониторить работу ноды можно через логи контейнера. При обновлении Farcastera процедуру нужно повторить!
  • Во втором варианте, установка Farcastera происходит не скриптом, а через Docker, сразу уже без Grafanы. С самого начала отсутствует возможность удобного мониторинга ноды через Grafany, но зато нет упражнений с остановкой и запуском контейнеров при обновлениях.

На данный момент гайд по установке Farcastera есть только скриптом, если будут желающие установить через Docker выпущу гайд (пишите в группе).

И так приступим! Сейчас нужно определить какой контейнер остановить. Команда ниже покажет все существующие контейнеры

docker ps -a

Находи контейнер Rituala который использует порт 3000, это контейнер hello-world, останови его командой

docker stop hello-world

или используй id этого контейнера

docker stop <id>

Еще раз введи команду и убедись что контейнер остановился.

docker ps -a

Переходи к гайду по установке ноды Farcaster, после полной установки (придется подождать долго). Возвращайся сюда, включим Ritual обратно.

После установки Farcastera добавится еще три контейнера, проверь версию в Grafane и если все отлично, контейнер с Grafana нужно выключить, а контейнер Rituala запустить.

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

docker stop <id>
<id> замени на ID контейнера Grafana который занимает 3000 порт.

Для запуска контейнера Rituala используй команду:

docker start hello-world

или используй id этого контейнера

docker start <id>

Всё Farcaster и Ritual подружились, немного через костыли, но все же все ноды работают!

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

Начни установку ноды Waku по этому гайду, перед разделом "Запуск ноды" (я оставил пометочку в гайде для тебя) вернись сюда и продолжи здесь.

И так, нода Waku хочет занять три порта уже занятых другими нодами (8000, 3000 и 4000). Давай изменим их.

cd ~/nwaku-compose
nano docker-compose.yml

В этом файле тебе нужно поменять значения в трех строчках, выделил на скрине зеленым, меняй только первое число (было 8000:8000 станет 8010:8000; было 3000:3000 станет 3010:3000; было 4000:4000 станет 4010:4000)

Перемещение по файлу только стрелочками на клавиатуре. После того как изменишь все значения, нажми CTRL+S (сохранить) и CTRL+X (выйти из редактора)

Теперь осталось выполнить две команды и нода запустится

./register_rln.sh 
docker-compose up -d

В Dockere появятся еще шесть рабочих контейнеров и один остановленный

Теперь можешь вернуться к гайду по установке ноды Waku, посмотреть состояние контейнеров, проверить Grafana, только помни твоя Grafana Waku теперь доступна не на 3000 порту, а на 3010.

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

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

docker pull analoglabs/timenode-test:latest

На этом этапе тебе нужно придумать твоей ноде имя. И заменить в следующей команде <NAME> на имя своей ноды.

docker run -d -p 9954:9944 -p 30343:30333 -v $(pwd)/analog:/data analoglabs/timenode-test --base-path /data --unsafe-rpc-external --rpc-methods=Unsafe --name <NAME>
порты в этой команде уже изменены для тебя

После ввода следующей команды, нужно скопировать и сохранить в блокнот ключ (выделенный на скрине ниже)

echo '{"id":1,"jsonrpc":"2.0","method":"author_rotateKeys","params":[]}' | websocat -n1 -B 99999999 ws://127.0.0.1:9944
Сохрани выделенный jsonrpc

После установки в Dockere появится еще один контейнер

Теперь возвращайся к гайду по установке ноды, тебе еще нужно создать кошелек и связать его с нодой, и посмотри раздел по мониторингу.

Вот и все! Теперь на твоем "супер" сервере работают и не мешают друг другу целых семь нод! Обнял)