Подготовка операционной системы
Как описано в предыдущем разделе, существует много различных VPS и облачных провайдеров. Написание руководств для всех из них было бы несколько непрактичным, но в этом разделе мы рассмотрим типичный рабочий процесс подготовки виртуальной машины, размещенной на Amazon Web Services. В частности, мы рассмотрим, как выбрать подходящую конфигурацию виртуального оборудования и как подготовить операционную систему для Rocket Pool. Вы сможете экстраполировать, как применить эти шаги к любому провайдеру, как только ознакомитесь с их экосистемой.
Создание виртуальной машины EC2
Первый шаг - создать учетную запись AWS, если у вас её ещё нет. Следуйте инструкциям, предоставленным по этой ссылке, или войдите с существующей учетной записью, и вы в конечном итоге попадете на панель управления консоли:
Далее нажмите на раскрывающийся список в правом верхнем углу экрана, чтобы выбрать географический регион, в котором вы хотите, чтобы ваш сервер физически находился. Серверы не могут быть перемещены между регионами после их создания, поэтому вы должны убедиться, что вы довольны выбранным в настоящее время вариантом, прежде чем фактически создать сервер.
Теперь нажмите Services на панели инструментов. Перейдите в раздел Compute и выберите EC2. Ваша панель управления должна измениться на вид, похожий на этот:
Нажмите оранжевую кнопку Launch Instance и выберите Launch Instance из списка вариантов, чтобы создать новую машину. Вам будет представлен маркетплейс образов машин Amazon. Каждый из них представляет собой конкретный снимок машины с предустановленной операционной системой и некоторыми другими полезными программными компонентами.
Для ноды Rocket Pool мы рекомендуем использовать образ Ubuntu Server 24.04 LTS (HVM).
Далее вам нужно будет выбрать Instance Type. Это определяет, какие виртуальные аппаратные ресурсы будут доступны вашей машине.
На момент написания это то, что предлагают различные варианты:
Аппаратные требования во многом зависят от того, какой Consensus-клиент вы планируете запустить - Nimbus, например, требует менее 1 ГБ RAM сам по себе, поэтому вполне разумно запускать его на экземпляре t2.large. Для более требовательных к RAM клиентов вы можете выбрать экземпляр t2.xlarge для дополнительного запаса.
Вы можете захотеть ознакомиться с разделом Выбор ваших ETH-клиентов перед принятием решения о типе экземпляра, чтобы убедиться, что клиент, который вы хотите, поддерживается выбранным вами типом экземпляра.
Как только вы сделали свой выбор, нажмите кнопку Next. Настройки по умолчанию подходят для раздела Instance Details, поэтому оставьте их в покое и нажмите Next.
Когда вы попадете в раздел Add Storage, вы создадите новый виртуальный жесткий диск для вашей системы. Его можно расширить позже благодаря возможностям облака, поэтому получение правильного размера сейчас не является абсолютно критичным. Однако для вашего собственного спокойствия вы должны изменить размер на одно из следующих значений:
- Используйте не менее 100 GiB, если вы просто пробуете Rocket Pool на Hoodi Test Network.
- Используйте не менее 1 TiB (желательно 2 TiB), если вы собираетесь использовать эту ноду в основной сети Ethereum (mainnet).
Оставьте значения по умолчанию для других настроек и нажмите Next.
На этапе Add Tags вы должны нажать кнопку click to add a Name tag и дать ему легко запоминающееся имя, которое вы можете использовать для идентификации сервера позже; что-то вроде Rocket Pool Smartnode подойдет, если вам нужно вдохновение. Нажмите Next, когда закончите.
В разделе Security Group оставьте выбранным вариант Create a new security group. Введите имя и описание, например Smartnode и Smartnode Group. Удалите все существующие правила в таблице и добавьте следующие правила:
Это позволит вам удаленно подключаться к вашему серверу через SSH (терминал командной строки) с вашего ноутбука или настольного компьютера. Это также позволит клиентам Execution и Consensus подключаться к другим нодам в сети Ethereum.
Для SSH-доступа это будет работать только в том случае, если у вас есть статический публичный IP-адрес. Скорее всего, вам потребуется запросить это у вашего интернет-провайдера, поскольку многие из них используют динамическую систему IP и периодически меняют ваш публичный адрес. Если вы не можете получить статический адрес, вам придется заходить в консоль AWS и обновлять эту настройку с вашим новым IP-адресом каждый раз, когда он меняется.
Таблица группы безопасности теперь должна выглядеть так:
Теперь просмотрите все детали экземпляра, чтобы убедиться, что вы ими довольны, и нажмите Launch, когда будете удовлетворены.
Когда появится запрос SSH key pair, выберите Create a new key pair.
Дайте ему запоминающееся имя, например Smartnode Key, затем нажмите Download Key Pair.
Храните эти файлы в надежном месте, например ~/.ssh/ (или C:\Users\[ваше имя пользователя]\.ssh\ на Windows), где обычно находятся ваши другие ключи.
Эта пара ключей содержит приватный ключ, который вы будете использовать для SSH на вашу машину. Если кто-то получит этот ключ, у него будет полный доступ к вашей ноде - включая ваш кошелек ноды Rocket Pool и все монеты в нем. Вы должны хранить этот файл в безопасности в любое время.
Далее нажмите Launch Instance, чтобы создать ваш новый виртуальный сервер. Когда появится уведомление, нажмите View Instances, чтобы перейти к списку ваших серверов. Вы увидите там свою ноду Rocket Pool с некоторыми сопутствующими деталями о её конфигурации и статусе.
Наконец, назначьте Elastic IP Address вашей машине - вы можете думать об этом как о статическом IP-адресе, который является эксклюзивным для AWS. Ваша нода всегда будет доступна по этому адресу, поэтому вы всегда можете использовать одну и ту же команду SSH для подключения к ней.
Перейдите в Network and Security на панели навигации слева и нажмите Elastic IPs. Теперь нажмите Allocate Elastic IP Address. Настройки по умолчанию подходят, поэтому просто пройдите через запросы и вернитесь к списку, когда закончите.
Далее выберите новый адрес в списке. Нажмите кнопку Actions над ним, затем нажмите Associate Elastic IP Address. Оставьте тип ресурса установленным на Instance и выберите только что созданный экземпляр Rocket Pool Smartnode из списка. Нажмите Associate, чтобы назначить адрес вашему виртуальному серверу. Теперь, если вы посмотрите в столбец Associated Instance ID адреса, вы можете убедиться, что к нему назначена ваша машина.
Доступ к машине
Чтобы получить доступ к машине, откройте новый терминал на Linux или macOS (используйте Powershell на Windows) и введите следующую команду:
Если вы сохранили свои ключи в папке .ssh, это автоматически использует пару приватных ключей, которую вы сгенерировали во время настройки, для аутентификации с машиной - никаких имен пользователей, никаких паролей.
Здесь у вас есть полный терминальный доступ к системе.
Настройка пространства подкачки
В большинстве случаев, если вы тщательно выберете свои клиенты Execution и Consensus и тип экземпляра, у вас не должно закончиться RAM. С другой стороны, никогда не помешает добавить немного больше. То, что мы собираемся сделать сейчас, это добавить то, что называется пространством подкачки. По сути, это означает, что мы собираемся использовать SSD в качестве "резервной RAM" на случай, если что-то пойдет ужасно, ужасно неправильно, и на вашем сервере закончится обычная RAM. SSD не такой быстрый, как обычная RAM, поэтому если он достигнет пространства подкачки, это замедлит работу, но не полностью сломает всё. Думайте об этом как о дополнительной страховке, которая вам (скорее всего) никогда не понадобится.
Создание файла подкачки
Первый шаг - создать новый файл, который будет действовать как ваше пространство подкачки. Решите, сколько вы хотите использовать - разумным началом было бы 8 ГБ, так что у вас будет 8 ГБ обычной RAM и 8 ГБ "резервной RAM" для общей суммы в 16 ГБ. Чтобы быть супер безопасным, вы можете сделать это 24 ГБ, так что ваша система будет иметь 8 ГБ обычной RAM и 24 ГБ "резервной RAM" для общей суммы в 32 ГБ, но это, вероятно, излишество. К счастью, поскольку ваш SSD имеет 1 или 2 ТБ пространства, выделение 8-24 ГБ для файла подкачки незначительно.
Для целей этого руководства давайте выберем хорошую середину - скажем, 16 ГБ пространства подкачки для общей RAM в 24 ГБ. Просто подставьте любое число, которое вы хотите, по ходу дела.
Введите это, что создаст новый файл под названием /swapfile и заполнит его 16 ГБ нулей.
Чтобы изменить количество, просто измените число в count=16 на то, что вы хотите. Обратите внимание, что это займет много времени, но это нормально.
Далее установите разрешения, чтобы только пользователь root мог читать или писать в него (для безопасности):
Теперь отметьте его как файл подкачки:
Далее включите его:
Наконец, добавьте его в таблицу монтирования, чтобы он автоматически загружался при перезагрузке вашего сервера:
Добавьте новую строку в конце, которая выглядит так:
Нажмите Ctrl+O и Enter, чтобы сохранить, затем Ctrl+X и Enter, чтобы выйти.
Чтобы проверить, что он активен, выполните эти команды:
Ваш вывод должен выглядеть так вверху:

Если второе число в последней строке с меткой Swp (то, что после /) не равно нулю, значит всё готово.
Например, если показано 0K / 16.0G, то ваше пространство подкачки было успешно активировано.
Если показано 0K / 0K, то это не сработало, и вам придется подтвердить, что вы правильно ввели предыдущие шаги.
Нажмите q или F10, чтобы выйти из htop и вернуться к терминалу.
Настройка Swappiness и Cache Pressure
По умолчанию Linux будет активно использовать много пространства подкачки, чтобы снять некоторое давление с RAM системы. Мы этого не хотим. Мы хотим, чтобы он использовал всю RAM до последней секунды перед тем, как полагаться на SWAP. Следующий шаг - изменить то, что называется "swappiness" системы, которая в основном показывает, насколько она стремится использовать пространство подкачки. Существует много споров о том, какое значение установить для этого, но мы обнаружили, что значение 6 работает достаточно хорошо.
Мы также хотим снизить "давление кэша", которое диктует, насколько быстро сервер будет удалять кэш своей файловой системы. Поскольку у нас будет много свободной RAM с нашей настройкой, мы можем сделать это "10", что оставит кэш в памяти на некоторое время, уменьшая дисковый I/O.
Чтобы установить это, выполните эти команды:
Теперь поместите их в файл sysctl.conf, чтобы они повторно применялись после перезагрузки:
Добавьте эти две строки в конец:
Затем сохраните и выйдите, как вы делали раньше (Ctrl+O, Ctrl+X).
И на этом ваш сервер запущен и готов к запуску Rocket Pool! Переходите к разделу Выбор ваших ETH-клиентов.