Pular para o conteúdo
0%

Abrindo o Código-Fonte do Rundler 🦀

Autor: Dan Coombs

Última atualização: 28 de setembro de 20236 min de leitura

Hoje estamos empolgados em anunciar o open source do Rundler (Rust Bundler), uma implementação de bundler ERC-4337 da Alchemy, escrita em Rust. Com o Rundler, buscamos acelerar a transição para smart accounts para alcançar o próximo nível de experiência de usuário em chains EVM. Bundlers são uma peça vital da infraestrutura que viabiliza Account Abstraction. Estamos abrindo o código do Rundler para fomentar uma rede descentralizada e robusta capaz de sustentar essa transição.

O que é o rundler?

Rundler é um bundler ERC-4337 de alta performance, alta confiabilidade e modular.

Muitas palavras?

Vamos detalhar 👇

ERC-4337

ERC-4337 é um padrão para entregar Account Abstraction em todas as chains EVM sem nenhuma mudança no protocolo principal. Ele consegue isso ao depender de infraestrutura off-chain de nível mais alto, como Bundlers. Basicamente, o ERC-4337 permite que desenvolvedores obtenham todos os benefícios de Account Abstraction sem os riscos do desenvolvimento do protocolo principal.

Para entender como o ERC-4337 funciona, confira esta série de 4 partes, "You Could Have Invented Account Abstraction", de David Philipson, engenheiro do time de AA da Alchemy.

Para começar a construir com contas ERC-4337, explore nossos Embedded Accounts de nível enterprise.

Bundler

A peça central off-chain da infraestrutura de nível mais alto mencionada acima é o Bundler. O trabalho de um Bundler é pegar objetos semelhantes a transações (User Operations) submetidos por usuários, agrupá-los em uma única transação EVM e enviar essa transação para a chain. Em troca, ele cobra uma pequena taxa de cada usuário. Enquanto carteiras EOA submetem transações a nós, todas as smart accounts ERC-4337 submetem UserOps a um Bundler.

Diagrama de como um bundler processa user operations (UOs).
Diagrama de como um bundler processa user operations (UOs).

Quais são os objetivos do rundler?

Construímos o Rundler para ajudar o ecossistema a integrar o próximo bilhão de usuários na web3. Acreditamos que Account Abstraction e ERC-4337 são o melhor caminho para tornar cripto acessível a um público mainstream. Para entregar essa experiência mainstream, precisamos de infraestrutura altamente confiável, com experiência de desenvolvedor de primeira linha, design modular e suporte a todas as chains EVM.

1. Crescimento do ecossistema ERC-4337

Ao construir o Rundler, nos envolvemos profundamente com a evolução do padrão ERC-4337, e pretendemos continuar contribuindo nessa frente. Estamos aprendendo muito com nossa experiência de rodar o Rundler em produção, e continuamos compartilhando essas experiências com a comunidade 4337 para ajudar a melhorá-lo.

2. Performance e confiabilidade de primeira linha

Performance e confiabilidade são fundamentais para integrar os tipos de aplicações que trarão um bilhão de usuários para a chain. Essa crença está no centro do Rundler e das APIs associadas da Alchemy, e buscamos continuar empurrando esse limite.

3. Extensibilidade e suporte a chains

Toda chain EVM merece infraestrutura de primeira linha para suportar Account Abstraction. Protocolos lidam com os detalhes complicados de formas diferentes (ex.: uso de gas, precompiles, cadeia de suprimento de transações, etc.). Com o Rundler, esperamos que sua lógica possa ser estendida para suportar a maioria, senão todos, desses casos de uso.

4. Modularidade

Não vamos parar no Rundler. Buscamos que os diferentes componentes da biblioteca Rundler possam ser estendidos e usados para viabilizar novas infraestruturas 4337 e de mempool alternativo.

Vantagens da arquitetura do rundler

Na Alchemy, acreditamos que a transição para smart accounts é necessária para trazer os benefícios da tecnologia da Ethereum para todos. Rundler é um passo crucial para alcançar essa visão.

1. Alta performance

O Rundler é construído para atingir os níveis de performance exigidos pelas cargas de trabalho mais exigentes. Escolhemos Rust como nossa linguagem de programação para ajudar a alcançar isso por meio de seus primitivos de concorrência e abstrações de custo zero. Queremos que o Rundler seja altamente concorrente, escalável horizontalmente e facilmente extensível para atender às demandas de escalabilidade das aplicações de próxima geração.

Recentemente medimos o Rundler processando 7.5M de gas por segundo na Polygon Mainnet (aproximadamente 55 TPS nessa carga de trabalho), e com essa arquitetura podemos processar volumes ainda maiores.

Transações eth_sendUserOperation sustentadas por segundo na Polygon.
Transações eth_sendUserOperation sustentadas por segundo na Polygon.

2. Alta confiabilidade

A arquitetura do Rundler é projetada para atender ao serviço de alta confiabilidade que os usuários esperam. Aproveitando os aprendizados de anos rodando infraestrutura blockchain, construímos o Rundler como uma extensão desse princípio. O Rundler se destaca em ambientes modernos, estilo cloud, onde cada componente pode rodar e escalar de forma independente e onde observabilidade e telemetria são indispensáveis.

3. Modular

O Rundler é construído de forma modular, onde cada componente é modelado como uma biblioteca (ou crate em Rust) e é capaz de rodar independentemente dos outros componentes. Conforme nossas interfaces se estabilizam, esperamos usar esses componentes para viabilizar a próxima iteração de infraestrutura de write-path.

Viabilizando o próximo bilhão de usuários

Estamos rodando o Rundler em produção desde abril, onde ele vem sendo usado para ajudar a viabilizar algumas das aplicações mais promissoras do espaço, incluindo CyberConnect CyberAccounts e Circle Programmable Wallets.

Aqui estão alguns números dos nossos primeiros meses:

  • Mais de 402K UserOps processadas com sucesso on-chain
  • 71% das UserOps foram processadas em um bundle com mais de 1 UO, 4.7x mais que outras implementações de bundler conhecidas
  • Crescimento trimestral de 430% no número de times de desenvolvedores únicos ativos enviando UserOps

Qual é o status do rundler hoje?

O Rundler é usado para viabilizar nossos endpoints de Bundler API. No entanto, ele está em desenvolvimento ativo por um time forte de desenvolvedores na Alchemy. Continuaremos adicionando funcionalidades para permitir que nossos usuários aproveitem ao máximo o poder de Account Abstraction.

Além de ter compatibilidade total com a especificação ERC-4337 e suporte ao contrato Entry Point v0.6, o Rundler tem uma série de funcionalidades interessantes que vale destacar:

Deployments integrados ou distribuídos

O Rundler pode ser executado como um full node em um único processo, onde cada componente se comunica via passagem de mensagens em memória. Alternativamente, esses componentes também podem ser executados em processos independentes, onde se comunicam via gRPC, facilitando escalabilidade horizontal e deployments redundantes.

Estimativa precisa de gas

Desenvolvemos formas inovadoras de estimar os diferentes campos de gas de uma user operation ERC-4337 aproveitando alguns truques inteligentes de smart contract e busca binária.

Tratamento de reorg

Nossa implementação de mempool é resistente a reorganizações de chain. Acompanhamos o progresso da chain, detectamos quando ela sofreu um reorg e devolvemos ao mempool quaisquer User Operations que possam ter sido descartadas da chain, para que se tornem novamente elegíveis para inclusão.

Construção de bundles grandes e confiabilidade de transações

Construímos nosso componente de bundle building para atingir throughput de gas em nível de rede. Ou seja, buscamos saturar completamente qualquer rede com bundles que se aproximam do limite de gas do bloco e que são incluídos em todo bloco.

Mempools alternativos

Estamos experimentando com mempools alternativos ERC-4337 e ajudando a levar essa conversa adiante. Hoje, esses alt-mempools expõem o bundler a certos ataques de mempool, mas esperamos usar essa pesquisa para implementar um alt-mempool seguro no futuro.

Qual é o roadmap do rundler?

Agora que chegamos até aqui, o que vem a seguir? No nosso roadmap imediato, estamos começando a construir mempools alternativos P2P e seguros, suporte ao Entry Point v0.7, agregação de assinaturas e integrações com block builders.

Mempool P2P

O prometido mempool P2P público do ERC-4337 chega neste outono e já estamos construindo o suporte para ele.

Mempools alternativos seguros

Como mencionado acima, estamos buscando iterar sobre nossa abordagem de mempool alternativo para construir uma implementação segura para bundlers.

Entry point v0.7 e suporte a múltiplas versões

O time do ERC-4337 está trabalhando intensamente na próxima iteração do contrato Entry Point, o v0.7. Assim que for lançado, buscaremos suporte rápido mantendo ao mesmo tempo o suporte ao contrato v0.6.

Agregação de assinaturas

Agregação de assinaturas é uma das funcionalidades mais mencionadas do ERC-4337. No entanto, implementá-la de forma que permita aos bundlers manter rentabilidade tem se mostrado desafiador. Estamos olhando mais de perto para isso e esperamos viabilizar os primeiros agregadores de assinaturas práticos.

Integração com block builders

Em nossa tentativa de processar altas taxas de User Operations on-chain, encontramos problemas que só serão agravados com a introdução do mempool P2P (mais sobre isso em outra oportunidade). Esses problemas são bastante reduzidos se/quando block builders integrarem o bundling diretamente em seu processo.

Como contribuir com o rundler

Esperamos que, ao abrir o código do Rundler, possamos continuar estimulando a inovação no espaço. Usuários podem explorar a lógica que viabiliza suas User Operations, e contribuidores podem adicionar funcionalidades e corrigir bugs para melhorar e fortalecer o Rundler.

Se você quer contribuir, explore nosso guia de contribuição e entre em contato!

Agradecimentos

Construir o ecossistema ERC-4337 é um esforço de equipe, e não conseguiríamos chegar onde chegamos sem a liderança, orientação e apoio de múltiplos times em todo esse espaço.

Time do ERC-4337

O time do ERC-4337 foi pioneiro no padrão e respondeu inúmeras perguntas durante nosso desenvolvimento. Eles desenvolveram a implementação de referência do bundler e os testes de especificação que foram inestimáveis durante nosso processo de desenvolvimento. Estamos empolgados em continuar trabalhando com esse time para levar o ERC-4337 adiante.

Time do Reth

Um agradecimento especial ao time do Reth, de quem tiramos inspiração para muitas de nossas práticas. Eles estão levando o ecossistema Rust da Ethereum adiante de forma aberta, e agradecemos por suas contribuições contínuas.

Nos vemos no mempool (alternativo).

🦀

Newsletter da Alchemy

Seja o primeiro a saber sobre lançamentos

Assine nossa newsletter

Receba as últimas atualizações de produtos e recursos da Alchemy

A
O
D
+
Mais de 80.000 inscritos

Ao inserir seu endereço de e-mail, você concorda em receber nossas comunicações de marketing e atualizações de produtos. Você reconhece que a Alchemy processa as informações que recebemos de acordo com nosso Aviso de Privacidade. Você pode cancelar a inscrição a qualquer momento.