Nimbus: Camada de Execução

Nimbus: Camada de Execução

É um segredo pouco conhecido que, além de nosso cliente da camada de consenso (eth2), estamos construindo um cliente da camada de execução (eth1) - com o objetivo de que esteja pronto para o merge.

Por que isso é importante? Um dos principais motivos atuais é a diversidade de clientes.

Para simplificar, quanto mais clientes funcionais e de desempenho tivermos em ambas as camadas (consenso + execução), melhor e mais resiliente o Ethereum poderá ser.

Embora a diversidade de clientes seja crucial para um Ethereum resiliente, por si só não justificaria um esforço de engenharia tão grande de nossa parte.

Nossa visão de alto nível, e o principal motivo pelo qual estamos desenvolvendo nosso próprio cliente de camada de execução, é para uma integração fácil e contínua com o Status - desktop e móvel.

Tal integração requer um cliente Ethereum customizado, "embutível" e ultraeficiente - tanto em ambientes de execução como de camada de consenso.

Relacionamento com o Fluffy

Para alcançar o acima exposto, é necessário otimizar o consumo de recursos de maneiras novas. Na camada de execução, pretendemos oferecer uma combinação única de menor uso de espaço e sincronização mais rápida.

Nosso método de sincronização, que chamamos de sincronização beam-ish, permitirá que os nós participem da rede antecipadamente, enquanto a sincronização de dados continua em segundo plano - este comportamento é semelhante ao Fluffy (nosso cliente leve de Rede do Portal) e nosso trabalho lá será reutilizado aqui - a ideia é que eventualmente iremos integrar o Fluffy em nosso cliente de execução.

Além de integrar o Fluffy, um de nossos principais objetivos de design é facilitar ao máximo que nossos clientes de consenso e execução sejam agrupados em um único software; isso vai melhorar drasticamente a UX da execução de um cliente pós-merge, tornando-o muito semelhante à execução de um cliente PoW (proof-of-work) pré-merge atualmente.

Isso está vinculado à nossa visão abrangente: diminuir significativamente a barreira para executar nós completos e clientes leves e, ao fazer isso, ajudar a tornar o Ethereum o mais acessível e descentralizado possível.

Progresso Recente

Alguns destaques dos últimos 6 meses incluem:

  • A equipe expandiu significativamente: conheça Jamie e Jordan
  • Financiamento renovado da EF para acelerar o desenvolvimento
  • Compatibilidade do fork Berlin e London concluída (EIP-1559): agora passamos em quase todo o conjunto de testes EF Hive e 100% dos testes de execução de contrato (47.951 testes)
  • Novas APIs GraphQL e WebSocket, complementando JSON-RPC
  • Compatibilidade EVMC, com suporte a plug-ins EVM otimizados de terceiros. Até 100x de economia de memória durante a execução do contrato. EVM assíncrono para executar muitos contratos em paralelo (enquanto esperam pelos dados da rede)
  • Validação de proof-of-authority para a rede de teste Goerli. Protocolos de rede atualizados para funcionar com os protocolos mais recentes eth/65-66 e snap/1
  • Um protótipo de novo mecanismo para sincronização de estado que combina o que foi chamado de Sincronização Rápida, sincronização Snap e sincronização Beam de forma autoajustável e que permite ao usuário participar da rede (ler contas, executar transações etc.) enquanto a sincronização ainda está em progresso
  • Um pool de transações de trabalho
Wahay! Posso confirmar que não houve outros problemas (de consenso, de rede) sincronizados com o bloco principal do Goerli e posso finalmente responder à pergunta: "O que acontecerá se você simplesmente executar nimbus --goerli hoje?"

Ainda em Progresso

Embora tenhamos feito um progresso significativo em muitas frentes, ainda temos muito trabalho pela frente na preparação para o merge. Do jeito que está, estamos atualmente trabalhando em:

  • Um redesenho significativo do banco de dados de armazenamento para usar menos espaço em disco e funcionar mais rápido
  • A capacidade de postar uma transação por conta própria
  • Implementação do EIP-3675 (também conhecido como O Merge)

Mantenha-se Atualizado

O plano para este mês é participar dos devnets do merge - um por semana - antes do testnet mais persistente planejado para a primeira semana de dezembro. Estamos trabalhando o máximo que podemos para tentar ter nosso cliente da camada de execução pronto a tempo. Nosso objetivo imediato, entretanto, é passar os marcos da interoperabilidade do merge em testes locais.


Se você tiver alguma dúvida ou quiser se manter atualizado sobre nosso progresso, por favor, junte-se ao nosso discord e/ou cadastre-se para receber nossa newsletter.