Установка актуальных нод на один "супер" сервер.
Содержание
В этом гайде мы установим все актуальные ноды, такие как 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
После установки в Dockere появится еще один контейнер
Теперь возвращайся к гайду по установке ноды, тебе еще нужно создать кошелек и связать его с нодой, и посмотри раздел по мониторингу.
Вот и все! Теперь на твоем "супер" сервере работают и не мешают друг другу целых семь нод! Обнял)