Актуальні теми
#
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 L2s, який буде працювати на Ethrex і @alignedlayer. У нас буде ще багато інших, але я особливо радий цьому, оскільки він поєднає дуже цікавий варіант використання від TradFi та DeFi. Ми отримали в якості радників і партнерів одні з найсильніших команд в галузі. Я хочу розповісти більше про цей проект.
Оновлення
Л1
Ми працюємо на багатьох фронтах. Ми покращили спостережливість за допомогою Grafana, видалили функції, які не використовуються, для спрощення кодової бази та додали підтримку кінцевої точки engine_getBlobsV1.
Список змін:
feat(l1): кінцева точка запиту 'engine_getBlobsV1' (#3636)
Chore(L1): Видалити підтримку Redb (#4103)
refactor(L1): видаліть зайві UISIZE з ящика блокчейну (#4110)
Fix(L1): Видалено клон непотрібного стану (#4117)
Fix(L1): Використовуйте належний образ Docker для розкручування локальних мереж. (#4131)
Chore(L1): Додано час блоку до панелі керування Grafana. (#4112)
fix(l1): відняти час читання БД від виконання блоку. (#4051)
Chore(L1): Покращення показників. (#4118)
Chore(LEVM): Покращено організацію нового тестового бігуна LEVM (#3958)
Л2
Відповідно до нашого мінімалістичного підходу, ми видалили значну кількість коду з невикористовуваних баз даних L2. Ми продовжуємо спрощувати кодову базу та усувати мертвий код. Крім того, КІ вдалося стабілізувати після виправлення помилки, пов'язаної з цінами на газ.
Ми проводимо порівняльний аналіз L2 за двома напрямками:
- Вартість обслуговування мережі L2: Ми точно налаштовуємо параметри L2, моделюючи різні сценарії з різними робочими навантаженнями транзакцій і конфігураціями мережі. Мета полягає у визначенні приблизної вартості комісії за технічне обслуговування за транзакцію, яку користувачі повинні нести, щоб мережа досягла самоокупності.
- Тести генерації ізольованих блоків доказу виконання: Використовуючи інструмент ethrex-replay, ми перевіряємо блоки з Hoodi, Sepolia та Mainnet, щоб виявити потенційні помилки в кодовій базі та виміряти продуктивність нашого доказу.
Що стосується ethrex-replay, інструмент досить стабільний, і у нас є інфраструктура, налаштована на періодичне повторне відтворення виконання блоків і доказів публічних мереж. Зараз ми усуваємо помилки, які виникали під час цих запусків. Деякі баги виникають через логічні помилки в ethrex, тоді як інші пов'язані з використанням пам'яті. Перші в основному вирішені, і в другому ми досягаємо значного прогресу.
Ми також почали розглядати @ziskvm та @0xLita ZKVM для потенційної короткострокової інтеграції. Ми вже підтримуємо @RiscZero та @SuccinctLabs.
Цього тижня ми об'єднали PR, який стабілізує ethrex-replay, дозволивши нам виявити та усунути дві помилки в ethrex. Ці виправлення також були об'єднані. Перша помилка стосувалася реберного випадку в нашій прекомпіляції ecrecover, де конкретний вхід спричиняв збій виконання через невідповідність газу. Після ретельного розслідування ми відстежили проблему в офіційній бібліотеці secp256k1 з виправленням SP1. Ми вирішили цю проблему, перейшовши на бібліотеку k256 з патчем SP1. Друга помилка виникла через неправильне припущення про довжину біта типу usize у частині кодової бази. Щоб запобігти подібним проблемам, ми провели всебічний огляд кодової бази та представили кілька PR, щоб обмежити використання використання двома конкретними випадками: індексація та сценарії, обмежені API або бібліотекою. Крім того, ми додаємо підтримку для запуску наборів тестів EF, включаючи блокчейн і державні тести, з пакетом оновлень 1, щоб розширити охоплення тестування та забезпечити надійність у різних сценаріях виконання.
Після усунення цих помилок проблеми більше не виникають. Ми успішно відтворюємо нові блоки Hoodi та Sepolia, а виконання блоків основної мережі значно покращилося, а успішність виконання SP1 зросла з 1/10 до 6/10. Цей прогрес розчищає шлях для вирішення проблем, що залишилися з нещодавніми повторами блоків: помилки без пам'яті під час виконання блоку в SP1 zkVM та проблеми з продуктивністю під час виконання та перевірки. Щоб вирішити цю проблему, ми налаштували ящик інструменту для профілювання пам'яті за допомогою ящика Jemalloc.
Ми також працюємо над підтримкою повторного відтворення історичних блоків. MVP для цієї функції є в чернетці PR і добре працює з клієнтами ethrex, reth і geth, але стикається з проблемами з клієнтами nethermind. Перш ніж випустити першу версію, ми прагнемо оптимізувати RPC-запити, щоб забезпечити точне завантаження даних блоків, навіть при використанні безкоштовних RPC-провайдерів, для більшості блоків.
Покращення DevEx:
- Ми виправили наші двійкові збірки, щоб вони більше не вимагали залежності CUDA за замовчуванням від певних операційних систем та архітектур. Це виправлення включено в останній випуск.
- Було подано запит на оновлення версії ethrex у rex, що забезпечує сумісність з останніми змінами в ethrex L2.
- Ми розпочали розробку нової вкладки для монітора ethrex L2 у середовищах розробки. На цій вкладці відображатиметься інформація, пов'язана з розробником, наприклад, список розширених облікових записів та адреси контрактів L1 та L2.
Список змін:
- refactor(l2): замінено константами різниці в стані usize .
- Reature(L1,L2): налаштований ETREX-Replay для профілювання пам'яті.
- Refactor(L1): Видалено непотрібне використання USIZE у ящику блокчейну (пов'язане з виправленням помилки).
- Feature(L1,L2): Додано нові команди до свідка виконання.
- Fix(LEVM): Вирішено проблеми, пов'язані з 32-бітною архітектурою (пов'язані з виправленням помилок).
- refactor(levm): оновлено реалізацію ecrecover для використання k256 замість secp256k1 (пов'язано з виправленням помилки).
- ci(l1,l2): відокремлені збірки графічних процесорів та прийняті цілі x86-64-v2.
Продуктивність
Цього тижня ми продовжили фокусуватися на споживанні процесора та бенчмарках.
Що стосується споживання процесора, ми виділили 2 різні випадки, в одному з яких присутня побудова блоків, а в іншому – ні. Ми віддаємо перевагу тим, які не мають побудови блоків, враховуючи, що вони завжди присутні та впливають на інші зусилля (наприклад, синхронізацію зі снапом). Наскільки ми досліджували, це повністю пов'язано з p2p. Ми продовжуватимемо наші зусилля на цьому фронті
Що стосується тестів, то після нашого останнього тижня покращення продуктивності modexp ми зосередилися на деяких виявлених покращеннях, таких як кодоскопія та пов'язані операції, а також signextend, mulmod та addmod.
Ми продовжимо зосереджуватися як на споживанні процесора, так і на продуктивності тестів, які ми визначили як наступні кроки для можливих покращень, таких як передача eth та інші коди операцій levm.

11,03K
Найкращі
Рейтинг
Вибране