Актуальные темы
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
В последние несколько недель я не делился многими обновлениями о @ethrex_client, нашем @class_lambda @ethereum L1 клиенте выполнения и ZK L2 стеке.
Пожалуйста, следите за @ethrex_client, чтобы узнать больше обо всем, что мы делаем.
В L1 мы уже успешно запускаем тестовые сети Ethereum, а в L2 мы запускаем тестовые сети для приложений идентификации и DeFi, которые мы создаем для и с партнерами. Я искренне верю, что мы близки к тому, чтобы иметь самый простой код и стек для поддержки, обновления и модификации в Ethereum. Мы не смогли бы достичь этой точки без проверки кода @NethermindEth и @go_ethereum.
С моими партнерами @rj_aligned, @fran_aligned из @alignedlayer и @SantiDiPaolo, @AguuMg из @PolFinance_ мы собираемся выпустить один из первых белых книг о RWA L2, который будет поддерживаться Ethrex и @alignedlayer. У нас есть много других, но я особенно взволнован этим, так как он свяжет очень интересный случай использования из TradFi и DeFi. У нас в качестве советников и партнеров некоторые из самых сильных команд в отрасли. Я с нетерпением жду возможности поделиться больше информацией об этом проекте.
Обновления
L1
Мы работали на многих фронтах. Мы улучшили наблюдаемость с помощью Grafana, удалили неиспользуемые функции, чтобы упростить код и добавили поддержку для `engine_getBlobsV1` конечной точки.
Changelog:
feat(l1): `engine_getBlobsV1` конечная точка запроса (#3636)
chore(l1): удалить поддержку redb (#4103)
refactor(l1): удалить ненужные usizes из blockchain crate (#4110)
fix(l1): удалить ненужное клонирование состояния (#4117)
fix(l1): использовать правильный образ docker для запуска локальных сетей. (#4131)
chore(l1): добавить время блока на график Grafana. (#4112)
fix(l1): вычесть время чтения БД из выполнения блока. (#4051)
chore(l1): улучшения метрик. (#4118)
chore(levm): улучшить организацию нового тестового запуска levm (#3958)
L2
В соответствии с нашим минималистским подходом мы удалили значительное количество кода из неиспользуемых L2 баз данных. Мы продолжаем упрощать код и устранять мертвый код. Кроме того, CI был стабилизирован после исправления ошибки, связанной с ценами на газ.
Мы проводим бенчмаркинг L2 по двум направлениям:
- Стоимость обслуживания сети L2: Мы настраиваем параметры L2, моделируя различные сценарии с различными рабочими нагрузками транзакций и конфигурациями сети. Цель состоит в том, чтобы определить приблизительную стоимость комиссии за обслуживание на транзакцию, которую пользователи должны нести, чтобы сеть достигла самодостаточности.
- Бенчмарки генерации изолированных доказательств выполнения блока: Используя инструмент ethrex-replay, мы доказываем блоки из Hoodi, Sepolia и Mainnet, чтобы выявить потенциальные ошибки в коде и измерить производительность нашего провайдера.
Сторона ethrex-replay, инструмент достаточно стабилен, и у нас есть инфраструктура, настроенная для периодического воспроизведения выполнения блоков и доказательств публичных сетей. Мы сейчас занимаемся исправлением ошибок, которые возникли во время этих запусков. Некоторые ошибки возникли из-за логических ошибок в ethrex, в то время как другие связаны с использованием памяти. Первые в основном решены, и мы добиваемся значительного прогресса по последним.
Мы также начали рассматривать @ziskvm и @0xLita ZKVM для потенциальной краткосрочной интеграции. Мы уже поддерживаем @RiscZero и @SuccinctLabs.
На этой неделе мы объединили PR, который стабилизирует ethrex-replay, что позволяет нам выявить и устранить две ошибки в ethrex. Эти исправления также были объединены. Первая ошибка касалась крайнего случая в нашем ecrecover precompile, где конкретный ввод вызывал сбой выполнения из-за несоответствия газа. После тщательного расследования мы проследили проблему до официальной библиотеки secp256k1 с патчем SP1. Мы решили ее, перейдя на библиотеку k256 с патчем SP1. Вторая ошибка возникла из-за неправильного предположения о длине бита типа usize в части кодовой базы. Чтобы предотвратить подобные проблемы, мы провели всесторонний обзор кодовой базы и представили несколько PR, чтобы ограничить использование usize двумя конкретными случаями: индексированием и сценариями, ограниченными API или библиотекой. Кроме того, мы добавляем поддержку для запуска тестовых наборов EF, включая тесты блокчейна и состояния, с SP1, чтобы улучшить наше покрытие тестами и обеспечить надежность в различных сценариях выполнения.
С этими исправлениями ошибки больше не возникают. Мы успешно воспроизводим новые блоки Hoodi и Sepolia, а выполнение блоков Mainnet значительно улучшилось, с уровнем успеха выполнения SP1, увеличившимся с 1/10 до 6/10. Этот прогресс открывает путь для решения наших оставшихся проблем с недавними воспроизведениями блоков: ошибки недостатка памяти во время выполнения блока в SP1 zkVM и проблемы с производительностью в выполнении и доказательстве. Чтобы решить эти проблемы, мы настроили crate инструмента для профилирования памяти с использованием crate Jemalloc.
Мы также работаем над поддержкой воспроизведения исторических блоков. MVP для этой функции находится в черновом PR и хорошо работает с клиентами ethrex, reth и geth, но сталкивается с проблемами с клиентами nethermind. Прежде чем выпустить первую версию, мы стремимся оптимизировать RPC-запросы, чтобы обеспечить точные загрузки данных блоков, даже при использовании бесплатных RPC-поставщиков, для большинства блоков.
Улучшения DevEx:
- Мы исправили наши бинарные сборки, чтобы больше не требовать CUDA в качестве зависимости по умолчанию на определенных операционных системах и архитектурах. Это исправление включено в последний релиз.
- PR был представлен для обновления версии ethrex в rex, чтобы обеспечить совместимость с последними изменениями в ethrex L2.
- Мы начали разрабатывать новую вкладку для монитора ethrex L2 в средах разработки. Эта вкладка будет отображать информацию, относящуюся к разработчикам, такую как список богатых аккаунтов и адреса контрактов L1 и L2.
Changelog:
- refactor(l2): заменены константы разницы состояния usize.
- feature(l1,l2): настроен ethrex-replay для профилирования памяти.
- refactor(l1): удалено ненужное использование usize в blockchain crate (связано с исправлением ошибки).
- feature(l1,l2): добавлены новые команды к свидетельству выполнения.
- fix(levm): решены проблемы, связанные с 32-битной архитектурой (связано с исправлением ошибки).
- refactor(levm): обновлена реализация ecrecover для использования k256 вместо secp256k1 (связано с исправлением ошибки).
- ci(l1,l2): разделены сборки GPU и принят целевой x86-64-v2.
Производительность
На этой неделе мы продолжили сосредоточение на потреблении CPU и бенчмарках.
Что касается потребления CPU, мы выявили 2 различных случая, один из которых связан со строительством блока, а другой - нет. Мы приоритизируем те, где нет строительства блока, поскольку они присутствуют всегда и влияют на другие усилия (например, snap sync). Насколько мы исследовали, это полностью связано с p2p. Мы продолжим наши усилия в этом направлении.
Что касается бенчмарков, после нашего последнего улучшения производительности modexp мы сосредоточились на некоторых выявленных улучшениях, таких как codecopy и связанные операции, а также signextend, mulmod и addmod.
Мы продолжим сосредоточение как на потреблении CPU, так и на производительности тестов, которые мы определили как следующие шаги для возможных улучшений, таких как переводы eth и другие операции levm.

10,98K
Топ
Рейтинг
Избранное