Tópicos populares
#
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.
Nas últimas semanas, não compartilhei muitas atualizações sobre @ethrex_client, nosso cliente de execução L1 @class_lambda @ethereum e a pilha ZK L2.
Por favor, siga @ethrex_client para saber mais sobre tudo o que estamos fazendo.
No L1, já estamos executando com sucesso testnets do Ethereum e no L2 estamos rodando testnets para as aplicações de identidade e DeFi que estamos construindo para e com parceiros. Acredito honestamente que estamos perto de ter a base de código e a pilha mais simples para manter, atualizar e modificar no Ethereum. Não teríamos conseguido chegar a este ponto sem verificar o código do @NethermindEth e do @go_ethereum.
Com meus parceiros @rj_aligned, @fran_aligned do @alignedlayer e @SantiDiPaolo, @AguuMg do @PolFinance_, estamos prestes a lançar um dos primeiros whitepapers sobre um RWA L2 que será alimentado pelo Ethrex e @alignedlayer. Temos muitos mais a caminho, mas estou particularmente animado com este, pois irá conectar um caso de uso muito interessante entre TradFi e DeFi. Temos como conselheiros e parceiros algumas das equipes mais fortes da indústria. Estou ansioso para compartilhar mais sobre este projeto.
Atualizações
L1
Estamos trabalhando em muitas frentes. Melhoramos a observabilidade com o Grafana, removemos recursos não utilizados para simplificar a base de código e adicionamos suporte para o endpoint `engine_getBlobsV1`.
Changelog:
feat(l1): endpoint de requisição `engine_getBlobsV1` (#3636)
chore(l1): remover suporte ao redb (#4103)
refactor(l1): remover usizes desnecessários do crate blockchain (#4110)
fix(l1): remover clone de estado desnecessário (#4117)
fix(l1): usar imagem docker apropriada para iniciar localnets. (#4131)
chore(l1): adicionar tempo de bloco ao dashboard do grafana. (#4112)
fix(l1): subtrair tempos de leitura do DB da execução do bloco. (#4051)
chore(l1): melhorias nas métricas. (#4118)
chore(levm): melhorar a organização do novo test runner do levm (#3958)
L2
Em linha com nossa abordagem minimalista, removemos uma quantidade significativa de código de bancos de dados L2 não utilizados. Continuamos a simplificar a base de código e eliminar código morto. Além disso, o CI foi estabilizado após corrigir um bug relacionado aos preços do gás.
Estamos avaliando o L2 em duas frentes:
- Custo de manutenção da rede L2: Estamos ajustando os parâmetros do L2 simulando vários cenários com diferentes cargas de transação e configurações de rede. O objetivo é determinar o custo aproximado da comissão de manutenção por transação que os usuários devem suportar para que a rede alcance a autossustentação.
- Benchmarks de geração de prova de execução de bloco isolado: Usando a ferramenta ethrex-replay, estamos provando blocos de Hoodi, Sepolia e Mainnet para identificar possíveis bugs na base de código e medir o desempenho do nosso provador.
Do lado do ethrex-replay, a ferramenta está estável o suficiente, e temos infraestrutura configurada para reproduzir periodicamente as execuções de blocos e provas de redes públicas. Agora estamos abordando bugs que surgiram durante essas execuções. Alguns bugs decorrem de erros lógicos no ethrex, enquanto outros estão relacionados ao uso de memória. Os primeiros estão em sua maioria resolvidos, e estamos fazendo progressos significativos nos últimos.
Também começamos a olhar para @ziskvm e @0xLita ZKVMs para uma possível integração de curto prazo. Já suportamos @RiscZero e @SuccinctLabs.
Esta semana, mesclamos um PR que estabiliza o ethrex-replay, permitindo-nos identificar e resolver dois bugs no ethrex. Essas correções também foram mescladas. O primeiro bug envolveu um caso extremo em nosso precompile ecrecover, onde uma entrada específica causou a falha da execução devido a um desajuste de gás. Após uma investigação minuciosa, rastreamos o problema para a biblioteca secp256k1 oficial com patch SP1. Resolvemos isso migrando para a biblioteca k256 com patch SP1. O segundo bug decorreu de uma suposição incorreta sobre o comprimento em bits de um tipo usize em parte da base de código. Para evitar problemas semelhantes, realizamos uma revisão abrangente da base de código e submetemos vários PRs para restringir o uso de usize a dois casos específicos: indexação e cenários limitados por uma API ou biblioteca. Além disso, estamos adicionando suporte para executar as suítes de teste da EF, incluindo testes de blockchain e de estado, com SP1 para aumentar nossa cobertura de testes e garantir robustez em diferentes cenários de execução.
Com esses bugs resolvidos, os problemas não ocorrem mais. Estamos reproduzindo com sucesso novos blocos de Hoodi e Sepolia, e as execuções de blocos da Mainnet melhoraram significativamente, com a taxa de sucesso de execução do SP1 subindo de 1/10 para 6/10. Esse progresso abre caminho para enfrentar nossos desafios restantes com as reproduções de blocos recentes: erros de falta de memória durante a execução de blocos no zkVM SP1 e problemas de desempenho na execução e prova. Para resolver isso, configuramos o crate da ferramenta para perfilamento de memória usando o crate Jemalloc.
Estamos também trabalhando no suporte à reprodução de blocos históricos. Um MVP para esse recurso está em um PR rascunho e funciona bem com os clientes ethrex, reth e geth, mas encontra problemas com os clientes nethermind. Antes de lançar a primeira versão, pretendemos otimizar as requisições RPC para garantir downloads precisos de dados de blocos, mesmo ao usar provedores RPC gratuitos, para a maioria dos blocos.
Melhorias no DevEx:
- Corrigimos nossas compilações binárias para não requerer mais CUDA como uma dependência padrão em certos sistemas operacionais e arquiteturas. Essa correção está incluída na última versão.
- Um PR foi submetido para atualizar a versão do ethrex no rex, garantindo compatibilidade com as últimas mudanças no ethrex L2.
- Começamos a desenvolver uma nova aba para o monitor do ethrex L2 em ambientes de desenvolvimento. Esta aba exibirá informações relevantes para desenvolvedores, como uma lista de contas ricas e os endereços dos contratos L1 e L2.
Changelog:
- refactor(l2): substituiu constantes de diferença de estado usize.
- feature(l1,l2): configurou ethrex-replay para perfilamento de memória.
- refactor(l1): removeu uso desnecessário de usize no crate blockchain (relacionado à correção de bug).
- feature(l1,l2): adicionou novos comandos ao testemunho de execução.
- fix(levm): abordou problemas relacionados à arquitetura de 32 bits (relacionado à correção de bug).
- refactor(levm): atualizou a implementação de ecrecover para usar k256 em vez de secp256k1 (relacionado à correção de bug).
- ci(l1,l2): separou compilações de GPU e adotou o alvo x86-64-v2.
Desempenho
Esta semana continuamos nosso foco no consumo de CPU e benchmarks.
Quanto ao consumo de CPU, identificamos 2 casos diferentes, um onde a construção de blocos está presente e outro onde não está. Estamos priorizando aqueles sem construção de blocos, dado que estão sempre presentes e impactam outros esforços (como sincronização instantânea). Até onde investigamos, isso está completamente relacionado ao p2p. Continuaremos nossos esforços nessa frente.
Com relação aos benchmarks, após nossa melhoria na performance do modexp na semana passada, focamos em algumas melhorias detectadas, como codecopy e operações relacionadas, bem como signextend, mulmod e addmod.
Continuaremos nosso foco tanto no consumo de CPU quanto no desempenho dos testes que identificamos como próximos passos para possíveis melhorias, como transferências de eth e outros opcodes do levm.

11K
Top
Classificação
Favoritos