Запустите свой собственный узел Эфириума
Запуск собственного узла дает вам различные преимущества, открывает новые возможности и помогает поддерживать экосистему. Эта страница поможет вам запустить собственный узел и принять участие в проверке транзакций Эфириума.
Обратите внимание, что после Слияния для запуска узла Эфириума требуются два клиента: клиент уровня исполнения (EL) и клиент уровня консенсуса (CL). На этой странице будет показано, как установить, настроить и подключить эти два клиента для запуска узла Эфириума.
Предварительные требования
Вы должны понимать, что такое узел Эфириума и зачем вам может понадобиться запускать клиент. Это описано в разделе Узлы и клиенты.
Если вы новичок в теме запуска узла или ищете менее технический путь, мы рекомендуем сначала ознакомиться с нашим удобным введением в запуск узла Эфириума.
Выбор подхода
Первый шаг в запуске вашего узла — выбор подхода. Основываясь на требованиях и различных возможностях, вы должны выбрать реализацию клиента (как клиента исполнения, так и клиента консенсуса), среду (оборудование, систему) и параметры для настроек клиента.
Эта страница проведет вас через эти решения и поможет найти наиболее подходящий способ запуска вашего экземпляра Эфириума.
Чтобы выбрать из реализаций клиентов, просмотрите все доступные готовые к работе в Мейннете клиенты исполнения, клиенты консенсуса и узнайте о разнообразии клиентов.
Решите, запускать ли программное обеспечение на собственном оборудовании или в облаке, учитывая требования клиентов.
После подготовки среды установите выбранные клиенты либо с помощью удобного для новичков интерфейса, либо вручную с использованием терминала с расширенными параметрами.
Когда узел запущен и синхронизируется, вы готовы использовать его, но не забывайте следить за его обслуживанием.
Среда и оборудование
Локально или в облаке
Клиенты Эфириума могут работать на компьютерах потребительского класса и не требуют специального оборудования, например, машин для майнинга. Поэтому у вас есть различные варианты развертывания узла в зависимости от ваших потребностей. Для простоты давайте рассмотрим запуск узла как на локальной физической машине, так и на облачном сервере:
- Облако
- Провайдеры предлагают высокое время безотказной работы серверов и статические публичные IP-адреса
- Аренда выделенного или виртуального сервера может быть удобнее, чем сборка собственного
- Компромисс заключается в доверии третьей стороне — провайдеру сервера
- Из-за требуемого объема памяти для полного узла цена арендованного сервера может быть высокой
- Собственное оборудование
- Более суверенный и не требующий доверия подход
- Единовременная инвестиция
- Возможность купить предварительно настроенные машины
- Вам придется физически подготавливать, обслуживать и потенциально устранять неполадки машины и сети
Оба варианта имеют различные преимущества, обобщенные выше. Если вы ищете облачное решение, в дополнение ко многим традиционным провайдерам облачных вычислений существуют также сервисы, ориентированные на развертывание узлов. Ознакомьтесь с узлами как услугой для получения дополнительных вариантов размещенных узлов.
Оборудование
Однако устойчивая к цензуре децентрализованная сеть не должна полагаться на облачных провайдеров. Вместо этого запуск вашего узла на собственном локальном оборудовании полезнее для экосистемы. Оценки (opens in a new tab) показывают, что большая часть узлов работает в облаке, что может стать единой точкой отказа.
Клиенты Эфириума могут работать на вашем компьютере, ноутбуке, сервере или даже на одноплатном компьютере. Хотя запуск клиентов на вашем персональном компьютере возможен, наличие выделенной машины только для вашего узла может значительно повысить его производительность и безопасность, минимизируя при этом влияние на ваш основной компьютер.
Использовать собственное оборудование может быть очень просто. Существует множество простых вариантов, а также расширенных настроек для более технически подкованных людей. Итак, давайте рассмотрим требования и средства для запуска клиентов Эфириума на вашей машине.
Требования
Требования к оборудованию различаются в зависимости от клиента, но, как правило, они не так высоки, поскольку узлу просто нужно оставаться синхронизированным. Не путайте это с майнингом, который требует гораздо большей вычислительной мощности. Однако время синхронизации и производительность улучшаются при использовании более мощного оборудования.
Перед установкой любого клиента убедитесь, что на вашем компьютере достаточно ресурсов для его запуска. Ниже вы можете найти минимальные и рекомендуемые требования.
Узким местом для вашего оборудования в основном является дисковое пространство. Синхронизация блокчейна Эфириума очень интенсивно использует ввод/вывод и требует много места. Лучше всего иметь твердотельный накопитель (SSD) с сотнями гигабайт свободного места в запасе даже после синхронизации.
Размер базы данных и скорость начальной синхронизации зависят от выбранного клиента, его конфигурации и стратегии синхронизации.
Также убедитесь, что ваше интернет-соединение не ограничено лимитом пропускной способности (opens in a new tab). Рекомендуется использовать безлимитное соединение, так как начальная синхронизация и данные, транслируемые в сеть, могут превысить ваш лимит.
Операционная система
Все клиенты поддерживают основные операционные системы — Linux, macOS, Windows. Это означает, что вы можете запускать узлы на обычных настольных или серверных машинах с операционной системой (ОС), которая вам больше всего подходит. Убедитесь, что ваша ОС обновлена, чтобы избежать потенциальных проблем и уязвимостей безопасности.
Минимальные требования
- Процессор с 2+ ядрами
- 8 ГБ ОЗУ
- 2 ТБ SSD
- Пропускная способность 10+ Мбит/с
Рекомендуемые характеристики
- Быстрый процессор с 4+ ядрами
- 16+ ГБ ОЗУ
- Быстрый SSD на 2+ ТБ
- Пропускная способность 25+ Мбит/с
Выбранный вами режим синхронизации и клиент повлияют на требования к пространству, но ниже мы оценили дисковое пространство, которое вам понадобится для каждого клиента.
| Клиент | Размер диска (snap sync) | Размер диска (полный архив) |
|---|---|---|
| Бесу | 800+ ГБ | 12+ ТБ |
| Эригон | Н/Д | 2.5+ ТБ |
| Geth | 500+ ГБ | 12+ ТБ |
| Незермайнд | 500+ ГБ | 12+ ТБ |
| Рет | Н/Д | 2.2+ ТБ |
- Примечание: Эригон и Рет не предлагают snap-синхронизацию, но возможна полная обрезка (Full Pruning) (~2 ТБ для Эригона, ~1.2 ТБ для Рета)
Для клиентов консенсуса требования к пространству также зависят от реализации клиента и включенных функций (например, слэшер валидатора), но в целом рассчитывайте еще на 200 ГБ, необходимых для данных сигнального узла. При большом количестве валидаторов возрастает и нагрузка на пропускную способность. Вы можете найти подробности о требованиях к клиентам консенсуса в этом анализе (opens in a new tab).
Готовые решения (plug-and-play)
Самый простой вариант запуска узла на собственном оборудовании — использование готовых решений (plug-and-play). Предварительно настроенные машины от поставщиков предлагают самый простой опыт: заказал, подключил, запустил. Все предварительно настроено и работает автоматически с интуитивно понятным руководством и панелью управления для мониторинга и контроля программного обеспечения.
Эфириум на одноплатном компьютере
Простой и дешевый способ запуска узла Эфириума — использовать одноплатный компьютер, даже с архитектурой 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 для управления узлом. Бесплатно. Открытый исходный код. Общественные блага для Эфириума от соло-стейкеров. Поддержка ARM64 и AMD64.
- eth-docker (opens in a new tab) — Автоматизированная настройка с использованием Docker, ориентированная на простой и безопасный стейкинг, требует базовых знаний терминала и Docker, рекомендуется для чуть более продвинутых пользователей.
- Stereum (opens in a new tab) — Лаунчер для установки клиентов на удаленный сервер через SSH-соединение с руководством по настройке с графическим интерфейсом, центром управления и множеством других функций.
- Sedge (opens in a new tab) — Инструмент настройки узла, который автоматически генерирует конфигурацию Docker с помощью мастера CLI. Написан на Go командой Незермайнд.
- Chainstack Self-Hosted (opens in a new tab) — Веб-интерфейс и CLI для развертывания клиентов исполнения и консенсуса в Kubernetes. Включает загрузку снимков (snapshot bootstrap) и встроенный мониторинг. Бесплатно. Учетная запись Chainstack не требуется. Создано Chainstack.
Ручная настройка клиентов
Другой вариант — загрузить, проверить и настроить клиентское программное обеспечение вручную. Даже если некоторые клиенты предлагают графический интерфейс, ручная настройка по-прежнему требует базовых навыков работы с терминалом, но предлагает гораздо большую универсальность.
Как объяснялось ранее, настройка собственного узла Эфириума потребует запуска пары клиентов консенсуса и исполнения. Некоторые клиенты могут включать легкий клиент другого типа и синхронизироваться без необходимости в каком-либо другом программном обеспечении. Однако полная проверка, не требующая доверия, требует обеих реализаций.
Получение клиентского программного обеспечения
Сначала вам нужно получить предпочитаемое программное обеспечение клиента исполнения и клиента консенсуса.
Вы можете просто загрузить исполняемое приложение или установочный пакет, который подходит для вашей операционной системы и архитектуры. Всегда проверяйте подписи и контрольные суммы загруженных пакетов. Некоторые клиенты также предлагают репозитории или образы Docker для упрощения установки и обновлений. Все клиенты имеют открытый исходный код, поэтому вы также можете собрать их из исходного кода. Это более продвинутый метод, но в некоторых случаях он может потребоваться.
Инструкции по установке каждого клиента приведены в документации, ссылки на которую есть в списках клиентов выше.
Вот страницы релизов клиентов, где вы можете найти их предварительно скомпилированные бинарные файлы или инструкции по установке:
Клиенты исполнения
- Бесу (opens in a new tab)
- Эригон (opens in a new tab)
- Geth (opens in a new tab)
- Незермайнд (opens in a new tab)
- Рет (opens in a new tab)
Также стоит отметить, что разнообразие клиентов является проблемой на уровне исполнения. Читателям рекомендуется рассмотреть возможность запуска клиента исполнения, находящегося в меньшинстве.
Клиенты консенсуса
- Лайтхаус (opens in a new tab)
- Лодстар (opens in a new tab) (Не предоставляет предварительно скомпилированный бинарный файл, только образ Docker или сборку из исходного кода)
- Нимбус (opens in a new tab)
- Призм (opens in a new tab)
- Теку (opens in a new tab)
Разнообразие клиентов имеет решающее значение для узлов консенсуса, на которых работают валидаторы. Если большинство валидаторов используют одну реализацию клиента, безопасность сети находится под угрозой. Поэтому рекомендуется рассмотреть возможность выбора клиента, находящегося в меньшинстве.
Посмотрите последнюю статистику использования клиентов в сети (opens in a new tab) и узнайте больше о разнообразии клиентов.
Проверка программного обеспечения
При загрузке программного обеспечения из интернета рекомендуется проверять его целостность. Этот шаг необязателен, но особенно в случае с такой важной частью инфраструктуры, как клиент Эфириума, важно знать о потенциальных векторах атак и избегать их. Если вы загрузили предварительно скомпилированный бинарный файл, вам нужно доверять ему и рисковать тем, что злоумышленник мог подменить исполняемый файл на вредоносный.
Разработчики подписывают выпущенные бинарные файлы своими ключами PGP, чтобы вы могли криптографически проверить, что запускаете именно то программное обеспечение, которое они создали. Вам просто нужно получить открытые ключи, используемые разработчиками, которые можно найти на страницах релизов клиентов или в документации. После загрузки релиза клиента и его подписи вы можете использовать реализацию PGP, например, GnuPG (opens in a new tab), чтобы легко их проверить. Ознакомьтесь с руководством по проверке программного обеспечения с открытым исходным кодом с помощью gpg в Linux (opens in a new tab) или Windows/macOS (opens in a new tab).
Другая форма проверки — убедиться, что хеш (уникальный криптографический отпечаток) загруженного вами программного обеспечения совпадает с тем, который предоставили разработчики. Это даже проще, чем использование PGP, и некоторые клиенты предлагают только этот вариант. Просто запустите хеш-функцию для загруженного программного обеспечения и сравните результат с тем, что указан на странице релиза. Например:
sha256sum teku-22.6.1.tar.gz
9b2f8c1f8d4dab0404ce70ea314ff4b3c77e9d27aff9d1e4c1933a5439767dde
Настройка клиента
После установки, загрузки или компиляции клиентского программного обеспечения вы готовы к его запуску. Это означает лишь то, что оно должно быть выполнено с правильной конфигурацией. Клиенты предлагают богатые возможности конфигурации, которые могут включать различные функции.
Давайте начнем с параметров, которые могут существенно повлиять на производительность клиента и использование данных. Режимы синхронизации представляют собой различные методы загрузки и проверки данных блокчейна. Перед запуском узла вам следует решить, какую сеть и режим синхронизации использовать. Самое важное, что нужно учитывать, — это дисковое пространство и время синхронизации, которые потребуются клиенту. Обратите внимание на документацию клиента, чтобы определить, какой режим синхронизации используется по умолчанию. Если он вам не подходит, выберите другой, исходя из уровня безопасности, доступных данных и затрат. Помимо алгоритма синхронизации, вы также можете настроить обрезку (pruning) различных видов старых данных. Обрезка позволяет удалять устаревшие данные, т. е. удалять узлы дерева состояний, которые недоступны из последних блоков.
Другие базовые параметры конфигурации — это, например, выбор сети (Мейннет или тестовые сети), включение конечной точки HTTP для RPC или WebSockets и т. д. Вы можете найти все функции и параметры в документации клиента. Различные конфигурации клиента можно задать, запустив клиент с соответствующими флагами непосредственно в CLI или файле конфигурации. Каждый клиент немного отличается; пожалуйста, всегда обращайтесь к его официальной документации или странице справки для получения подробной информации о параметрах конфигурации.
В целях тестирования вы можете предпочесть запустить клиент в одной из тестовых сетей. Смотрите обзор поддерживаемых сетей.
Примеры запуска клиентов исполнения с базовой конфигурацией можно найти в следующем разделе.
Запуск клиента исполнения
Перед запуском клиентского программного обеспечения Эфириума выполните последнюю проверку готовности вашей среды. Например, убедитесь, что:
- Достаточно дискового пространства с учетом выбранной сети и режима синхронизации.
- Память и процессор не перегружены другими программами.
- Операционная система обновлена до последней версии.
- В системе установлены правильные время и дата.
- Ваш маршрутизатор и брандмауэр принимают соединения на прослушиваемых портах. По умолчанию клиенты Эфириума используют порт прослушивания (TCP) и порт обнаружения (UDP), оба по умолчанию на 30303.
Сначала запустите свой клиент в тестовой сети, чтобы убедиться, что все работает правильно.
При запуске вам нужно объявить любые настройки клиента, которые не используются по умолчанию. Вы можете использовать флаги или файл конфигурации, чтобы объявить предпочитаемую конфигурацию. Набор функций и синтаксис конфигурации каждого клиента различаются. Ознакомьтесь с документацией вашего клиента для получения подробной информации.
Клиенты исполнения и консенсуса обмениваются данными через аутентифицированную конечную точку, указанную в Engine API (opens in a new tab). Чтобы подключиться к клиенту консенсуса, клиент исполнения должен сгенерировать jwtsecret (opens in a new tab) по известному пути. Из соображений безопасности и стабильности клиенты должны работать на одной машине, и оба клиента должны знать этот путь, так как он используется для аутентификации локального RPC-соединения между ними. Клиент исполнения также должен определить порт прослушивания для аутентифицированных API.
Этот токен генерируется автоматически клиентским программным обеспечением, но в некоторых случаях вам может потребоваться сделать это самостоятельно. Вы можете сгенерировать его с помощью OpenSSL (opens in a new tab):
openssl rand -hex 32 > jwtsecret
Запуск клиента исполнения
Этот раздел поможет вам запустить клиенты исполнения. Он служит лишь примером базовой конфигурации, которая запустит клиент со следующими настройками:
- Указывает сеть для подключения, в наших примерах это Мейннет
- Вместо этого вы можете выбрать одну из тестовых сетей для предварительного тестирования вашей настройки
- Определяет каталог данных, где будут храниться все данные, включая блокчейн
- Обязательно замените путь на реальный, например, указывающий на ваш внешний диск
- Включает интерфейсы для связи с клиентом
- Включая JSON-RPC и Engine API для связи с клиентом консенсуса
- Определяет путь к
jwtsecretдля аутентифицированного API- Обязательно замените пример пути на реальный, к которому могут получить доступ клиенты, например,
/tmp/jwtsecret
- Обязательно замените пример пути на реальный, к которому могут получить доступ клиенты, например,
Пожалуйста, имейте в виду, что это всего лишь базовый пример, все остальные настройки будут установлены по умолчанию. Обратите внимание на документацию каждого клиента, чтобы узнать о значениях по умолчанию, настройках и функциях. Для получения дополнительных функций, например, для запуска валидаторов, мониторинга и т. д., пожалуйста, обратитесь к документации конкретного клиента.
Обратите внимание, что обратные косые черты
\в примерах предназначены только для форматирования; флаги конфигурации можно определить в одну строку.
Запуск Бесу
Этот пример запускает Бесу в Мейннете, сохраняет данные блокчейна в формате по умолчанию в /data/ethereum, включает JSON-RPC и Engine RPC для подключения клиента консенсуса. Engine API аутентифицируется с помощью токена jwtsecret, и разрешены только вызовы с localhost.
besu --network=mainnet \
--data-path=/data/ethereum \
--rpc-http-enabled=true \
--engine-rpc-enabled=true \
--engine-host-allowlist="*" \
--engine-jwt-enabled=true \
--engine-jwt-secret=/path/to/jwtsecret
Бесу также поставляется с опцией лаунчера, который задаст ряд вопросов и сгенерирует файл конфигурации. Запустите интерактивный лаунчер с помощью:
besu --Xlauncher
Документация Бесу (opens in a new tab) содержит дополнительные параметры и сведения о конфигурации.
Запуск Эригона
Этот пример запускает Эригон в Мейннете, сохраняет данные блокчейна в /data/ethereum, включает JSON-RPC, определяет, какие пространства имен разрешены, и включает аутентификацию для подключения клиента консенсуса, который определяется путем jwtsecret.
erigon --chain mainnet \
--datadir /data/ethereum \
--http --http.api=engine,eth,web3,net \
--authrpc.jwtsecret=/path/to/jwtsecret
Эригон по умолчанию выполняет полную синхронизацию с 8 ГБ HDD, что приведет к более чем 2 ТБ архивных данных. Убедитесь, что datadir указывает на диск с достаточным количеством свободного места, или обратите внимание на флаг --prune, который может обрезать различные виды данных. Ознакомьтесь с --help Эригона, чтобы узнать больше.
Запуск Geth
Этот пример запускает Geth в Мейннете, сохраняет данные блокчейна в /data/ethereum, включает JSON-RPC и определяет, какие пространства имен разрешены. Он также включает аутентификацию для подключения клиента консенсуса, которая требует пути к jwtsecret, а также опцию, определяющую, какие соединения разрешены, в нашем примере только с localhost.
geth --mainnet \
--datadir "/data/ethereum" \
--http --authrpc.addr localhost \
--authrpc.vhosts="localhost" \
--authrpc.port 8551
--authrpc.jwtsecret=/path/to/jwtsecret
Ознакомьтесь с документацией по всем параметрам конфигурации (opens in a new tab) и узнайте больше о запуске Geth с клиентом консенсуса (opens in a new tab).
Запуск Незермайнд
Незермайнд предлагает различные варианты установки (opens in a new tab). Пакет поставляется с различными бинарными файлами, включая лаунчер с пошаговой настройкой, который поможет вам создать конфигурацию в интерактивном режиме. В качестве альтернативы вы найдете Runner, который является самим исполняемым файлом, и вы можете просто запустить его с флагами конфигурации. JSON-RPC включен по умолчанию.
Nethermind.Runner --config mainnet \
--datadir /data/ethereum \
--JsonRpc.JwtSecretFile=/path/to/jwtsecret
Документация Незермайнд предлагает полное руководство (opens in a new tab) по запуску Незермайнд с клиентом консенсуса.
Клиент исполнения инициирует свои основные функции, выбранные конечные точки и начнет поиск пиров. После успешного обнаружения пиров клиент начинает синхронизацию. Клиент исполнения будет ожидать подключения от клиента консенсуса. Текущие данные блокчейна будут доступны после успешной синхронизации клиента с текущим состоянием.
Запуск Рет
Этот пример запускает Рет в Мейннете, используя расположение данных по умолчанию. Включает аутентификацию JSON-RPC и Engine RPC для подключения клиента консенсуса, который определяется путем jwtsecret, при этом разрешены только вызовы с localhost.
reth node \
--authrpc.jwtsecret /path/to/jwtsecret \
--authrpc.addr 127.0.0.1 \
--authrpc.port 8551
Смотрите Настройка Рет (opens in a new tab), чтобы узнать больше о каталогах данных по умолчанию. Документация Рет (opens in a new tab) содержит дополнительные параметры и сведения о конфигурации.
Запуск клиента консенсуса
Клиент консенсуса должен быть запущен с правильной конфигурацией портов для установления локального RPC-соединения с клиентом исполнения. Клиенты консенсуса должны запускаться с открытым портом клиента исполнения в качестве аргумента конфигурации.
Клиенту консенсуса также нужен путь к jwt-secret клиента исполнения для аутентификации RPC-соединения между ними. Подобно примерам исполнения выше, каждый клиент консенсуса имеет флаг конфигурации, который принимает путь к файлу jwt-токена в качестве аргумента. Это должно соответствовать пути jwtsecret, предоставленному клиенту исполнения.
Если вы планируете запустить валидатор, обязательно добавьте флаг конфигурации, указывающий адрес Эфириума получателя комиссии. Именно здесь накапливаются вознаграждения в эфире для вашего валидатора. У каждого клиента консенсуса есть опция, например, --suggested-fee-recipient=0xabcd1, которая принимает адрес Эфириума в качестве аргумента.
При запуске сигнального узла в тестовой сети вы можете сэкономить значительное время синхронизации, используя публичную конечную точку для синхронизации контрольной точки (opens in a new tab).
Запуск клиента консенсуса
Запуск Лайтхаус
Перед запуском Лайтхаус узнайте больше о том, как его установить и настроить, в Lighthouse Book (opens in a new tab).
lighthouse beacon_node \
--network mainnet \
--datadir /data/ethereum \
--http \
--execution-endpoint http://127.0.0.1:8551 \
--execution-jwt /path/to/jwtsecret
Запуск Лодстар
Установите программное обеспечение Лодстар, скомпилировав его или загрузив образ Docker. Узнайте больше в документации (opens in a new tab) и более подробном руководстве по настройке (opens in a new tab).
lodestar beacon \
--dataDir="/data/ethereum" \
--network=mainnet \
--eth1.enabled=true \
--execution.urls="http://127.0.0.1:8551" \
--jwt-secret="/path/to/jwtsecret"
Запуск Нимбус
Нимбус поставляется как с клиентом консенсуса, так и с клиентом исполнения. Его можно запускать на различных устройствах даже с очень скромной вычислительной мощностью. После установки зависимостей и самого Нимбус (opens in a new tab) вы можете запустить его клиент консенсуса:
nimbus_beacon_node \
--network=mainnet \
--web3-url=http://127.0.0.1:8551 \
--rest \
--jwt-secret="/path/to/jwtsecret"
Запуск Призм
Призм поставляется со скриптом, который обеспечивает простую автоматическую установку. Подробности можно найти в документации Призм (opens in a new tab).
./prysm.sh beacon-chain \
--mainnet \
--datadir /data/ethereum \
--execution-endpoint=http://localhost:8551 \
--jwt-secret=/path/to/jwtsecret
Запуск Теку
teku --network mainnet \
--data-path "/data/ethereum" \
--ee-endpoint http://localhost:8551 \
--ee-jwt-secret-file "/path/to/jwtsecret"
Когда клиент консенсуса подключается к клиенту исполнения для чтения депозитного контракта и идентификации валидаторов, он также подключается к другим пирам сигнального узла и начинает синхронизацию слотов консенсуса с генезиса. Как только сигнальный узел достигает текущей эпохи, Beacon API становится доступным для ваших валидаторов. Узнайте больше об API сигнального узла (opens in a new tab).
Добавление валидаторов
Клиент консенсуса служит сигнальным узлом для подключения валидаторов. У каждого клиента консенсуса есть собственное программное обеспечение валидатора, подробно описанное в соответствующей документации.
Запуск собственного валидатора позволяет осуществлять соло-стейкинг — наиболее эффективный и не требующий доверия метод поддержки сети Эфириума. Однако для этого требуется депозит в размере 32 ETH. Чтобы запустить валидатор на собственном узле с меньшей суммой, вас может заинтересовать децентрализованный пул с общедоступными операторами узлов, такой как Rocket Pool (opens in a new tab).
Самый простой способ начать работу со стейкингом и генерацией ключей валидатора — использовать Hoodi Testnet Staking Launchpad (opens in a new tab), который позволяет протестировать вашу настройку путем запуска узлов в Hoodi (opens in a new tab). Когда вы будете готовы к Мейннету, вы можете повторить эти шаги, используя Mainnet Staking Launchpad (opens in a new tab).
Загляните на страницу стейкинга для обзора вариантов стейкинга.
Использование узла
Клиенты исполнения предлагают конечные точки RPC API, которые вы можете использовать для отправки транзакций, взаимодействия со смарт-контрактами или их развертывания в сети Эфириума различными способами:
- Вызывая их вручную с помощью подходящего протокола (например, используя
curl) - Подключая предоставленную консоль (например,
geth attach) - Реализуя их в приложениях с использованием библиотек Web3, например, Web3.py (opens in a new tab), ethers (opens in a new tab)
Разные клиенты имеют разные реализации конечных точек RPC. Но существует стандартный JSON-RPC, который вы можете использовать с каждым клиентом. Для обзора прочтите документацию по JSON-RPC. Приложения, которым нужна информация из сети Эфириума, могут использовать этот RPC. Например, популярный кошелек МетаМаск позволяет вам подключиться к вашей собственной конечной точке RPC (opens in a new tab), что дает значительные преимущества в плане приватности и безопасности.
Все клиенты консенсуса предоставляют Beacon API (opens in a new tab), который можно использовать для проверки статуса клиента консенсуса или загрузки блоков и данных консенсуса путем отправки запросов с помощью таких инструментов, как Curl (opens in a new tab). Дополнительную информацию об этом можно найти в документации для каждого клиента консенсуса.
Доступ к RPC
Порт по умолчанию для JSON-RPC клиента исполнения — 8545, но вы можете изменить порты локальных конечных точек в конфигурации. По умолчанию интерфейс RPC доступен только на локальном хосте (localhost) вашего компьютера. Чтобы сделать его удаленно доступным, вы можете открыть его для публичного доступа, изменив адрес на 0.0.0.0. Это сделает его доступным по локальной сети и публичным IP-адресам. В большинстве случаев вам также потребуется настроить переадресацию портов на вашем маршрутизаторе.
Подходите к открытию портов в интернет с осторожностью, так как это позволит любому пользователю в интернете управлять вашим узлом. Злоумышленники могут получить доступ к вашему узлу, чтобы вывести из строя вашу систему или украсть ваши средства, если вы используете свой клиент в качестве кошелька.
Один из способов обойти это — предотвратить возможность изменения потенциально опасных методов RPC. Например, в Geth вы можете объявить изменяемые методы с помощью флага: --http.api web3,eth,txpool.
Доступ к интерфейсу RPC можно расширить за счет разработки API пограничного уровня (edge layer) или приложений веб-сервера, таких как 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 Foundation (EF) публикует пост в своем блоге (opens in a new tab). Вы можете подписаться на эти объявления (opens in a new tab), чтобы получать уведомления на почту, когда вашему узлу потребуется обновление.
Обновление клиентов очень простое. У каждого клиента есть конкретные инструкции в документации, но процесс, как правило, заключается просто в загрузке последней версии и перезапуске клиента с новым исполняемым файлом. Клиент должен продолжить работу с того места, где остановился, но с примененными обновлениями.
Каждая реализация клиента имеет удобочитаемую строку версии, используемую в одноранговом протоколе, но также доступную из командной строки. Эта строка версии позволяет пользователям проверять, что они используют правильную версию, и позволяет обозревателям блоков и другим аналитическим инструментам количественно оценивать распределение конкретных клиентов в сети. Пожалуйста, обратитесь к документации отдельного клиента для получения дополнительной информации о строках версий.
Запуск дополнительных сервисов
Запуск собственного узла позволяет вам использовать сервисы, требующие прямого доступа к RPC клиента Эфириума. Это сервисы, созданные поверх Эфириума, такие как решения уровня 2 (l2), бэкенд для кошельков, обозреватели блоков, инструменты разработчика и другая инфраструктура Эфириума.
Мониторинг узла
Для правильного мониторинга вашего узла рассмотрите возможность сбора метрик. Клиенты предоставляют конечные точки метрик, чтобы вы могли получать исчерпывающие данные о своем узле. Используйте такие инструменты, как InfluxDB (opens in a new tab) или Prometheus (opens in a new tab), для создания баз данных, которые вы можете превратить в визуализации и диаграммы в таком программном обеспечении, как Grafana (opens in a new tab). Существует множество настроек для использования этого программного обеспечения и различных панелей управления Grafana для визуализации вашего узла и сети в целом. Например, ознакомьтесь с руководством по мониторингу Geth.
В рамках мониторинга обязательно следите за производительностью вашей машины. Во время начальной синхронизации вашего узла клиентское программное обеспечение может сильно нагружать процессор и оперативную память. В дополнение к Grafana вы можете использовать инструменты, предлагаемые вашей ОС, такие как htop или uptime, для этого.
Дополнительная литература
- Руководства по стейкингу Эфириума (opens in a new tab) — Сомер Эсат (Somer Esat), часто обновляется
- Руководство | Как настроить валидатор для стейкинга Эфириума в Мейннете (opens in a new tab) – CoinCashew, часто обновляется
- Руководства EthStaker по запуску валидаторов в тестовых сетях (opens in a new tab) – EthStaker, регулярно обновляется
- Пример приложения AWS Blockchain Node Runner для узлов Эфириума (opens in a new tab) — AWS, часто обновляется
- Часто задаваемые вопросы о Слиянии для операторов узлов (opens in a new tab) — Июль 2022 г.
- Анализ требований к оборудованию для полного проверенного узла Эфириума (opens in a new tab) – Альберт Палау (Albert Palau), 24 сентября 2018 г.
- Запуск полных узлов Эфириума: руководство для слабо мотивированных (opens in a new tab) – Джастин Леру (Justin Leroux), 7 ноября 2019 г.
- Запуск узла Hyperledger Besu в основной сети Ethereum: преимущества, требования и настройка (opens in a new tab) – Фелипе Фараджи (Felipe Faraggi), 7 мая 2020 г.
- Развертывание клиента Эфириума Nethermind со стеком мониторинга (opens in a new tab) – Nethermind.eth, 8 июля 2020 г.
