С момента своего выпуска в прошлом году стек OP завоевал значительную популярность среди разработчиков накопительных пакетов. Его используют разработчики, создающие новые накопительные пакеты, и поставщики модульной инфраструктуры, такие как Caldera и Conduit, что позволяет разработчикам быстро развертывать собственные накопительные пакеты.
Как было сказано в прошлогоднем объявлении, модульность является фундаментальным аспектом концепции OP Stack:
Каждый уровень стека OP описывается четко определенным API, заполненным модулями на этом уровне. [...] Хотите заменить Ethereum на Celestia в качестве уровня доступности данных? конечно! Хотите запустить биткойн в качестве уровня исполнения? почему нет!
Быстро приближающееся обновление Optimism Bedrock приведет к модульности уровня выполнения и системы проверки стека OP, что обеспечит совместимость с будущими доказательствами мошенничества и достоверности.
Вдохновленная этим, Celestia Labs сосредоточилась на дальнейшем продвижении модульности стека OP. Итак, сегодня мы рады объявить о выпуске бета-версии интерфейса Modular Data Availability (DA) OP Stack, первого мода OP Stack Mod от OP Labs, ориентированного на отзывы разработчиков. Этот интерфейс позволяет разработчикам определять уровни DA и наследовать безопасность от любого понравившегося им блокчейна, будь то Ethereum, Celestia или Bitcoin.
Разработчики могут начать экспериментировать уже сегодня с версией стека OP, которая использует Celestia для DA и «оседает» на Ethereum. Caldera скоро выпустит тестовую сеть Taro, которая позволит разработчикам и пользователям опробовать первую общедоступную тестовую сеть OP Stack с использованием Modular DA.
Уровень доступности данных является основой архитектуры объединения, обеспечивая доступность данных, необходимых для независимой проверки цепочки объединения. Ниже мы рассмотрим основы доступности данных в стеке OP и то, как мы его модулируем для публикации и извлечения данных из L1 с четко определенными интерфейсами DA.
Доступность данных в стеке OP: сегодня
Как OP Stack справляется с сегодняшней доступностью данных? Для наших целей мы углубились в два основных компонента, узел Rollup и Batcher, как описано ниже.
Для более полного понимания того, как остальная часть стека OP работает за кулисами, ознакомьтесь с документацией Optimism.
Узел свертки
Узлы свертки — это компоненты, отвечающие за разветвление правильной цепочки L2 из блоков L1 (и связанных с ними квитанций). Узел свертки извлекает блоки L1, фильтрует транзакции данных (обычно в форме данных вызова транзакций) и создает правильную цепочку L2 из этих данных.
Batcher - отправитель пакетов
Пакетные отправители, также известные как пакетные процессоры, представляют собой объекты, которые отправляют данные сортировщика L2 в L1 для использования валидаторами. И узел свертки, и дозатор работают в цикле, так что вновь отправленные данные блока L2 пакетером извлекаются из L1 узлом свертки и используются для получения следующего блока L2.
Каждая транзакция, отправленная пакетной программой, содержит данные вызова, которые представляют собой данные секвенсора L2, разделенные на байты, называемые кадрами, что является самым низким уровнем абстракции данных в Optimism.
Модульный интерфейс DA для стека операционных систем
При создании модульного интерфейса DA для стека OP наша цель была проста: дать возможность разработчикам агрегации указать любую цепочку блоков в качестве своего уровня доступности данных, будь то Ethereum, Celestia или Bitcoin. При отсутствии такого интерфейса каждая интеграция нового уровня DA может потребовать от разработчиков реализации и поддержки отдельной ветви стека OP.
Стек OP уже включает абстракции, определяющие L1;Chain и L;2C;hain в кодовой базе, что позволяет нам моделировать новый независимый от блокчейна интерфейс для цепочек доступности данных, который мы называем DAChain.
Используя описанный ниже интерфейс, разработчики могут реализовать DAChain для чтения и записи данных из любой базовой цепочки блоков или даже из централизованного бэкэнда, такого как S;3.
Стадия написания
Следующий пример написания реализации интерфейса Celestia описывает интеграцию с пакетной программой:
SimpleTxManager.send, функция, отвечающая за создание и отправку фактической транзакции, изменена, чтобы вызывать WriteFrame для записи кадра в Celestia и возврата ссылки.
Затем ссылка отправляется в качестве данных вызова на адрес почтового ящика пакета вместо обычных данных кадра.
Фаза чтения
Вот обзор реализации Celestia интерфейса, который интегрируется с узлом свертки:
DataFromEVMTransactions — функция, отвечающая за возврат данных кадра из списка транзакций. Он изменен, чтобы использовать ссылку на кадр, полученную из данных вызова пакетных входящих сообщений, для фактического извлечения кадра и добавления его к возвращаемым данным.
Обратите внимание, что вызов NamespacedData возвращает массив байтовых срезов всех больших двоичных объектов, отправленных с заданной высотой блока, поэтому мы возвращаем только интересующий нас TxIndex.
Интеграция Celestia в качестве слоя DA
Диаграмма, показывающая архитектуру стека OP по сравнению с интеграцией стека Celestia + OP.
С некоторыми незначительными изменениями в узле Rollup и пакетной программе мы можем заставить стек OP использовать Celestia для DA.
Это означает, что все данные, необходимые для разветвления цепочки L2, могут быть доступны в Celestia в виде локальных данных BLOB-объектов, а не публиковаться в Ethereum, хотя небольшая ссылка на кадр фиксированного размера по-прежнему публикуется в Ethereum в виде данных вызова пакетной программы. Ссылка на кадр используется для поиска соответствующего кадра в Celestia с помощью узла ;celestia-node; light.
Как интегрировать и работать?
Стадия написания
Как упоминалось выше, пакетная программа отправляет данные секвенсора L2 в виде байтов, называемых кадрами, на адрес контракта пакетной папки «Входящие» на Ethereum L1.
Мы сохраняем транзакции дозатора и данных вызова, чтобы гарантировать порядок кадров, но заменяем кадры в данных вызова ссылками на кадры фиксированного размера. Что такое система отсчета? Это ссылка на транзакцию данных Celestia, которая успешно включила данные кадра как часть Celestia.
Мы делаем это, встраивая световой узел celestia-node в пакетный сервис. Всякий раз, когда есть новый пакет, ожидающий отправки, мы сначала отправляем транзакцию данных в Celestia, используя легкие узлы, а затем отправляем только ссылки на фреймы в batchercalldata.
Фаза чтения
На этапе чтения мы делаем обратное, т. е. используем ссылку на кадр в данных вызова пакетной транзакции, чтобы проанализировать его и получить соответствующие фактические данные кадра из Celestia. Точно так же мы встраиваем легкий узел celestia-node в узел свертки для запроса его транзакций.
При разветвлении цепочки L2 узлы объединения теперь прозрачно считывают данные с легких узлов и могут продолжать создавать новые блоки. Легкие узлы загружают только данные, представленные накопительным пакетом, вместо того, чтобы загружать всю цепочку, как Ethereum.
Внешний вид
Доказательства мошенничества являются ключевой частью дорожной карты Bedrock после оптимизма, и мы хотим изучить возможность обновления нашей интеграции OP Stack x Celestia для использования доказательств мошенничества в основной сети Ethereum.
Для этого мы можем использовать Quantum Gravity Bridge (QGB), который передает доказательства DA между цепями в Ethereum, чтобы обеспечить внутрисетевую проверку того, что агрегированные данные доступны в Celestia, чтобы агрегированные данные можно было использовать в доказательствах мошенничества. Это позволит OP Stack Rollup напрямую использовать гарантию DA, предоставляемую Celestia.
Посмотреть Оригинал
Содержание носит исключительно справочный характер и не является предложением или офертой. Консультации по инвестициям, налогообложению или юридическим вопросам не предоставляются. Более подробную информацию о рисках см. в разделе «Дисклеймер».
Анализ доступности модульных данных для OP-стеков в Celestia
Первоначальный автор: Джавед Хан, блог celestia
Составление оригинального текста: Лу Цзю Линь
Введение
С момента своего выпуска в прошлом году стек OP завоевал значительную популярность среди разработчиков накопительных пакетов. Его используют разработчики, создающие новые накопительные пакеты, и поставщики модульной инфраструктуры, такие как Caldera и Conduit, что позволяет разработчикам быстро развертывать собственные накопительные пакеты.
Как было сказано в прошлогоднем объявлении, модульность является фундаментальным аспектом концепции OP Stack:
Быстро приближающееся обновление Optimism Bedrock приведет к модульности уровня выполнения и системы проверки стека OP, что обеспечит совместимость с будущими доказательствами мошенничества и достоверности.
Вдохновленная этим, Celestia Labs сосредоточилась на дальнейшем продвижении модульности стека OP. Итак, сегодня мы рады объявить о выпуске бета-версии интерфейса Modular Data Availability (DA) OP Stack, первого мода OP Stack Mod от OP Labs, ориентированного на отзывы разработчиков. Этот интерфейс позволяет разработчикам определять уровни DA и наследовать безопасность от любого понравившегося им блокчейна, будь то Ethereum, Celestia или Bitcoin.
Разработчики могут начать экспериментировать уже сегодня с версией стека OP, которая использует Celestia для DA и «оседает» на Ethereum. Caldera скоро выпустит тестовую сеть Taro, которая позволит разработчикам и пользователям опробовать первую общедоступную тестовую сеть OP Stack с использованием Modular DA.
Уровень доступности данных является основой архитектуры объединения, обеспечивая доступность данных, необходимых для независимой проверки цепочки объединения. Ниже мы рассмотрим основы доступности данных в стеке OP и то, как мы его модулируем для публикации и извлечения данных из L1 с четко определенными интерфейсами DA.
Доступность данных в стеке OP: сегодня
Как OP Stack справляется с сегодняшней доступностью данных? Для наших целей мы углубились в два основных компонента, узел Rollup и Batcher, как описано ниже.
Для более полного понимания того, как остальная часть стека OP работает за кулисами, ознакомьтесь с документацией Optimism.
Узел свертки
Узлы свертки — это компоненты, отвечающие за разветвление правильной цепочки L2 из блоков L1 (и связанных с ними квитанций). Узел свертки извлекает блоки L1, фильтрует транзакции данных (обычно в форме данных вызова транзакций) и создает правильную цепочку L2 из этих данных.
Batcher - отправитель пакетов
Пакетные отправители, также известные как пакетные процессоры, представляют собой объекты, которые отправляют данные сортировщика L2 в L1 для использования валидаторами. И узел свертки, и дозатор работают в цикле, так что вновь отправленные данные блока L2 пакетером извлекаются из L1 узлом свертки и используются для получения следующего блока L2.
Каждая транзакция, отправленная пакетной программой, содержит данные вызова, которые представляют собой данные секвенсора L2, разделенные на байты, называемые кадрами, что является самым низким уровнем абстракции данных в Optimism.
Модульный интерфейс DA для стека операционных систем
При создании модульного интерфейса DA для стека OP наша цель была проста: дать возможность разработчикам агрегации указать любую цепочку блоков в качестве своего уровня доступности данных, будь то Ethereum, Celestia или Bitcoin. При отсутствии такого интерфейса каждая интеграция нового уровня DA может потребовать от разработчиков реализации и поддержки отдельной ветви стека OP.
Стек OP уже включает абстракции, определяющие L1;Chain и L;2C;hain в кодовой базе, что позволяет нам моделировать новый независимый от блокчейна интерфейс для цепочек доступности данных, который мы называем DAChain.
Используя описанный ниже интерфейс, разработчики могут реализовать DAChain для чтения и записи данных из любой базовой цепочки блоков или даже из централизованного бэкэнда, такого как S;3.
Стадия написания
Следующий пример написания реализации интерфейса Celestia описывает интеграцию с пакетной программой:
SimpleTxManager.send, функция, отвечающая за создание и отправку фактической транзакции, изменена, чтобы вызывать WriteFrame для записи кадра в Celestia и возврата ссылки.
Затем ссылка отправляется в качестве данных вызова на адрес почтового ящика пакета вместо обычных данных кадра.
Фаза чтения
Вот обзор реализации Celestia интерфейса, который интегрируется с узлом свертки:
DataFromEVMTransactions — функция, отвечающая за возврат данных кадра из списка транзакций. Он изменен, чтобы использовать ссылку на кадр, полученную из данных вызова пакетных входящих сообщений, для фактического извлечения кадра и добавления его к возвращаемым данным.
Обратите внимание, что вызов NamespacedData возвращает массив байтовых срезов всех больших двоичных объектов, отправленных с заданной высотой блока, поэтому мы возвращаем только интересующий нас TxIndex.
Интеграция Celestia в качестве слоя DA
Диаграмма, показывающая архитектуру стека OP по сравнению с интеграцией стека Celestia + OP.
С некоторыми незначительными изменениями в узле Rollup и пакетной программе мы можем заставить стек OP использовать Celestia для DA.
Это означает, что все данные, необходимые для разветвления цепочки L2, могут быть доступны в Celestia в виде локальных данных BLOB-объектов, а не публиковаться в Ethereum, хотя небольшая ссылка на кадр фиксированного размера по-прежнему публикуется в Ethereum в виде данных вызова пакетной программы. Ссылка на кадр используется для поиска соответствующего кадра в Celestia с помощью узла ;celestia-node; light.
Как интегрировать и работать?
Стадия написания
Как упоминалось выше, пакетная программа отправляет данные секвенсора L2 в виде байтов, называемых кадрами, на адрес контракта пакетной папки «Входящие» на Ethereum L1.
Мы сохраняем транзакции дозатора и данных вызова, чтобы гарантировать порядок кадров, но заменяем кадры в данных вызова ссылками на кадры фиксированного размера. Что такое система отсчета? Это ссылка на транзакцию данных Celestia, которая успешно включила данные кадра как часть Celestia.
Мы делаем это, встраивая световой узел celestia-node в пакетный сервис. Всякий раз, когда есть новый пакет, ожидающий отправки, мы сначала отправляем транзакцию данных в Celestia, используя легкие узлы, а затем отправляем только ссылки на фреймы в batchercalldata.
Фаза чтения
На этапе чтения мы делаем обратное, т. е. используем ссылку на кадр в данных вызова пакетной транзакции, чтобы проанализировать его и получить соответствующие фактические данные кадра из Celestia. Точно так же мы встраиваем легкий узел celestia-node в узел свертки для запроса его транзакций.
При разветвлении цепочки L2 узлы объединения теперь прозрачно считывают данные с легких узлов и могут продолжать создавать новые блоки. Легкие узлы загружают только данные, представленные накопительным пакетом, вместо того, чтобы загружать всю цепочку, как Ethereum.
Внешний вид
Доказательства мошенничества являются ключевой частью дорожной карты Bedrock после оптимизма, и мы хотим изучить возможность обновления нашей интеграции OP Stack x Celestia для использования доказательств мошенничества в основной сети Ethereum.
Для этого мы можем использовать Quantum Gravity Bridge (QGB), который передает доказательства DA между цепями в Ethereum, чтобы обеспечить внутрисетевую проверку того, что агрегированные данные доступны в Celestia, чтобы агрегированные данные можно было использовать в доказательствах мошенничества. Это позволит OP Stack Rollup напрямую использовать гарантию DA, предоставляемую Celestia.