Создание стандартного узла Rocket Pool с Docker

В этом разделе мы рассмотрим процесс установки стека Smartnode от Rocket Pool с использованием стандартной установки на основе Docker. Это установит и настроит все необходимое для запуска полного узла, включая:

  • Программное обеспечение Smartnode от Rocket Pool
  • Execution клиент (ранее ETH1) по вашему выбору или подключение к существующему клиенту, которым вы уже управляете
  • Consensus клиент (ранее ETH2) по вашему выбору или подключение к существующему клиенту, которым вы уже управляете
  • Validator клиент, который будет выполнять ваши обязанности по валидации Beacon Chain
  • (Опционально) стек мониторинга для сбора метрик производительности и работоспособности

Все, что вам нужно сделать, это сказать, что вы хотите запустить!

ПРИМЕЧАНИЕ

Приведенные ниже инструкции требуют использования терминала вашей системы для ввода и выполнения команд. Если вы подключены к машине узла через SSH, вы уже делаете это. Если вы находитесь на машине узла и используете графический интерфейс рабочего стола, вам нужно будет открыть окно терминала для выполнения следующих команд. Обратитесь к инструкциям вашей ОС, чтобы узнать, как это сделать, если вы не знакомы с этим.

Обзор процесса

На высоком уровне вот что включает в себя установка Rocket Pool:

  1. Загрузить интерфейс командной строки Rocket Pool (CLI)
  2. Использовать CLI для установки стека Smartnode
  3. Настроить стек Smartnode с помощью простого в использовании интерфейса в терминале
  4. Готово!

Перед началом

Warning

Если вы используете Ubuntu, рекомендуется перед установкой Rocket Pool дважды проверить, что docker не был установлен вместе с операционной системой.

Установщик Ubuntu получает docker из менеджера пакетов snap, который будет конфликтовать с версией docker, установленной Smartnode.

Запустите snap list и убедитесь, что docker не был установлен.

Например, это вывод на машине, где docker не установлен:

Name    Version        Rev    Tracking       Publisher   Notes
core20  20230308       1852   latest/stable  canonical✓  base
lxd     5.0.2-838e1b2  24322  5.0/stable/…   canonical✓  -
snapd   2.59.1         18933  latest/stable  canonical✓  snapd

А вот вывод, если он был установлен:

Name    Version        Rev    Tracking       Publisher   Notes
core20  20230308       1852   latest/stable  canonical✓  base
docker  20.10.17       2746   latest/stable  canonical✓  -
lxd     5.0.2-838e1b2  24322  5.0/stable/…   canonical✓  -
snapd   2.59.1         18933  latest/stable  canonical✓  snapd

Если вы видите его в выводе snap list, обязательно удалите его с помощью:

sudo systemctl stop snap.docker.dockerd.service

sudo snap remove --purge docker

После чего рекомендуется перезагрузить машину (sudo systemctl reboot)

Загрузка CLI Rocket Pool

Инструкции по загрузке CLI различаются в зависимости от вашей операционной системы.

ПРИМЕЧАНИЕ

Вы должны выполнить следующие инструкции на машине, которую вы будете использовать для вашего узла Rocket Pool. Если вы не используете клавиатуру и монитор, напрямую подключенные к вашей машине узла, вам нужно будет получить к ней удаленный доступ (например, через SSH) и выполнить эти команды через это удаленное подключение.

Linux
MacOS

В Linux начните с создания новой папки, которая будет содержать приложение CLI:

mkdir -p ~/bin

Затем загрузите CLI. Это зависит от архитектуры вашей системы.

СОВЕТ

Если вы не знаете архитектуру вашего процессора, вы можете выполнить следующую команду, чтобы узнать ее:

uname -m

Вывод этой команды напечатает вашу архитектуру. Обратите внимание, что x86_64 это то же самое, что x64 и amd64. Обратите внимание, что aarch64 это то же самое, что arm64.

Для систем x64 (большинство обычных компьютеров):

wget https://github.com/rocket-pool/smartnode/releases/latest/download/rocketpool-cli-linux-amd64 -O ~/bin/rocketpool

Для систем arm64:

wget https://github.com/rocket-pool/smartnode/releases/latest/download/rocketpool-cli-linux-arm64 -O ~/bin/rocketpool

Отметьте его как исполняемый, чтобы он имел разрешения на запуск:

chmod +x ~/bin/rocketpool

Затем выйдите из системы и войдите обратно (или закройте SSH и переподключитесь), или просто перезагрузитесь. Это связано с тем, что путь, по которому вы сохранили CLI (~/bin), может еще не быть в переменной PATH вашей системы (список мест, где ваша система ищет исполняемые файлы). Выход и повторный вход поместят его туда.

Теперь протестируйте его запуск с флагом --version. Вы должны увидеть вывод, подобный этому:

rocketpool --version
rocketpool version 1.18.10

СОВЕТ

Если вы видите сообщение об ошибке, подобное этому,

-bash: /home/user/rocketpool: cannot execute binary file: Exec format error

это означает, что вы загрузили неправильную версию выше. Пожалуйста, проверьте, является ли ваша система x64 или arm64, используя команду из совета выше, и загрузите соответствующую версию. Если ваша система не относится ни к одной из них, то вы не сможете запустить Rocket Pool.

Установка стека Smartnode

Теперь, когда у вас установлен CLI, вы можете развернуть стек Smartnode. Это подготовит вашу систему с Docker, docker-compose и загрузит файлы Smartnode, чтобы они были готовы к работе. Это еще не запустит ничего; это произойдет позже.

Чтобы развернуть стек Smartnode, вам нужно будет выполнить следующую команду на вашей машине узла (либо войдя в систему локально, либо подключившись удаленно, например, через SSH):

rocketpool service install

Это загрузит последнюю версию стека Smartnode и настроит его. Вы должны увидеть вывод, подобный этому (выше некоторых примечаний к выпуску для последней версии, которые будут напечатаны в конце):

Если нет никаких сообщений об ошибках, то установка прошла успешно. По умолчанию он будет помещен в каталог ~/.rocketpool внутри домашней папки вашей учетной записи пользователя.

ПРИМЕЧАНИЕ

Обратите внимание, что установщик Smartnode не может автоматически установить docker и docker-compose на всех платформах. Если вы получите сообщение об ошибке, подобное этому, во время установки:

Automatic dependency installation for the Mint operating system is not supported.
Please install docker and docker-compose manually, then try again with the '-d' flag to skip OS dependency installation.
Be sure to add yourself to the docker group with 'sudo usermod -aG docker $USER' after installing docker.
Log out and back in, or restart your system after you run this command.

Тогда вам просто нужно установить эти две вещи вручную.

Docker предоставляет общие инструкции по установке здесь.

Docker-compose предоставляет общие инструкции по установке здесь.

После установки обоих убедитесь, что вы предоставили своей учетной записи пользователя разрешение на использование Docker:

sudo usermod -aG docker $USER

Наконец, повторно запустите установщик с флагом -d, чтобы пропустить установку Docker:

rocketpool service install -d

После этого выйдите из системы и войдите обратно или перезапустите сеанс SSH, чтобы настройки вступили в силу.

После завершения стек Smartnode будет готов к запуску.

Настройка расположения хранилища Docker

По умолчанию Docker будет хранить все данные своих контейнеров на диске вашей операционной системы. В некоторых случаях это не то, что вы хотите.

ПРИМЕЧАНИЕ

Если вас устраивает это поведение по умолчанию, перейдите к следующему разделу.

Для этого создайте новый файл /etc/docker/daemon.json от имени root пользователя:

sudo nano /etc/docker/daemon.json

Сначала он будет пустым, что нормально. Добавьте это в качестве содержимого:

{
  "data-root": "<your external mount point>/docker"
}

где <your external mount point> - это каталог, к которому смонтирован ваш другой диск.

Нажмите Ctrl+O, Enter, чтобы сохранить файл, и Ctrl+X, Enter, чтобы выйти из редактора.

Затем создайте папку:

sudo mkdir -p <your external mount point>/docker

Теперь перезапустите демон docker, чтобы он принял изменения:

sudo systemctl restart docker

После этого Docker будет хранить свои данные на желаемом диске.

Настройка стека Smartnode

Следующим шагом в процессе установки является начальная настройка вашего узла. Перейдите к разделу Настройка Rocketpool для ознакомления с этим процессом.