Перейти к основному содержанию
Change page

Портальная сеть

Последнее обновление страницы: 23 февраля 2026 г.

Ethereum — это сеть, состоящая из компьютеров, на которых работает клиентское программное обеспечение Ethereum. Каждый из этих компьютеров называется «узлом». Клиентское программное обеспечение позволяет узлу отправлять и получать данные в сети Ethereum, а также проверять данные на соответствие правилам протокола Ethereum. Узлы хранят большой объем исторических данных в своем дисковом хранилище и пополняют его, когда получают от других узлов в сети новые пакеты информации, известные как блоки. Это необходимо для постоянной проверки того, что узел располагает информацией, соответствующей остальной части сети. Это означает, что для запуска узла может потребоваться много места на диске. Некоторые операции узла также могут требовать много оперативной памяти.

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

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

Подробнее об узлах и клиентах

Зачем нам нужна Портальная сеть

Узлы Ethereum хранят свою собственную полную или частичную копию блокчейна Ethereum. Эта локальная копия используется для проверки транзакций и для гарантии того, что узел следует правильной цепочке. Эти локально хранящиеся данные позволяют узлам самостоятельно проверять, что входящие данные действительны и верны, без необходимости доверять какой-либо другой сущности.

Эта локальная копия блокчейна и связанные с ней данные о состоянии и квитанциях занимают много места на жестком диске узла. Например, для запуска узла с использованием Gethopens in a new tab в паре с клиентом консенсуса рекомендуется жесткий диск на 2 ТБ. При использовании быстрой синхронизации (snap sync), которая хранит только данные цепи из относительно недавнего набора блоков, Geth обычно занимает около 650 ГБ дискового пространства, но растет примерно на 14 ГБ в неделю (вы можете периодически сокращать размер узла до 650 ГБ).

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

Портальная сеть призвана предоставить легким узлам альтернативный способ получения данных, который не требует доверия или значительного увеличения работы, выполняемой полными узлами. Это будет сделано путем внедрения нового способа обмена данными между узлами Ethereum в сети.

Как работает Портальная сеть?

Узлы Ethereum имеют строгие протоколы, которые определяют, как они взаимодействуют друг с другом. Клиенты исполнения обмениваются данными, используя набор подпротоколов, известных как DevP2P, в то время как клиенты консенсуса используют другой стек подпротоколов, называемый libP2P. Они определяют типы данных, которые могут передаваться между узлами.

devP2P и libP2P

Узлы также могут обслуживать определенные данные через JSON-RPC API, с помощью которого приложения и кошельки обмениваются информацией с узлами Ethereum. Однако ни один из этих протоколов не является идеальным для обслуживания данных легких клиентов.

Легкие клиенты в настоящее время не могут запрашивать определенные фрагменты данных цепи через DevP2P или libP2P, поскольку эти протоколы предназначены только для синхронизации цепи и распространения (gossiping) блоков и транзакций. Легкие клиенты не хотят загружать эту информацию, потому что тогда они перестанут быть "легкими".

JSON-RPC API также не является идеальным выбором для запросов данных от легких клиентов, поскольку он зависит от подключения к определенному полному узлу или централизованному RPC-провайдеру, который может обслуживать данные. Это означает, что легкий клиент должен доверять честности этого конкретного узла/провайдера, а полный узел может быть вынужден обрабатывать множество запросов от многих легких клиентов, что увеличивает его требования к пропускной способности.

Смысл Портальной сети заключается в том, чтобы переосмыслить всю конструкцию, создавая ее специально для легковесности, вне рамок проектных ограничений существующих клиентов Ethereum.

Основная идея Портальной сети заключается в том, чтобы взять лучшие элементы текущего сетевого стека, предоставив возможность обслуживать информацию, необходимую легким клиентам, такую как исторические данные и идентификатор текущего заголовка цепи, через легковесную децентрализованную одноранговую сеть в стиле DevP2P с использованием DHTopens in a new tab (по аналогии с Bittorrent).

Идея состоит в том, чтобы добавить к каждому узлу небольшие части общих исторических данных Ethereum и некоторые определенные обязанности узла. Затем запросы обслуживаются путем поиска узлов, хранящих запрошенные конкретные данные, и получения их от этих узлов.

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

Цель состоит в том, чтобы позволить децентрализованной сети легковесных клиентов Портальной сети:

  • отслеживать заголовок цепи
  • синхронизировать свежие и исторические данные цепи
  • получать данные о состоянии
  • транслировать транзакции
  • исполнять транзакции с использованием EVM

Преимущества такой сетевой архитектуры:

  • уменьшение зависимости от централизованных провайдеров
  • Снижение использования пропускной способности Интернета
  • Минимизированная или нулевая синхронизация
  • Доступность для устройств с ограниченными ресурсами (<1 ГБ ОЗУ, <100 МБ на диске, 1 ЦП)

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

Портальные сети

Легкий клиент сети BeaconСеть состоянияРаспространение (gossip) транзакцийСеть истории
Легкий клиент сети BeaconХранилище аккаунтов и контрактовЛегковесный мемпулЗаголовки
Данные протоколаТела блоков
Квитанции

Разнообразие клиентов по умолчанию

Разработчики Портальной сети также приняли проектное решение создавать с первого дня четыре отдельных клиента Портальной сети.

Клиенты The Portal Network:

Наличие нескольких независимых реализаций клиентов повышает отказоустойчивость и децентрализацию сети Ethereum.

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

Дополнительные материалы

Была ли эта статья полезной?