Subiecte populare
#
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.
În ultimele săptămâni nu am împărtășit multe actualizări despre @ethrex_client, clientul nostru de execuție L1 @class_lambda @ethereum și stiva ZK L2.
Vă rugăm să urmăriți @ethrex_client pentru a afla mai multe despre tot ceea ce facem.
În L1 rulăm deja cu succes rețele de testare Ethereum, iar în L2 rulăm rețele de testare pentru aplicațiile de identitate și DeFi pe care le construim pentru și cu parteneri. Cred sincer că suntem aproape de a avea cea mai simplă bază de cod și stivă de întreținut, actualizat și modificat în Ethereum. Nu am fi putut ajunge în acest punct fără a verifica codul @NethermindEth și @go_ethereum
Împreună cu partenerii mei @rj_aligned, @fran_aligned din @alignedlayer și @SantiDiPaolo, @AguuMg din @PolFinance_ suntem pe cale să lansăm una dintre primele cărți albe despre un RWA L2s care va fi alimentat de Ethrex și @alignedlayer. Avem multe altele, dar sunt deosebit de încântat de acesta, deoarece va face legătura cu un caz de utilizare foarte interesant de la TradFi și DeFi. Am avut ca consilieri și parteneri unele dintre cele mai puternice echipe din industrie. Sunt nerăbdător să împărtășesc mai multe despre acest proiect.
Actualizări
L1
Am lucrat pe multe fronturi. Am îmbunătățit observabilitatea cu Grafana, am eliminat caracteristicile neutilizate pentru a simplifica baza de cod și am adăugat suport pentru punctul final "engine_getBlobsV1".
Jurnalul modificărilor:
feat(l1): punct final de solicitare "engine_getBlobsV1" (#3636)
Corvoadă(L1): Eliminați suportul RedB (#4103)
Refactor(L1): Eliminați usizes inutile din Blockchain Crate (#4110)
FIX(L1): A fost eliminată clona de stare inutilă (#4117)
Fix (L1): Utilizați imaginea docker corectă pentru a porni localnet-urile. (#4131)
Corvoadă (L1): Adăugați timp de blocare la tabloul de bord Grafana. (#4112)
fix(l1): scăderea timpilor de citire a DB din execuția blocului. (#4051)
Corvoadă (L1): îmbunătățiri metrice. (#4118)
Corvoadă (LEVM): Îmbunătățiți organizarea noului alergător de test LEVM (#3958)
L2
În conformitate cu abordarea noastră minimalistă, am eliminat o cantitate semnificativă de cod din bazele de date L2 neutilizate. Continuăm să simplificăm baza de cod și să eliminăm codul mort. În plus, CI a fost stabilizat după remedierea unei erori legate de prețurile gazelor.
Evaluăm L2 pe două fronturi:
- Costul de întreținere a rețelei L2: Ajustăm fin parametrii L2 prin simularea diferitelor scenarii cu diferite sarcini de lucru de tranzacții și configurații de rețea. Scopul este de a determina costul aproximativ al comisionului de întreținere pe tranzacție pe care utilizatorii trebuie să îl suporte pentru ca rețeaua să atingă auto-sustenabilitatea.
- Benchmark-uri izolate de generare a dovezii de execuție a blocurilor: Folosind instrumentul ethrex-replay, dovedim blocuri din Hoodi, Sepolia și Mainnet pentru a identifica potențiale erori în baza de cod și pentru a măsura performanța proberului nostru.
În ceea ce privește ethrex-replay, instrumentul este suficient de stabil și avem o infrastructură configurată pentru a reda periodic execuțiile și dovezile blocurilor rețelelor publice. Acum abordăm bug-urile care au apărut în timpul acestor rulări. Unele erori provin din erori logice în ethrex, în timp ce altele sunt legate de utilizarea memoriei. Primele sunt în mare parte rezolvate, iar noi facem progrese semnificative în ceea ce privește cele din urmă.
De asemenea, am început să ne uităm la @ziskvm și @0xLita ZKVM-uri pentru o potențială integrare pe termen scurt. Susținem deja @RiscZero și @SuccinctLabs.
Săptămâna aceasta, am fuzionat un PR care stabilizează ethrex-replay, permițându-ne să identificăm și să rezolvăm două erori în ethrex. Aceste remedieri au fost, de asemenea, fuzionate. Prima eroare a implicat un caz limită în precompilarea noastră ecrecover, unde o anumită intrare a cauzat eșecul execuției din cauza unei nepotriviri de gaz. După o investigație amănunțită, am urmărit problema până la biblioteca oficială secp256k1 cu patch-uri SP1. Am rezolvat-o prin migrarea la biblioteca k256 cu patch-uri SP1. Al doilea bug a apărut dintr-o presupunere incorectă despre lungimea de biți a unui tip usize într-o parte a bazei de cod. Pentru a preveni probleme similare, am efectuat o revizuire cuprinzătoare a bazei de cod și am trimis mai multe PR-uri pentru a restricționa utilizarea la două cazuri specifice: indexare și scenarii constrânse de un API sau bibliotecă. În plus, adăugăm suport pentru a rula suitele de teste EF, inclusiv blockchain și teste de stat, cu SP1 pentru a îmbunătăți acoperirea testelor și pentru a asigura robustețea în diferite scenarii de execuție.
Odată rezolvate aceste erori, problemele nu mai apar. Reluăm cu succes noi blocuri Hoodi și Sepolia, iar execuțiile blocurilor Mainnet s-au îmbunătățit semnificativ, rata de succes a execuției SP1 crescând de la 1/10 la 6/10. Acest progres deschide calea pentru a aborda provocările rămase cu reluările recente ale blocurilor: erori de memorie insuficientă în timpul execuției blocurilor în SP1 zkVM și probleme de performanță în execuție și demonstrare. Pentru a rezolva aceste probleme, am configurat cutia instrumentului pentru profilarea memoriei folosind lada Jemalloc.
De asemenea, lucrăm la susținerea reluării blocurilor istorice. Un MVP pentru această caracteristică se află într-un PR proiect și funcționează bine cu clienții ethrex, reth și geth, dar întâmpină probleme cu clienții nethermind. Înainte de a lansa prima versiune, ne propunem să optimizăm cererile RPC pentru a asigura descărcări precise de date de bloc, chiar și atunci când folosim furnizori RPC gratuiti, pentru majoritatea blocurilor.
Îmbunătățiri DevEx:
- Am corectat versiunile noastre binare pentru a nu mai necesita CUDA ca o dependență implicită de anumite sisteme de operare și arhitecturi. Această remediere este inclusă în cea mai recentă versiune.
- A fost trimis un PR pentru a actualiza versiunea ethrex în rex, asigurând compatibilitatea cu cele mai recente modificări din ethrex L2.
- Am început să dezvoltăm o nouă filă pentru monitorul ethrex L2 în mediile de dezvoltare. Această filă va afișa informații relevante pentru dezvoltatori, cum ar fi o listă de conturi bogate și adresele contractelor L1 și L2.
Jurnalul modificărilor:
- Refactor(L2): A înlocuit constantele diff de stare Usize.
- Reature(L1,L2): Configurat Ethrex-Replay pentru profilarea memoriei.
- Refactor(L1): A eliminat utilizarea inutilă a Usize în lada blockchain (legată de remedierea erorilor).
- Caracteristică (L1,L2): S-au adăugat noi comenzi la martorul de execuție.
- Fix (LEVM): Am rezolvat probleme legate de arhitectura pe 32 de biți (legate de remedierea erorilor).
- Refactor(LEVM): Actualizare a implementării ecrecover pentru a utiliza K256 în loc de SECP256K1 (legat de remedierea erorilor).
- ci(l1,l2): a separat versiunile GPU și a adoptat ținta x86-64-v2.
Performanță
Săptămâna aceasta ne-am concentrat pe consumul de procesor și pe benchmark-uri.
În ceea ce privește consumul de CPU, am identificat 2 cazuri diferite, unul în care construirea de blocuri este prezentă și altul în care nu este. Acordăm prioritate celor fără blocare, având în vedere că sunt mereu prezente și au impact asupra altor eforturi (cum ar fi sincronizarea snap). Din câte am investigat, este complet legat de p2p. Ne vom continua eforturile pe acest front
În ceea ce privește benchmark-urile, după îmbunătățirea ultimei săptămâni a performanței modexp ne-am concentrat pe unele îmbunătățiri detectate, cum ar fi codecopy și operațiunile conexe, precum și signextend, mulmod și addmod.
Vom continua să ne concentrăm atât pe consumul de CPU, cât și pe performanța testelor pe care le-am identificat ca următori pași pentru posibile îmbunătățiri, cum ar fi transferurile eth și alte coduri de operare levm.

10,37K
Limită superioară
Clasament
Favorite