
В Ethereum Foundation предупредили о «раздувании» состояния сети
Увеличение числа пользователей и расширение лимита газа привело к «раздуванию» состояния блокчейна Ethereum, что негативно сказывается на работе узлов. Об этом предупредила команда Ethereum Foundation (EF), предложив ряд возможных решений.
Состояние протокола включает в себя все данные, хранящиеся в сети. Этот массив данных должны загружать операторы нод для отслеживания истории транзакций и другой информации, необходимой для проверки блоков.
По мере накопления данных запуск полноценного узла становится более дорогостоящим, ненадежным и менее децентрализованным, уточнили в EF. Разработчики выделили конкретные издержки:
- валидаторам и полным нодам приходится хранить больше информации, что создает дополнительную нагрузку на базу данных;
- поставщикам RPC необходимо постоянно поддерживать доступ к полному состоянию для совершения своевременных запросов, создавая дополнительные расходы на хранение;
- с ростом состояния синхронизация сети становится медленнее и ненадежнее.
«Увеличение лимита газа усиливает рост состояния, поскольку позволяет добавлять большие записи в блок. Другие блокчейны уже сталкиваются с этой проблемой. При увеличении размеров состояния запуск полной ноды становится нереалистичным для обычных пользователей, что приводит к перераспределению внутри нескольких крупных провайдеров», — добавили в EF.
Что делать?
В долгосрочную стратегию развития Ethereum входит концепция отсутствия состояния, которая позволяет валидаторам проверять блоки без необходимости хранить полную историю блокчейна.
Хотя идея снижает нагрузку на валидаторов и обеспечивает более высокую пропускную способность, она также перекладывает ответственность за хранение данных на меньшую, более специализированную группу, подвергая сеть риску централизации.
Команда EF предложила три потенциальных подхода к решению проблемы. Первый способ — State Expiry — удаляет неактивные данные, позволяя восстановить их с помощью доказательств при необходимости.
Согласно исследованию, примерно 80% состояния не изменялось и не использовалось более года, однако все узлы по-прежнему хранят его целиком. Разработчики рассматривают два пути:
- Маркировку данных, добавление срока давности и функцию восстановления.
- «Многоэрное» истечение срока, при котором состояние уменьшается каждую эпоху.
State Archive — второй путь. Он создает «горячее» и «холодное» состояние. Первая группа данных останется в быстром доступе, а вторую сохранят отдельно для истории и проверки.
Последний вариант — Partial Statelessness — позволяет узлам хранить только «подмножества» состояния, в то время как кошельки и облегченные клиенты будут кешировать необходимые данные. Такой подход снизит затраты места на хранение и уменьшит зависимость от крупных поставщиков RPC-сервисов.
Напомним, в декабре сооснователь Ethereum Виталик Бутерин призвал к упрощению сети с точки зрения пользовательского интерфейса.
Рассылки ForkLog: держите руку на пульсе биткоин-индустрии!