Парадигма: Подробное объяснение проблем исторического роста Эфириума и их решений.
Оригинальная статья Сторма Сливкова и Георгиоса Константопулоса.
Оригинальный перевод: Луффи, Foresight News
Исторический рост в настоящее время является самым большим препятствием для расширения Ethereum. Удивительно, но исторический рост стал более серьезной проблемой, чем рост государства. Через несколько лет исторические данные превысят емкость хранения многих узлов Ethereum.
Хорошая новость:
-
Исторический рост — гораздо более легкая проблема, которую можно решить, чем рост государства.
-
Решение уже активно разработка.
-
Решение проблемы исторического роста облегчит проблему роста государства.
В этом посте мы продолжаем исследование масштабирования Эфириума, начатое в первой части, теперь смещая фокус с роста состояния на исторический рост. Используя уточненный набор данных, наши цели состоят в том, чтобы 1) технически понять узкие места масштабирования Эфириума и 2) помочь в обсуждении оптимального решения ограничения газа Эфириума.
Что такое исторический рост?
История — это совокупность всех блоков и транзакций, выполненных Эфириумом на протяжении всего его жизненного цикла. Это все данные от исходного блока до текущего блока. Рост истории — это накопление новых блоков и новых транзакций с течением времени.
На рисунке 1 показана взаимосвязь между ростом истории и различными метриками протокола и аппаратной конструкцией узла Ethereum.aiнц. Рост истории ограничен другим набором аппаратных ограничений, чем рост состояния. Рост истории оказывает давление на сетевой ввод-вывод, поскольку новые блоки и транзакции должны передаваться по всей сети. Рост истории также оказывает давление на пространство для хранения узлов, поскольку каждый узел Ethereum хранит полную копию истории. Если рост истории будет достаточно быстрым, чтобы превысить эти аппаратные ограничения, узел больше не сможет достичь стабильного консенсуса со своими коллегами. Обзор роста штатов и других узких мест масштабирования см. Часть 1 этой серии.
Рисунок 1. Узкое место масштабирования Ethereum
До недавнего времени большая часть пропускной способности сети каждого узла использовалась для передачи истории (например, новых блоков и транзакций). Ситуация изменилась с появлением BLOB-объектов в хард-форке Dencun. На BLOB-объекты теперь приходится большая часть сетевой активности узлов. Однако BLOB-объекты не считаются частью истории, потому что 1) они хранятся узлами только в течение 2 недель, а затем отбрасываются, и 2) им не нужно повторять данные из генезиса Ethereum. Благодаря (1) BLOB-объекты не увеличивают значительно нагрузку на хранилище каждого узла Ethereum. Мы обсудим BLOB-объекты позже в этой статье.
В этой статье мы сосредоточимся на развитии истории и обсудим взаимосвязь между историей и государством. Поскольку рост состояния и рост истории имеют некоторые перекрывающиеся аппаратные ограничения, это взаимосвязанные проблемы, и решение одной может помочь решить другую.
Насколько быстрым был исторический рост?
На рисунке 2 показаны исторические темпы роста с момента появления Эфириума. Каждая вертикальная линия представляет один месяц роста. Ось Y представляет количество гигабайт исторического роста за этот месяц. Транзакции классифицируются по их «адресу назначения» и измеряются с использованием байтов RLP (https://ethereum.org/en/developers/docs/data-structures-and-encoding/rlp/). Контракты, которые невозможно легко идентифицировать, классифицируются как «неизвестные». Категория «другое» включает ряд небольших категорий, таких как инфраструктура и игры.
Рисунок 2. Исторические темпы роста Ethereum с течением времени
Несколько ключевых выводов из приведенной выше диаграммы:
-
История растет в 6–8 раз быстрее, чем состояние: рост истории недавно достиг пика в 36,0 ГиБ/месяц, а в настоящее время составляет 19,3 ГиБ/месяц. Рост штата достиг пика примерно в 6,0 ГиБ/месяц и в настоящее время составляет 2,5 ГиБ/месяц. Сравнение истории и состояния с точки зрения роста и совокупного размера описано ниже в этой статье.
-
До Декуна исторические темпы роста ускорялись: хотя штат рос примерно линейно в течение многих лет (см. Часть 1), история была сверхлинейной. Учитывая, что линейный темп роста приведет к квадратичному росту общего размера, сверхлинейный темп роста приведет к более чем квадратичному росту общего размера. После Денкуна это ускорение резко прекратилось. Это первый раз, когда Эфириум испытал значительное снижение исторических темпов роста.
-
Большая часть недавнего исторического роста приходится на Rollups: каждый L2 публикует копии своих транзакций обратно в основную сеть. Это создает большой объем истории и сделало Rollups наиболее важным фактором исторического роста за последний год. Однако Dencun позволяет L2 публиковать данные о своих транзакциях, используя BLOB-объекты вместо истории, поэтому накопительные пакеты больше не генерируют большую часть истории Ethereum. Более подробно о накопительных пакетах мы расскажем далее в этой статье.
Кто внес наибольший вклад в исторический рост Ethereum?
Историческое количество контрактов, созданных различными категориями контрактов, показывает, как со временем менялись модели использования Ethereum. На рисунке 3 показан относительный вклад различных категорий контрактов. Это те же данные, что и на рисунке 2, нормированные.
Рисунок 3. Вклад различных типов контрактов в исторический рост
Данные показывают четыре различных периода моделей использования Ethereum:
-
Ранний (фиолетовый): в первые несколько лет существования Ethereum активность в сети была незначительной. Большинство этих ранних контрактов сейчас трудно идентифицировать, и на графике они отмечены как «неизвестные».
-
Эра ERC-20 (зеленый): Стандарт ERC-20 был завершен в конце 2015 года, но не получил значительного развития до 2017 и 2018 годов. Контракты ERC-20 были крупнейшим источником исторического роста в 2019 году.
-
Эра DEX/DeFi (коричневый): контракты DEX и DeFi появились в цепочке еще в 2016 году и начали набирать обороты в 2017 году. Но только летом 2020 года DeFi они стали крупнейшей категорией с точки зрения исторического роста. Контракты DeFi и DEX обеспечили исторический рост более чем на 50% в 2021 году и в некоторых частях 2022 года.
-
Эра роллапов (серый): роллапы L2 начнут выполнять больше транзакций, чем основная сеть, в начале 2023 года. За несколько месяцев до Dencun они сгенерировали около 2/3 истории Ethereum.
Каждая эпоха представляет собой более сложную модель использования Эфириума, чем предыдущая. Сложность можно рассматривать как форму масштабирования Эфириума с течением времени, которую нельзя измерить простыми показателями, такими как количество транзакций в секунду.
За последний месяц данных (апрель 2024 г.) накопительные пакеты больше не генерируют большую часть истории. Неясно, будет ли будущая история исходить от DEX и DeFi или появится какая-то новая модель использования.
А как насчет блохов?
Хард-форк Dencun представил BLOB-объекты, что значительно изменило историческую динамику роста, позволив Rollups публиковать данные, используя дешевые BLOB-объекты вместо исторических записей. На рис. 4 показаны исторические темпы роста до и после модернизации Dencun. Эта диаграмма аналогична рисунку 2, за исключением того, что каждая вертикальная линия представляет один день вместо одного месяца.
Рисунок 4. Влияние Dencun на исторический рост
Из этой диаграммы мы можем сделать несколько ключевых выводов:
-
Со времен Dencun исторический рост сводных данных снизился примерно на 2/3: большинство накопительных пакетов были преобразованы из данных о вызовах в большие двоичные объекты, что значительно сократило объем генерируемой ими истории. Однако по состоянию на апрель 2024 г. все еще существуют некоторые сводные данные, которые еще не преобразованы из данных о вызовах в большие двоичные объекты.
-
Общий исторический рост снизился примерно на 1/3 со времени Dencun: Dencun лишь снизил исторический рост для объединенных пакетов. Исторический рост по другим категориям контрактов немного увеличился. Даже после Денкуна исторический рост по-прежнему в 8 раз превышает рост штата (подробности см. В следующем разделе).
Хотя BLOB-объекты снизили исторический темп роста, они по-прежнему являются новой особенностью Ethereum, и неясно, на каком уровне исторический темп роста стабилизируется при наличии BLOB-объектов.
Насколько быстрый исторический рост приемлем?
Увеличение лимита газа увеличит исторический темп роста. Поэтому предложения по увеличению лимита газа (например, Накачать газ ) должен учитывать взаимосвязь между историческим ростом и узким местом оборудования каждого узла.
Чтобы определить приемлемый исторический темп роста, нам сначала нужно понять, как долго текущее оборудование узла сможет поддерживать работу сети и хранилища. Сетевое оборудование, вероятно, сможет поддерживать статус-кво на неопределенный срок, поскольку исторические темпы роста вряд ли вернутся к пику, существовавшему до Денкуна, до того, как лимит газа будет увеличен. Однако нагрузка на хранение истории со временем будет увеличиваться. В соответствии с текущей стратегией хранения неизбежно, что жесткий диск каждого узла в конечном итоге будет заполнен историческими записями.
На рисунке 5 показана нагрузка на хранилище узлов Ethereum с течением времени и прогнозируется рост нагрузки на хранилище в течение следующих 3 лет. Прогноз относится к темпам роста в апреле 2024 года. Темпы роста могут увеличиваться или уменьшаться по мере изменения моделей использования или ограничений на газ в будущем.
Рисунок 5: Размер истории, состояние и полная нагрузка на хранилище узла
Из этого рисунка мы можем сделать несколько ключевых выводов:
-
История занимает примерно в 3 раза больше места для хранения, чем состояние. Эта разница со временем растет, поскольку история растет примерно в 8 раз быстрее, чем государство.
-
1,8 ТиБ — это критический порог, и многие узлы будут вынуждены обновить свои жесткие диски хранения. 2 ТБ — это обычный размер жесткого диска, который обеспечивает только 1,8 ТиБ свободного места. Обратите внимание, что ТБ (1 триллион байт) — это другая единица, чем ТиБ (= 1024^4 байта). Для многих операторов узлов реальный критический порог еще ниже, поскольку после слияния валидаторы должны запускать клиент консенсуса вместе с клиентом исполнения.
-
Критический порог будет достигнут через 2-3 года. Увеличение лимита газа на любую величину соответственно ускорит это время. Достижение этого порога наложит значительную нагрузку на операторов узлов и потребует приобретения дополнительного оборудования (например, накопителей $300 NVME).
В отличие от данных о состоянии, данные истории доступны только для добавления и доступны гораздо реже. Поэтому теоретически данные истории можно хранить отдельно от данных о состоянии на более дешевых носителях. Этого могут достичь некоторые клиенты, такие как Geth.
Помимо емкости хранилища, еще одним серьезным ограничением исторического роста является сетевой ввод-вывод. В отличие от емкости хранилища, ограничения ввода-вывода в сети не вызовут проблем для узлов в краткосрочной перспективе, но эти ограничения станут важными по мере увеличения лимитов газа в будущем.
Чтобы понять, какой исторический рост может поддерживать пропускная способность сети типичного узла Ethereum, необходимо знать взаимосвязь между историческим ростом и различными показателями работоспособности сети, такими как уровень реорганизации, промахи слотов, промахи окончательности, промахи доказательства, промахи комитета синхронизации и заблокировать задержку отправки. Анализ этих показателей выходит за рамки данной статьи, но дополнительную информацию можно найти в предыдущих исследованиях состояния уровня консенсуса. Кроме того, проект Ethereum Foundations Xatu создает общедоступные наборы данных для ускорения такого анализа.
Как решить проблему исторического роста?
Исторический рост — гораздо более легкая проблема, которую можно решить, чем рост государства. Эту проблему можно почти полностью решить с помощью предложения-кандидата EIP-4444. Этот EIP меняет каждый узел с сохранения всей истории Ethereum на сохранение истории только за один год. После внедрения EIP-4444 хранилище данных больше не будет узким местом для расширения Ethereum, а увеличение лимита газа больше не будет препятствием в долгосрочной перспективе. EIP-4444 необходим для долгосрочной устойчивости сети, в противном случае скорость роста истории будет очень быстрой, и оборудование сетевых узлов необходимо будет регулярно обновлять.
На рисунке 6 показано влияние EIP-4444 на нагрузку на хранилище каждого узла в течение следующих 3 лет. Это то же самое, что на рисунке 4, но с добавлением более светлой линии, обозначающей нагрузку на хранилище после внедрения EIP-4444.
Рисунок 6 : Влияние EIP-4444 на нагрузку на хранилище узла Ethereum.
Из этого рисунка можно сделать некоторые ключевые выводы:
-
EIP-4444 вдвое сократит текущую нагрузку на хранилище. Нагрузка на хранилище снизится с 1,2 ТиБ до 633 ГиБ.
-
EIP-4444 стабилизирует нагрузку на хранилище истории. Предполагая постоянную скорость роста истории, исторические данные будут отбрасываться со скоростью, с которой они генерируются.
-
После EIP-4444 потребуется много лет, чтобы нагрузка на хранилище узлов достигла сегодняшнего уровня. Это связано с тем, что рост штата будет единственным фактором, увеличивающим нагрузку на хранилище, а рост штата будет медленнее, чем исторический рост.
После внедрения EIP-4444 рост истории по-прежнему будет приносить определенную нагрузку на хранилище, поскольку узел будет хранить историю за один год. Однако даже если Ethereum достигнет глобального масштаба, решить эту проблему не составит труда. Как только будет доказана надежность метода сохранения истории, годичный срок действия EIP-4444 может быть сокращен до нескольких месяцев, недель или даже короче.
Как сохранить историю Эфириума?
EIP-4444 поднимает вопрос: если история не хранится самими узлами Ethereum, то как ее следует хранить? История играет центральную роль в проверке, учете и анализе Эфириума, поэтому сохранение истории имеет решающее значение. К счастью, сохранение истории — простая задача, для решения которой требуется только 1/n честных поставщиков данных. Это резко контрастирует с проблемой государственного консенсуса, которая требует от 1/3 до 2/3 участников быть честными. Операторы узлов могут проверять подлинность наборов исторических данных, 1) воспроизводя все транзакции, начиная с блока генезиса, и 2) проверяя, что эти транзакции воспроизводят тот же корень состояния, что и текущий конец блокчейна.
Есть много способов сохранить историю.
-
Торренты/P2P: Торренты — самый простой и надежный метод. Узлы Ethereum могут периодически упаковывать части истории и делиться ими как общедоступными торрент-файлами. Например, узел может создавать новый торрент-файл истории каждые 100 000 блоков. Клиенты Node, такие как Erigon, уже выполняют этот процесс несколько нестандартным способом. Чтобы стандартизировать этот процесс, все клиенты узла должны использовать один и тот же формат данных, одни и те же параметры и одну и ту же P2P-сеть. Узлы смогут выбирать, участвовать ли в этой сети, в зависимости от их возможностей хранения и пропускной способности. Преимущество торрентов заключается в использовании открытого стандарта, который уже поддерживается большим количеством инструментов обработки данных.
-
Портальная сеть: Портальная сеть — это новая сеть, разработанная специально для размещения данных Ethereum. Это подход, похожий на Torrent, но в то же время предоставляющий некоторые дополнительные функции, упрощающие проверку данных. Преимущество сети порталов заключается в том, что эти дополнительные уровни проверки позволяют легким клиентам эффективно проверять и запрашивать общие наборы данных.
-
Облачный хостинг. Службы облачного хранения, такие как AWS S3 или Cloudflare R2, предоставляют дешевый и высокопроизводительный вариант сохранения исторических записей. Однако этот подход несет в себе больше юридических и деловых операционных рисков, поскольку нет никакой гарантии, что эти облачные сервисы всегда готовы и способны хранить зашифрованные данные.
Остальные проблемы реализации носят скорее социальный, чем технический характер. Сообществу Ethereum необходимо согласовать конкретные детали реализации, чтобы их можно было интегрировать непосредственно в клиент каждого узла. В частности, выполнение полной синхронизации из блока генезиса (а не синхронизации снимков) потребует получения истории от поставщика истории, а не от узла Ethereum. Эти изменения технически не требуют хард-форка, поэтому их можно реализовать раньше, чем следующий хард-форк Ethereum, Pectra.
Все эти методы сохранения истории также могут использоваться L2 для сохранения данных больших двоичных объектов, которые они публикуют в основной сети. По сравнению с сохранением истории сохранение больших двоичных объектов 1) сложнее, поскольку общий объем данных намного больше; 2) менее важно, поскольку BLOB-объекты не нужны для воспроизведения истории основной сети. Однако сохранение больших двоичных объектов по-прежнему необходимо для того, чтобы каждый уровень L2 воспроизводил свою собственную историю. Поэтому некоторая форма сохранения больших двоичных объектов важна для всей экосистемы Ethereum. Кроме того, если L2 разработает мощную инфраструктуру хранения BLOB-объектов, они также смогут легко хранить исторические данные L1.
Было бы полезно напрямую сравнить наборы данных, хранящиеся в различных конфигурациях узлов до и после EIP-4444. На рисунке 7 показана нагрузка на хранилище различных типов узлов Ethereum. Данные состояния — это учетные записи и контракты, данные истории — это блоки и транзакции, а данные архива — это необязательный набор индексов данных. Количество байтов в этой таблице основано на недавнем снимке reth, но числа для других клиентов узла должны быть примерно сопоставимы.
Рисунок 7. Нагрузка на хранилище различных типов узлов Ethereum.
другими словами,
-
Архивные узлы хранят данные о состоянии и исторические данные, а также архивные данные. Узлы архива можно использовать, когда кто-то хочет иметь возможность легко запрашивать статус исторической цепочки.
-
Полные узлы хранят только исторические данные и данные о состоянии. Большинство узлов сегодня являются полными узлами. Нагрузка на хранилище полного узла примерно вдвое меньше, чем на архивном узле.
-
После EIP-4444 полные узлы хранят только данные о состоянии и исторические данные за последний год. Это снижает нагрузку на хранилище узлов с 1,2 ТиБ до 633 ГиБ и доводит пространство для хранения исторических данных до стабильного значения.
-
Узлы без сохранения состояния, также известные как «легкие узлы», не хранят никаких наборов данных и могут проверяться сразу в конце цепочки. Этот тип узла станет возможным после того, как в Ethereum будут добавлены попытки Verkle или другие схемы государственных обязательств.
Наконец, есть несколько дополнительных EIP, которые ограничивают исторические темпы роста, а не просто адаптируются к текущим темпам роста. Это помогает оставаться в пределах ограничений ввода-вывода сети в краткосрочной перспективе и ограничений хранилища в долгосрочной перспективе. Хотя EIP-4444 по-прежнему необходим для долгосрочной устойчивости сети, другие EIP помогут Ethereum более эффективно масштабироваться в будущем:
-
EIP-7623: Переоценка данных вызовов, что делает определенные транзакции со слишком большим объемом данных вызовов более дорогими. Удорожание этих шаблонов использования заставит некоторые из них перейти от данных о вызовах к большим двоичным объектам. Это снизит исторический темп роста.
-
EIP-4488: Установите ограничение на общий объем данных вызовов, которые могут быть включены в каждый блок. Это наложит более строгие ограничения на скорость развития истории.
Эти EIP легче реализовать, чем EIP-4444, поэтому они могут служить временной мерой до того, как EIP-4444 поступит в производство.
Заключение
Цель этой статьи — использовать данные, чтобы понять 1) как работает исторический рост и 2) как решить проблему. Многие данные в этой статье трудно получить традиционными способами, поэтому мы надеемся, что обнародование этих данных поможет по-новому взглянуть на историческую проблему экономического роста.
Исторический рост как узкое место для расширения Ethereum не получил достаточного внимания. Даже без увеличения лимита газа текущая практика Ethereum по сохранению истории заставит многие узлы обновить свое оборудование через несколько лет. К счастью, решить эту проблему не так уж и сложно. В EIP-4444 уже есть четкое решение. Мы считаем, что реализацию этого EIP следует ускорить, чтобы оставить место для будущего увеличения лимита газа.
Эта статья взята из Интернета: Парадигма: подробное объяснение проблем и решений исторического роста Ethereum.
Коротко В этом году биткойн сократился вдвое, чтобы сократить вознаграждение за майнинг до 3,125 BTC, что поставит под угрозу прибыльность майнеров. CryptoQuant сообщает о падении хэш-цены майнеров 30% с момента последнего сокращения вдвое, ожидается дальнейшее снижение. Конкуренция и рост затрат: хешрейт сети Биткойн достигает 600 EH/s, что влияет на прибыль. Примерно через 10 дней биткойн-сообщество станет свидетелем значительного события, а именно, сокращения биткойнов вдвое. Это явление сократит вознаграждение за майнинг блока Биткойн вдвое с 6,25 до 3,125 биткойнов, что окажет давление на прибыльность майнеров. Майнеры сейчас участвуют в гонке со временем, требуя более высоких цен на биткойны, чтобы сохранить свои доходы. Почему биткойн-майнеры столкнутся с проблемами Согласно отчету CryptoQuant, предоставленному BeInCrypto, хэш-цена майнера упала на 30% с момента последнего сокращения вдвое в мае 2020 года. В настоящее время эта цена оценивается в $0,11 за Терахеш в секунду, это…