Подготовка PC, Mini-PC или NUC

Перед установкой Rocket Pool необходимо выполнить несколько проверок, чтобы убедиться, что ваша система совместима и будет работать правильно.

Danger

Мы настоятельно рекомендуем создать выделенную машину для работы узла Rocket Pool. Запуск узла на машине общего назначения, такой как ваш ежедневный рабочий компьютер или игровая установка, представляет дополнительные риски безопасности, которые могут скомпрометировать ваш кошелек и привести к краже ваших монет.

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

Системные требования

Ниже приведено краткое описание программных и аппаратных требований, которые требуются узлу Rocket Pool. Это руководство предполагает, что ваша машина уже физически собрана и операционная система установлена.

Поддерживаемые операционные системы

Клиент Smartnode Rocket Pool в настоящее время поддерживает системы Linux и macOS.

В настоящее время Windows может использоваться для удаленного управления удаленной машиной Linux или Mac, но сам Smartnode в настоящее время не может работать в системе Windows. Однако Rocket Pool может работать на Linux виртуальной машине, размещенной на машине Windows. Эта настройка не рекомендуется вместо простой установки Linux в качестве хостовой операционной системы, но она работает при необходимости. Обратите внимание, что это потребует дополнительных накладных расходов на ресурсы и сопряжено с собственным набором рисков безопасности, поэтому мы не советуем использовать эту настройку при стейкинге реального Ether в основной сети.

Rocket Pool нативно совместим с архитектурами процессоров AMD64 (x64) и arm64 (aarch64). Для других архитектур вам нужно будет скомпилировать клиенты smartnode из исходного кода.

Обратите внимание, что пользователь должен иметь доступ root / Administrator (или привилегии sudo) для установки Smartnode.

Поддержка Linux

Существует много вариантов ОС Linux (называемых дистрибутивами или distros для краткости). Хотя вы можете запустить Rocket Pool из любого современного дистрибутива, установщик Rocket Pool может автоматически установить весь стек на Ubuntu, Debian, CentOS и Fedora.

ПРИМЕЧАНИЕ

Если вы планируете использовать Ubuntu, мы настоятельно рекомендуем использовать LTS релиз, такой как 24.04. Эти релизы активно поддерживаются в течение более длительных периодов времени, что помогает с безопасностью и стабильностью вашего узла.

Для установки на других дистрибутивах установщик Smartnode не сможет автоматически установить некоторые системные зависимости (такие как docker-compose). Во время установки потребуются некоторые ручные шаги.

Для систем arm64 установщик Smartnode изначально поддерживает только Debian и дистрибутивы на основе Debian, такие как Ubuntu. Для других дистрибутивов во время установки потребуются ручные шаги.

Установка операционной системы

Если вы используете macOS, вполне вероятно, что у вас уже установлена операционная система, и вы можете пропустить этот шаг.

Если вы устанавливаете Linux с нуля, каждый из перечисленных выше дистрибутивов поставляется с полезными и подробными руководствами по установке операционной системы с нуля. В качестве примера мы проведем вас через процесс установки и подготовки Debian Server. Debian - хороший выбор для работы узла, потому что он фокусируется на максимальной стабильности и надежности - оба из которых очень желательны для узловых машин, которые должны работать 24/7.

Вот хорошее пошаговое руководство со скриншотами, которое покажет вам, как установить Debian на вашу узловую машину с нуля.

Tip

У нас есть несколько полезных дополнений к руководству, приведенному выше, которым вы можете захотеть следовать:

  • При запросе установки пароля root мы рекомендуем оставить его пустым. Это отключит учетную запись root и вместо этого установит пакет sudo, позволяя вашему пользователю выполнять операции root, повторно вводя свой пароль для повышения своих привилегий. Это аналогично тому, как настроен Ubuntu Linux, что может быть более знакомо пользователям.
  • На экране Выбор программного обеспечения ближе к концу вы можете не захотеть устанавливать графический интерфейс рабочего стола.
    • Графические интерфейсы рабочего стола в основном не нужны для узла; они добавляют дополнительные накладные расходы, и большую часть времени они не будут использоваться, так как вы все равно будете удаленно управлять им через терминал, поэтому мы предпочитаем снять флажки с GNOME и Debian desktop environment здесь.
    • Если вы действительно хотите пользовательский интерфейс рабочего стола на вашем узле, мы рекомендуем снять флажок с GNOME и поставить флажок XFCE, так как он легче для системных ресурсов. Мы также рекомендуем не запускать дополнительное программное обеспечение на узле, такое как браузеры или Discord, так как они уменьшают безопасность и потребляют системные ресурсы.
    • Снимите флажок веб-сервер, но оставьте флажки SSH-сервер и стандартные системные утилиты.
  • Если вы создали флэш-накопитель из iso, вам может потребоваться отключить репозиторий CD-ROM, чтобы запустить apt. Вы можете найти объяснение того, как это сделать здесь.
  • Ваша система может быть настроена на спящий режим/гибернацию по умолчанию. Чтобы отключить эти настройки, вы можете запустить следующую команду: sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target :::

Установка sudo

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

apt update
apt install sudo
usermod -aG sudo $USER

Затем перезагрузите машину. Теперь вы должны иметь возможность запускать команды через sudo, такие как sudo apt update.

Использование SSH

После установки сервера и возможности войти в систему вам нужно получить его IP-адрес. Простой способ сделать это - с помощью ifconfig, который встроен в пакет 'net-tools':

sudo apt update
sudo apt install net-tools
sudo ifconfig

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

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
      inet 192.168.1.8  netmask 255.255.255.0  broadcast 192.168.1.255
      inet6 fe80::96f2:bf29:e269:1097  prefixlen 64  scopeid 0x20<link>
      ether <mac address>  txqueuelen 1000  (Ethernet)
      ...

Флаги должны говорить UP,BROADCAST,RUNNING,MULTICAST. Значение inet (здесь 192.168.1.8) - это локальный IP-адрес вашей машины.

Далее установите SSH:

sudo apt install openssh-server

:::tip ПРИМЕЧАНИЕ Если у вас был флажок SSH-сервер отмечен во время установки Debian, у вас уже должно быть это установлено, поэтому эта команда ничего не сделает.

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

Если вы не знакомы с ssh, взгляните на руководство Введение в Secure Shell.

ПРИМЕЧАНИЕ

На этом этапе вы должны настоятельно рассмотреть настройку вашего роутера, чтобы сделать IP-адрес вашего узла статическим. Это означает, что ваш узел будет иметь один и тот же IP-адрес навсегда, поэтому вы всегда сможете войти в него по SSH, используя этот IP-адрес. В противном случае возможно, что IP-адрес вашего узла может измениться в какой-то момент, и вышеуказанная команда SSH больше не будет работать. Вам придется войти в конфигурацию вашего роутера, чтобы узнать, каков новый IP-адрес вашего узла.

Каждый роутер отличается, поэтому вам нужно будет обратиться к документации вашего роутера, чтобы узнать, как назначить статический IP-адрес.

Настройка пространства подкачки

В большинстве случаев, если вы тщательно выбираете свои клиенты Execution и Consensus и тип вашего экземпляра, у вас не должно закончиться ОЗУ. Тем не менее, никогда не помешает добавить немного больше. То, что мы собираемся сделать сейчас, - это добавить то, что называется пространством подкачки. По сути, это означает, что мы собираемся использовать SSD как "резервное ОЗУ" на случай, если что-то пойдет ужасно, ужасно не так, и ваш сервер закончит обычное ОЗУ. SSD не такой быстрый, как обычное ОЗУ, поэтому, если он попадет в пространство подкачки, это замедлит работу, но не приведет к полному сбою и не сломает все. Думайте об этом как о дополнительной страховке, которая вам (скорее всего) никогда не понадобится.

Создание файла подкачки

Первый шаг - создать новый файл, который будет действовать как ваше пространство подкачки. Решите, сколько вы хотите использовать - разумным началом будет 8 ГБ, поэтому у вас есть 8 ГБ обычного ОЗУ и 8 ГБ "резервного ОЗУ" на общую сумму 16 ГБ. Чтобы быть супер безопасным, вы можете сделать его 24 ГБ, чтобы ваша система имела 8 ГБ обычного ОЗУ и 24 ГБ "резервного ОЗУ" на общую сумму 32 ГБ, но это, вероятно, излишне. К счастью, поскольку ваш SSD имеет 1 или 2 ТБ пространства, выделение 8-24 ГБ для файла подкачки незначительно.

Ради этого руководства давайте выберем хорошую золотую середину - скажем, 16 ГБ пространства подкачки на общую ОЗУ 24 ГБ. Просто замените любое число, которое вы хотите, по ходу дела.

Введите это, что создаст новый файл с именем /swapfile и заполнит его 16 ГБ нулей. Чтобы изменить количество, просто измените число в count=16 на то, что вы хотите. Обратите внимание, что это займет много времени, но это нормально.

sudo dd if=/dev/zero of=/swapfile bs=1G count=16 status=progress

Далее установите разрешения, чтобы только пользователь root мог читать или записывать в него (для безопасности):

sudo chmod 600 /swapfile

Теперь отметьте его как файл подкачки:

sudo mkswap /swapfile

Далее включите его:

sudo swapon /swapfile

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

sudo nano /etc/fstab

Добавьте новую строку в конце, которая выглядит так:

/swapfile                            none            swap    sw              0       0

Нажмите Ctrl+O и Enter для сохранения, затем Ctrl+X и Enter для выхода.

Чтобы проверить, что он активен, выполните эти команды:

sudo apt install htop
htop

Ваш вывод должен выглядеть так вверху:

Если второе число в последней строке с меткой Swp (то, что после /) не равно нулю, тогда все готово. Например, если оно показывает 0K / 16.0G, то ваше пространство подкачки было активировано успешно. Если оно показывает 0K / 0K, то оно не сработало, и вам придется подтвердить, что вы правильно ввели предыдущие шаги.

Нажмите q или F10, чтобы выйти из htop и вернуться в терминал.

Настройка Swappiness и Cache Pressure

По умолчанию Linux будет активно использовать много пространства подкачки, чтобы снять часть давления с ОЗУ системы. Мы этого не хотим. Мы хотим, чтобы он использовал всю ОЗУ до самой последней секунды перед тем, как полагаться на SWAP. Следующий шаг - изменить то, что называется "swappiness" системы, что в основном показывает, насколько активно она использует пространство подкачки. Существует много споров о том, какое значение установить, но мы обнаружили, что значение 6 работает достаточно хорошо.

Мы также хотим уменьшить "давление кэша", которое определяет, насколько быстро сервер удалит кэш своей файловой системы. Поскольку у нас будет много свободной ОЗУ с нашей настройкой, мы можем сделать это "10", что оставит кэш в памяти на некоторое время, уменьшая дисковый I/O.

Чтобы установить это, выполните эти команды:

sudo sysctl vm.swappiness=6
sudo sysctl vm.vfs_cache_pressure=10

Теперь поместите их в файл sysctl.conf, чтобы они применялись повторно после перезагрузки:

sudo nano /etc/sysctl.conf

Добавьте эти две строки в конец:

vm.swappiness=6
vm.vfs_cache_pressure=10

Затем сохраните и выйдите, как вы делали раньше (Ctrl+O, Ctrl+X).

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

Перед установкой Rocket Pool, пожалуйста, просмотрите следующий контрольный список:

  • Ваша система полностью собрана, включается и может загрузиться в операционную систему.
  • Вы не будете выполнять никаких других действий в системе, таких как просмотр Интернета, проверка электронной почты или игры.
  • У вас установлена операционная система Linux.
  • Ваша учетная запись пользователя имеет привилегии root / администратора.
  • У вас есть SSD, который соответствует требованиям производительности.
  • Ваш SSD смонтирован в вашей файловой системе.
  • У вас есть не менее 1,5 ТБ свободного дискового пространства для первоначального процесса синхронизации Execution и Consensus.
  • Если ваш интернет-провайдер ограничивает ваши данные, это более 2 ТБ в месяц.

Если вы проверили и подтвердили все эти пункты, то вы готовы установить Rocket Pool и начать работу узла! Перейдите к разделу Выбор ваших ETH клиентов.