Развертывание собственного узла Ethereum
Последнее обновление страницы: 26 февраля 2026 г.
Запуск собственного узла дает вам различные преимущества, открывает новые возможности и помогает поддерживать экосистему. Эта страница поможет вам развернуть собственный узел и принять участие в проверке транзакций Ethereum.
Обратите внимание, что после Слияния для запуска узла Ethereum требуются два клиента: клиент уровня исполнения (EL) и клиент уровня консенсуса (CL). На этой странице вы узнаете, как установить, настроить и подключить эти два клиента для запуска узла Ethereum.
Предварительные условия
Вы должны понимать, что такое узел Ethereum и почему вам может понадобиться запустить клиент. Это описано в разделе «Узлы и клиенты».
Если вы новичок в теме запуска узла или ищете менее технический путь, мы рекомендуем сначала ознакомиться с нашим удобным введением в запуск узла Ethereum.
Выбор подхода
Первый шаг в разворачивании вашего узла — выбор подхода. На основе требований и различных возможностей необходимо выбрать реализацию клиента (как клиента исполнения, так и клиента консенсуса), среду (аппаратную или системную) и параметры для настроек клиента.
Эта страница поможет вам в принятии этих решений и поможет найти наиболее подходящий способ запуска вашего экземпляра Ethereum.
Чтобы выбрать из реализаций клиентов, ознакомьтесь со всеми доступными для основной сети клиентами исполнения, клиентами консенсуса и узнайте о разнообразии клиентов.
Решите, запускать ли программное обеспечение на собственном оборудовании или в облаке, учитывая требования клиентов.
После подготовки среды установите выбранные клиенты либо с помощью удобного для начинающих интерфейса, либо вручную с помощью терминала с расширенными параметрами.
Когда узел запущен и синхронизируется, вы готовы использовать его, но не забывайте о его обслуживании.
Среда и оборудование
Локально или в облаке
Клиенты Ethereum могут работать на компьютерах потребительского класса и не требуют специального оборудования (например, в отличие от майнинга). Таким образом, в зависимости от ваших нужд вам доступны различные способы развертывания узла. Для упрощения давайте рассмотрим запуск узла как на локальной физической машине, так и на облачном сервере.
- Облако
- Провайдеры предлагают большое время бесперебойной работы сервера и статические публичные IP-адреса
- Получение выделенного или виртуального сервера может быть более удобным, чем создание собственного
- Необходимость доверяться третьей стороне — поставщику серверов
- Из-за большого размера хранилища для полного узла цена аренды сервера может быть высока
- Собственное оборудование
- Более независимый подход, требующий меньшего доверия посторонним
- Однократное вложение
- Возможность покупки преднастроенной машины
- Необходимость подготовить и обслуживать оборудование, а также устранять возможные проблемы с оборудованием и сетью
Оба варианта имеют различные преимущества, описанные выше. Если вы ищете облачное решение, помимо многих традиционных поставщиков облачных вычислений есть сервисы, ориентированные на развертывание узлов. Ознакомьтесь с «Узлами как услугой» для получения дополнительных сведений о размещенных узлах.
Оборудование
Однако устойчивая к цензуре децентрализованная сеть не должна полагаться на облачных провайдеров. Вместо этого запуск узла на собственном локальном оборудовании полезнее для экосистемы. Оценки (opens in a new tab) показывают, что большая часть узлов работает в облаке, что может стать единой точкой отказа.
Клиенты Ethereum могут работать на вашем компьютере, ноутбуке, сервере или даже на одноплатном компьютере. Хотя запуск клиентов на вашем персональном компьютере вполне возможен, наличие выделенной машины только для вашего узла может значительно повысить его производительность и безопасность, минимизируя при этом воздействие на работоспособность вашего основного компьютера.
Использовать собственное оборудование может быть довольно просто. Есть как простые варианты, так и продвинутые настройки для более технически подкованных людей. Так давайте рассмотрим требования и способы запуска клиентов Ethereum на вашей машине.
Требования
Требования к оборудованию различаются в зависимости от клиента, но обычно не так высоки, поскольку узел просто должен оставаться синхронизированным. Не путайте это с майнингом, который требует гораздо большей вычислительной мощности. Однако время синхронизации и производительность улучшаются с более мощным оборудованием.
Перед установкой любого клиента убедитесь, что на вашем компьютере достаточно ресурсов для его запуска. Вы найдете минимальные и рекомендуемые требования ниже.
Основным узким местом для вашего оборудования является дисковое пространство. Синхронизация блокчейна Ethereum очень интенсивна по операциям ввода-вывода и требует много места. Лучше всего иметь твердотельный накопитель (SSD) с сотнями ГБ свободного места даже после синхронизации.
Размер базы данных и скорость начальной синхронизации зависят от выбранного клиента, его конфигурации и стратегии синхронизации.
Также убедитесь, что ваше интернет-соединение не ограничено лимитом пропускной способности (opens in a new tab). Рекомендуется использовать безлимитное соединение, так как первоначальная синхронизация и обмен данными с сетью могут превысить ваш лимит.
Операционная система
Все клиенты поддерживают основные операционные системы — Linux, MacOS, Windows. Это означает, что вы можете запускать узлы на обычных настольных компьютерах или серверах с операционной системой (ОС), которая подходит вам лучше всего. Убедитесь, что ваша ОС обновлена, чтобы избежать потенциальных проблем и уязвимостей.
Минимальные требования
- ЦП с минимум 2 ядрами
- 8 ГБ ОЗУ
- 2TB SSD
- Пропускная способность от 10 Мбит/с
Рекомендуемые характеристики
- Быстрый процессор минимум с 4 ядрами
- Минимум 16 ГБ ОЗУ
- Быстрый SSD минимум с 2TB памяти
- Пропускная способность от 25 Мбит/с
Выбранный вами режим синхронизации повлияет на требования к дисковому пространству, но мы оценили объем, который вам потребуется для каждого клиента.
| Клиент | Размер диска (быстрая синхронизация) | Размер диска (полный архив) |
|---|---|---|
| Besu | Минимум 800GB | Минимум 12TB |
| Erigon | Н/Д | Минимум 2.5TB |
| Geth | 500GB+ | Минимум 12TB |
| Nethermind | 500GB+ | Минимум 12TB |
| Reth | Н/Д | Минимум 2.2TB |
- Примечание: Erigon и Reth не предлагают snap-синхронизацию, но возможно полное сокращение (full pruning) (~2 ТБ для Erigon, ~1.2 ТБ для Reth).
Для клиентов консенсуса требования к пространству также зависят от реализации клиента и включенных функций (например, слэшер валидатора), но в целом рассчитывайте еще на 200 ГБ, необходимых для данных Beacon Chain. С большим количеством валидаторов нагрузка на пропускную способность также возрастает. Вы можете найти подробную информацию о требованиях к клиентам консенсуса в этом анализе (opens in a new tab).
Решения «подключи и работай»
Самый простой вариант запуска узла на собственном оборудовании — использование готовых устройств (plug-and-play). Предварительно настроенные машины от поставщиков предлагают самый простой опыт: заказать, подключить, запустить. Все предварительно настроено и запускается автоматически с интуитивно понятным руководством и панелью инструментов для мониторинга и управления программным обеспечением.
Ethereum на одноплатном компьютере
Самый удобный и дешевый способ запустить узел Ethereum — использовать одноплатный компьютер с архитектурой ARM, такой как Raspberry Pi. Ethereum on ARM (opens in a new tab) предоставляет простые в запуске образы нескольких клиентов исполнения и консенсуса для Raspberry Pi и других плат ARM.
Такие небольшие, доступные и эффективные устройства идеально подходят для запуска узла в домашних условиях, но не забывайте об их ограниченной производительности.
Запуск узла
Фактическая настройка клиента может быть выполнена либо с помощью автоматизированных средств запуска, либо вручную, настраивая клиентское программное обеспечение напрямую.
Менее продвинутым пользователям рекомендуется использовать программу-установщик — программное обеспечение, которое проведет вас через установку и автоматизирует процесс настройки клиента. Однако если у вас есть некоторый опыт работы с терминалом, следование шагам по ручной настройке не вызовет для вас больших затруднений.
Настройка с помощью мастера
Множество удобных для пользователя проектов направлены на улучшение опыта настройки клиента. Эти программы-установщики обеспечивают автоматическую установку и настройку клиента, а некоторые даже предлагают графический интерфейс для пошаговой настройки и мониторинга клиентов.
Ниже приведены несколько проектов, которые помогут вам установить и управлять клиентами всего в несколько кликов:
- DappNode (opens in a new tab) — DappNode — это не только готовое устройство от поставщика. Программное обеспечение, то есть сам установщик узла и центр управления с множеством функций, можно использовать на любом оборудовании.
- EthPillar (opens in a new tab) — самый быстрый и простой способ настроить полный узел. Инструмент для настройки в одну строку и TUI для управления узлом. Бесплатно. Открытый исходный код. Общественные блага для Ethereum от соло-стейкеров. Поддержка ARM64 и AMD64.
- eth-docker (opens in a new tab) — автоматизированная настройка с использованием Docker, ориентированная на простой и безопасный стейкинг. Требует базовых знаний терминала и Docker, рекомендуется для более продвинутых пользователей.
- Stereum (opens in a new tab) — программа-установщик для установки клиентов на удаленный сервер через SSH-соединение с графическим руководством по настройке, центром управления и многими другими функциями.
- NiceNode (opens in a new tab) — программа-установщик с простым пользовательским интерфейсом для запуска узла на вашем компьютере. Просто выберите клиенты и запустите их в несколько кликов. Все еще в разработке.
- Sedge (opens in a new tab) — инструмент настройки узла, который автоматически генерирует конфигурацию Docker с помощью мастера командной строки (CLI). Написан на Go компанией Nethermind.
Ручная настройка клиентов
Другой вариант — загрузить, проверить и настроить клиентское программное обеспечение вручную. Даже если некоторые клиенты предлагают графический интерфейс, ручная настройка все равно требует базовых навыков работы с терминалом, но предлагает гораздо большую гибкость.
Как объяснялось ранее, для настройки собственного узла Ethereum потребуется запустить пару клиентов: клиента консенсуса и клиента исполнения. Некоторые клиенты могут включать в себя легкий клиент другого типа и синхронизироваться без необходимости в другом программном обеспечении. Однако для полной, не требующей доверия верификации, требуются обе реализации.
Получение клиентского ПО
Сначала вам необходимо получить предпочитаемое программное обеспечение клиента исполнения и клиента консенсуса.
Вы можете просто скачать исполняемое приложение или установочный пакет, который подходит вашей операционной системе и архитектуре. Всегда проверяйте подписи и контрольные суммы скачанных пакетов. Некоторые клиенты также предлагают Docker образы для упрощения установки и обновления. Все клиенты имеют открытый исходный код, поэтому вы также можете собрать их из исходного кода. Это более сложный метод, но в некоторых случаях он может потребоваться.
Инструкции по установке каждого клиента приведены в документации, ссылки на которую содержатся в списках клиентов выше.
Ниже приведены страницы релизов клиентов, где вы можете найти их готовые бинарные файлы или инструкции по установке:
Клиенты исполнения
- Besu (opens in a new tab)
- Erigon (opens in a new tab)
- Geth (opens in a new tab)
- Nethermind (opens in a new tab)
- Reth (opens in a new tab)
Также стоит отметить, что разнообразие клиентов является проблемой на уровне исполнения. Читателям рекомендуется рассмотреть возможность запуска клиента исполнения из меньшинства.
Клиенты консенсуса
- Lighthouse (opens in a new tab)
- Lodestar (opens in a new tab) (не предоставляет готовый бинарный файл, только образ Docker или сборку из исходного кода)
- Nimbus (opens in a new tab)
- Prysm (opens in a new tab)
- Teku (opens in a new tab)
Разнообразие клиентов имеет решающее значение для узлов консенсуса, на которых работают валидаторы. Если большинство валидаторов используют одну и ту же реализацию клиента, безопасность сети находится под угрозой. Поэтому рекомендуется рассмотреть возможность выбора клиента из меньшинства.
Ознакомьтесь с последними данными об использовании сетевых клиентов (opens in a new tab) и узнайте больше о разнообразии клиентов.
Верификация ПО
При загрузке программного обеспечения из Интернета рекомендуется проверять его целостность. Это необязательно, но, особенно если речь идет о таком важном элементе инфраструктуры, как клиент Ethereum, важно знать о потенциальных векторах атак и избегать их. Если вы загрузили готовый бинарный файл, вам нужно доверять ему и рисковать тем, что злоумышленник может подменить исполняемый файл на вредоносный.
Разработчики подписывают выпускаемые бинарные файлы своими PGP-ключами, чтобы вы могли криптографически проверить, что вы запускаете именно то программное обеспечение, которое они создали. Вам просто нужно получить публичные ключи, используемые разработчиками, которые можно найти на страницах релизов клиентов или в документации. После загрузки релиза клиента и его подписи вы можете использовать реализацию PGP, например GnuPG (opens in a new tab), чтобы легко их проверить. Ознакомьтесь с руководством по проверке программного обеспечения с открытым исходным кодом с помощью gpg на Linux (opens in a new tab) или Windows/MacOS (opens in a new tab).
Другой формой проверки является проверка того, что Хэш (уникальный криптографический отпечаток) загруженного вами программного обеспечения совпадает с тем, который предоставлен разработчиками. Это даже проще, чем использовать PGP, и некоторые клиенты предлагают только этот вариант. Просто запустите хэш-функцию для загруженного программного обеспечения и сравните результат с тем, что указан на странице релиза. Например:
1sha256sum teku-22.6.1.tar.gz239b2f8c1f8d4dab0404ce70ea314ff4b3c77e9d27aff9d1e4c1933a5439767ddeНастройка клиента
После установки, загрузки или компиляции клиентского программного обеспечения, вы готовы к его запуску. Это лишь означает, что его нужно запускать с правильной конфигурацией. Клиенты предлагают широкие возможности конфигурации, которые могут включать различные функции.
Начнем с опций, которые могут существенно повлиять на производительность клиента и использование данных. Режимы синхронизации представляют собой различные методы загрузки и проверки данных блокчейна. Перед запуском узла следует решить, какую сеть и режим синхронизации использовать. Наиболее важно учитывать дисковое пространство и время синхронизации, которые потребуются клиенту. Обратите внимание на документацию клиента или страницу справки, чтобы узнать, какой режим синхронизации используется по умолчанию. Выберите тот, который подходит вам лучше всего, исходя из уровня безопасности, доступных данных и стоимости. Помимо алгоритма синхронизации, вы также можете настроить «обрезку» различных типов старых данных. Сокращение (pruning) позволяет удалять устаревшие данные, то есть удалять узлы дерева состояний, которые недоступны из последних блоков.
Другие базовые параметры конфигурации — это, например, выбор сети (основная сеть или тестовые сети), включение конечной точки HTTP для RPC или WebSockets и т. д. Вы можете найти все функции и параметры в документации клиента. Различные конфигурации клиента можно установить, запустив клиент с соответствующими флагами непосредственно в интерфейсе командной строки (CLI) или в файле конфигурации. Каждый клиент немного отличается; пожалуйста, всегда обращайтесь к его официальной документации или странице справки для получения подробной информации о параметрах конфигурации.
В целях тестирования вы можете запустить клиент в одной из тестовых сетей. См. обзор поддерживаемых сетей.
Примеры запуска клиентов исполнения с базовой конфигурацией можно найти в следующем разделе.
Запуск клиента исполнения
Перед запуском клиентского программного обеспечения Ethereum убедитесь что ваша среда готова. Например, убедитесь в следующем:
- На диске достаточно места с учетом выбранной сети и режима синхронизации.
- Память и ЦП не нагружаются другими программами.
- Операционная система обновлена до последней версии.
- В системе установлены правильное время и дата.
- Ваш маршрутизатор и брандмауэр принимают подключения к прослушиваемым портам. По умолчанию клиенты Ethereum используют порт слушателя (TCP) и порт обнаружения (UDP), оба по умолчанию 30303.
Сначала запустите свой клиент в тестовой сети, чтобы убедиться, что все работает правильно.
Необходимо указать все настройки клиента, которые не установлены по умолчанию. Вы можете использовать конфигурационный файл, чтобы определить свой набор настроек. Набор функций и синтаксис конфигурации каждого клиента различаются. Для получения более подробной информации обратитесь к документации вашего клиента.
Клиенты исполнения и клиенты консенсуса обмениваются данными через аутентифицированную конечную точку, указанную в Engine API (opens in a new tab). Чтобы подключиться к клиенту консенсуса, клиент исполнения должен сгенерировать jwtsecret (opens in a new tab) по известному пути. По соображениям безопасности и стабильности клиенты должны работать на одной машине, и оба клиента должны знать этот путь, так как он используется для аутентификации локального RPC-соединения между ними. Клиент исполнения также должен определить порт прослушивания для аутентифицированных API.
Этот токен генерируется автоматически клиентским программным обеспечением, но в некоторых случаях вам может потребоваться сделать это самостоятельно. Вы можете сгенерировать его с помощью OpenSSL (opens in a new tab):
1openssl rand -hex 32 > jwtsecretЗапуск клиента исполнения
Этот раздел поможет вам запустить клиенты исполнения. Он служит лишь примером базовой конфигурации, которая запустит клиент со следующими настройками:
- Указывает сеть для подключения, в наших примерах это основная сеть
- Вместо этого вы можете выбрать одну из тестовых сетей для предварительного тестирования вашей установки
- Определяет каталог данных, где будут храниться все данные, включая блокчейн
- Обязательно замените путь на реальный, например, указывающий на ваш внешний диск
- Включает интерфейсы для взаимодействия с клиентом
- Включая JSON-RPC и Engine API для связи с клиентом консенсуса
- Определяет путь к
jwtsecretдля аутентифицированного API- Обязательно замените пример пути на реальный, доступный клиентам, например,
/tmp/jwtsecret
- Обязательно замените пример пути на реальный, доступный клиентам, например,
Пожалуйста, имейте в виду, что это лишь базовый пример, все остальные настройки будут установлены по умолчанию. Обратите внимание на документацию каждого клиента, чтобы узнать о значениях по умолчанию, настройках и функциях. Для получения дополнительных функций, например для запуска валидаторов, мониторинга и т. д., обратитесь к документации конкретного клиента.
Обратите внимание, что обратные косые черты `` в примерах используются только для форматирования; флаги конфигурации можно определить в одной строке.
Запуск Besu
Этот пример запускает Besu в основной сети, сохраняет данные блокчейна в формате по умолчанию в /data/ethereum, включает JSON-RPC и Engine RPC для подключения клиента консенсуса. Engine API аутентифицируется с помощью токена jwtsecret, и разрешены только вызовы с localhost.
1besu --network=mainnet \2 --data-path=/data/ethereum \3 --rpc-http-enabled=true \4 --engine-rpc-enabled=true \5 --engine-host-allowlist="*" \6 --engine-jwt-enabled=true \7 --engine-jwt-secret=/path/to/jwtsecretBesu также поставляется с опцией запуска, которая задаст ряд вопросов и сгенерирует файл конфигурации. Запустите интерактивный установщик с помощью:
1besu --XlauncherДокументация Besu (opens in a new tab) содержит дополнительные параметры и детали конфигурации.
Запуск Erigon
Этот пример запускает Erigon в основной сети, сохраняет данные блокчейна в /data/ethereum, включает JSON-RPC, определяет, какие пространства имен разрешены, и включает аутентификацию для подключения клиента консенсуса, которая определяется путем к jwtsecret.
1erigon --chain mainnet \2 --datadir /data/ethereum \3 --http --http.api=engine,eth,web3,net \4 --authrpc.jwtsecret=/path/to/jwtsecretПо умолчанию Erigon выполняет полную синхронизацию с жестким диском объемом 8 ГБ, что приведет к более чем 2 ТБ архивных данных. Убедитесь, что datadir указывает на диск с достаточным количеством свободного места, или рассмотрите флаг --prune, который может обрезать различные типы данных. Чтобы узнать больше, воспользуйтесь командой --help в Erigon.
Запуск Geth
Этот пример запускает Geth в основной сети, сохраняет данные блокчейна в /data/ethereum, включает JSON-RPC и определяет, какие пространства имен разрешены. Он также включает аутентификацию для подключения клиента консенсуса, что требует указания пути к jwtsecret, а также опции, определяющей, какие соединения разрешены; в нашем примере — только с localhost.
1geth --mainnet \2 --datadir "/data/ethereum" \3 --http --authrpc.addr localhost \4 --authrpc.vhosts="localhost" \5 --authrpc.port 85516 --authrpc.jwtsecret=/path/to/jwtsecretОзнакомьтесь с документацией по всем параметрам конфигурации (opens in a new tab) и узнайте больше о запуске Geth с клиентом консенсуса (opens in a new tab).
Запуск Nethermind
Nethermind предлагает различные варианты установки (opens in a new tab). Пакет поставляется с различными бинарными файлами, включая установщик с пошаговой настройкой, который поможет вам создать конфигурацию в интерактивном режиме. В качестве альтернативы вы можете найти Runner, который является самим исполняемым файлом, и вы можете просто запустить его с флагами конфигурации. JSON-RPC включен по умолчанию.
1Nethermind.Runner --config mainnet \2 --datadir /data/ethereum \3 --JsonRpc.JwtSecretFile=/path/to/jwtsecretДокументация Nethermind предлагает полное руководство (opens in a new tab) по запуску Nethermind с клиентом консенсуса.
Клиент исполнения инициирует свои основные функции, выбранные конечные точки и начнет поиск пиров. Когда узел найдет одноранговые соединения, клиент начнет синхронизацию. Клиент исполнения будет ожидать соединения от клиента консенсуса. Актуальные данные блокчейна будут доступны, как только клиент закончит синхронизацию до текущего состояния.
Запуск Reth
Этот пример запускает Reth в основной сети, используя расположение данных по умолчанию. Включает аутентификацию JSON-RPC и Engine RPC для подключения клиента консенсуса, которая определяется путем к jwtsecret, при этом разрешены только вызовы с localhost.
1reth node \2 --authrpc.jwtsecret /path/to/jwtsecret \3 --authrpc.addr 127.0.0.1 \4 --authrpc.port 8551См. Настройка Reth (opens in a new tab), чтобы узнать больше о каталогах данных по умолчанию. Документация Reth (opens in a new tab) содержит дополнительные опции и детали конфигурации.
Запуск клиента консенсуса
Клиент консенсуса должен быть запущен с правильной конфигурацией порта для установления локального RPC-соединения с клиентом исполнения. Клиенты консенсуса должны быть запущены с открытым портом клиента исполнения в качестве аргумента конфигурации.
Клиенту консенсуса также нужен путь к jwt-secret клиента исполнения для аутентификации RPC-соединения между ними. Аналогично приведенным выше примерам исполнения, каждый клиент консенсуса имеет флаг конфигурации, который принимает путь к файлу jwt-токена в качестве аргумента. Он должен совпадать с путем к jwtsecret, предоставленным клиенту исполнения.
Если вы планируете запустить валидатор, убедитесь, что добавили флаг конфигурации, указывающий адрес Ethereum получателя комиссии. Именно здесь накапливаются вознаграждения в ETH для вашего валидатора. Каждый клиент консенсуса имеет опцию, например --suggested-fee-recipient=0xabcd1, которая принимает адрес Ethereum в качестве аргумента.
При запуске узла Beacon в тестовой сети вы можете значительно сэкономить время синхронизации, используя общедоступную конечную точку для синхронизации по контрольным точкам (opens in a new tab).
Запуск клиента консенсуса
Запуск Lighthouse
Перед запуском Lighthouse узнайте больше о том, как его установить и настроить, в Lighthouse Book (opens in a new tab).
1lighthouse beacon_node \2 --network mainnet \3 --datadir /data/ethereum \4 --http \5 --execution-endpoint http://127.0.0.1:8551 \6 --execution-jwt /path/to/jwtsecretЗапуск Lodestar
Установите программное обеспечение Lodestar, скомпилировав его или загрузив образ Docker. Узнайте больше в документации (opens in a new tab) и в более подробном руководстве по установке (opens in a new tab).
1lodestar beacon \2 --dataDir="/data/ethereum" \3 --network=mainnet \4 --eth1.enabled=true \5 --execution.urls="http://127.0.0.1:8551" \6 --jwt-secret="/path/to/jwtsecret"Запуск Nimbus
Nimbus поставляется как с клиентами консенсуса, так и с клиентами исполнения. Его можно запускать на различных устройствах, даже с очень скромной вычислительной мощностью. После установки зависимостей и самого Nimbus (opens in a new tab) вы можете запустить его клиент консенсуса:
1nimbus_beacon_node \2 --network=mainnet \3 --web3-url=http://127.0.0.1:8551 \4 --rest \5 --jwt-secret="/path/to/jwtsecret"Запуск Prysm
Prysm поставляется со скриптом, который обеспечивает простую автоматическую установку. Подробности можно найти в документации Prysm (opens in a new tab).
1./prysm.sh beacon-chain \2 --mainnet \3 --datadir /data/ethereum \4 --execution-endpoint=http://localhost:8551 \5 --jwt-secret=/path/to/jwtsecretЗапуск Teku
1teku --network mainnet \2 --data-path "/data/ethereum" \3 --ee-endpoint http://localhost:8551 \4 --ee-jwt-secret-file "/path/to/jwtsecret"Когда клиент консенсуса подключается к клиенту исполнения для чтения депозитного контракта и идентификации валидаторов, он также подключается к другим одноранговым узлам Beacon и начинает синхронизировать слоты консенсуса с самого начала. Как только узел Beacon достигнет текущей эпохи, Beacon API станет доступным для ваших валидаторов. Узнайте больше об API узла Beacon (opens in a new tab).
Добавление валидаторов
Клиент консенсуса служит в качестве узла Beacon для подключения валидаторов. Каждый клиент консенсуса имеет собственное программное обеспечение для валидатора, подробно описанное в соответствующей документации.
Запуск собственного валидатора позволяет осуществлять соло-стейкинг, самый эффективный и не требующий доверия метод поддержки сети Ethereum. Однако для этого требуется депозит в размере 32 ETH. Чтобы запустить валидатор на собственном узле с меньшей суммой, вас может заинтересовать децентрализованный пул с операторами узлов без разрешений, такой как Rocket Pool (opens in a new tab).
Самый простой способ начать стейкинг и генерацию ключей валидатора — использовать панель запуска стейкинга в тестовой сети Hoodi (opens in a new tab), которая позволяет протестировать вашу установку, запустив узлы на Hoodi (opens in a new tab). Когда вы будете готовы к работе в основной сети, вы можете повторить эти шаги, используя панель запуска стейкинга в основной сети (opens in a new tab).
Посмотрите страницу о стейкинге для обзора вариантов стейкинга.
Использование узла
Клиенты исполнения предлагают конечные точки API RPC, которые вы можете использовать для отправки транзакций, взаимодействия с умными контрактами или их развертывания в сети Ethereum различными способами:
- Вызывать их вручную с помощью подходящего протокола (например, используя
curl) - Присоединяя предоставленную консоль (например,
geth attach) - Реализуя их в приложениях с помощью библиотек web3, например web3.py (opens in a new tab), ethers (opens in a new tab)
У разных клиентов различаются реализации конечных точек RPC. Но существует стандарт JSON-RPC, которые можно использовать с любым клиентом. Для обзора прочтите документацию по JSON-RPC. Приложения, которым требуется информация из сети Ethereum, могут использовать этот RPC. Например, популярный кошелек MetaMask позволяет вам подключиться к вашей собственной конечной точке RPC (opens in a new tab), что дает значительные преимущества в плане конфиденциальности и безопасности.
Все клиенты консенсуса предоставляют Beacon API (opens in a new tab), который можно использовать для проверки статуса клиента консенсуса или загрузки блоков и данных консенсуса путем отправки запросов с помощью таких инструментов, как Curl (opens in a new tab). Более подробную информацию об этом можно найти в документации каждого клиента консенсуса.
Доступ к RPC
Порт по умолчанию для JSON-RPC клиента исполнения — 8545, но вы можете изменить порты локальных конечных точек в конфигурации. По умолчанию интерфейс RPC доступен только с локального хоста компьютера. Чтобы сделать его доступным удаленно, вы можете открыть его для общего доступа, изменив адрес на 0.0.0.0. Это сделает его доступным через локальную сеть и публичные IP-адреса. В большинстве случаев вам также нужно настроить переадресацию портов на маршрутизаторе.
Подходите к открытию портов в Интернет с осторожностью, так как это позволит любому в Интернете управлять вашим узлом. Злонамеренные пользователи, имея доступ к вашему узлу, могут навредить системе или украсть ваши активы, если вы используете свой клиент как кошелек.
Эту проблему можно решить, предотвратив изменение потенциально опасных методов RPC. Например, с помощью Geth вы можете объявить изменяемые методы с помощью флага: --http.api web3,eth,txpool.
Доступ к интерфейсу RPC можно расширить за счет разработки пограничных API или приложений веб-сервера, таких как Nginx, и их подключения к локальному адресу и порту вашего клиента. Использование промежуточного уровня также может дать разработчикам возможность настроить сертификат для безопасных https-соединений с интерфейсом RPC.
Настройка веб-сервера, прокси-сервера или внешнего Rest API — не единственный способ предоставить доступ к конечной точке RPC вашего узла. Еще один способ настройки общедоступной конечной точки с сохранением конфиденциальности — разместить узел на вашем собственном onion-сервисе Tor (opens in a new tab). Это позволит вам получать доступ к RPC за пределами вашей локальной сети без статического публичного IP-адреса или открытых портов. Однако использование этой конфигурации может позволить доступ к конечной точке RPC только через сеть Tor, которая поддерживается не всеми приложениями и может привести к проблемам с подключением.
Для этого вам нужно создать свой собственный onion-сервис (opens in a new tab). Ознакомьтесь с документацией (opens in a new tab) по настройке onion-сервиса, чтобы разместить свой собственный. Вы можете направить его на веб-сервер с прокси на порт RPC или просто напрямую на RPC.
Наконец, один из самых популярных способов предоставления доступа к внутренним сетям — через VPN-соединение. В зависимости от вашего варианта использования и количества пользователей, которым нужен доступ к вашему узлу, безопасное VPN-соединение может быть вариантом. OpenVPN (opens in a new tab) — это полнофункциональный SSL VPN, который реализует безопасное расширение сети уровня 2 или 3 OSI с использованием стандартного протокола SSL/TLS, поддерживает гибкие методы аутентификации клиентов на основе сертификатов, смарт-карт и/или учетных данных имени пользователя/пароля, а также позволяет использовать политики контроля доступа для конкретных пользователей или групп с помощью правил брандмауэра, применяемых к виртуальному интерфейсу VPN.
Эксплуатация узла
Вы должны регулярно проверять свой узел, чтобы убедиться, что он работает правильно. Время от времени может быть необходимо проводить техническое обслуживание.
Поддержание узла в рабочем состоянии
Ваш узел не обязательно должен быть постоянно в сети, но вы должны поддерживать его в сети как можно дольше, чтобы он оставался синхронизированным с сетью. Вы можете выключить его для перезапуска, но имейте в виду, что:
- Выключение может занять несколько минут, если последнее состояние все еще записывается на диск.
- Принудительное выключение может повредить базу данных, что потребует повторной синхронизации всего узла.
- Ваш клиент не будет синхронизироваться с сетью, и при перезапуске потребуется повторная синхронизация. Хотя узел может начать синхронизацию с того места, где он был в последний раз выключен, процесс может занять время в зависимости от того, как долго он был в автономном режиме.
Это не относится к узлам-валидаторам уровня консенсуса. Отключение вашего узла повлияет на все зависимые от него службы. Если вы запускаете узел для целей стейкинга, вы должны стараться минимизировать время простоя, насколько это возможно.
Создание клиентских служб
Рассмотрите возможность создания службы для автоматического запуска ваших клиентов при запуске. Например, на серверах Linux хорошей практикой будет создание службы, например с systemd, которая выполняет клиент с правильной конфигурацией от имени пользователя с ограниченными правами и автоматически перезапускается.
Обновление клиентов
Вам необходимо поддерживать ваше клиентское программное обеспечение в актуальном состоянии с последними исправлениями безопасности, функциями и EIP. Особенно перед хард-форками убедитесь, что вы используете правильные версии клиента.
Перед важными обновлениями сети Фонд Ethereum (EF) публикует пост в своем блоге (opens in a new tab). Вы можете подписаться на эти объявления (opens in a new tab), чтобы получать уведомления на почту, когда ваш узел нуждается в обновлении.
Обновление клиентов очень просто. У каждого клиента есть конкретные инструкции в своей документации, но процесс обычно заключается в том, чтобы просто загрузить последнюю версию и перезапустить клиент с новым исполняемым файлом. Клиент должен продолжить работу с того места, на котором он остановился, но с примененными обновлениями.
Каждая реализация клиента имеет человекочитаемую строку версии, используемой в протоколе одноранговой связи, но она также доступна из командной строки. Эта строка версии позволяет пользователям убедиться, что они используют правильную версию, и использовать обозреватели блоков и другие аналитические инструменты, задействованные в количественной оценке распространения определенных клиентов в сети. Более подробную информацию о строках версии можно получить в документации к конкретному клиенту.
Запуск дополнительных служб
Запуск собственного узла дает возможность вашим службам использовать прямой доступ к клиентскому RPC сети Ethereum. Это сервисы, построенные на основе Ethereum, такие как решения уровня 2, бэкенд для кошельков, обозреватели блоков, инструменты для разработчиков и другая инфраструктура Ethereum.
Мониторинг узла
Чтобы правильно организовать наблюдение за узлом, представьте сбор метрик. Клиенты предоставляют конечные точки с метриками, и вы можете получить сравнительные данные о вашем узле. Используйте такие инструменты, как InfluxDB (opens in a new tab) или Prometheus (opens in a new tab), для создания баз данных, которые вы можете превратить в визуализации и диаграммы в таких программах, как Grafana (opens in a new tab). Вы можете использовать это программное обеспечение и другие панели Graphana в различных конфигурациях, чтобы визуализировать свой узел и всю сеть в целом. Например, ознакомьтесь с руководством по мониторингу Geth.
При отслеживании всегда обращайте внимание на производительность вашей системы. Во время первоначальной синхронизации узла клиентская программа может оказывать очень большую нагрузку на процессор и оперативную память. В дополнение к Grafana вы можете использовать инструменты, которые предлагает ваша ОС, например htop или uptime.
Дополнительные материалы
- Руководства по стейкингу Ethereum (opens in a new tab) – Сомер Эсат, часто обновляется
- Руководство | Как настроить валидатор для стейкинга Ethereum в основной сети (opens in a new tab) – CoinCashew, часто обновляется
- Руководства ETHStaker по запуску валидаторов в тестовых сетях (opens in a new tab) – ETHStaker, регулярно обновляется
- Пример приложения для запуска узлов блокчейна AWS для узлов Ethereum (opens in a new tab) — AWS, часто обновляется
- Часто задаваемые вопросы о слиянии для операторов узлов (opens in a new tab) — июль 2022 г.
- Анализ требований к оборудованию для полного проверенного узла Ethereum (opens in a new tab) – Albert Palau, 24 сентября 2018 г.
- Запуск полных узлов Ethereum: руководство для слабо мотивированных (opens in a new tab) – Джастин Леру, 7 ноября 2019 г.
- Развертывание узла Hyperledger Besu в основной сети Ethereum: преимущества, требования и настройка (opens in a new tab) – Фелипе Фарагги, 7 мая 2020 г.
- Развертывание клиента Nethermind Ethereum со стеком мониторинга (opens in a new tab) – Nethermind.eth, 8 июля 2020 г.
