---
title: "Abrindo o Código-Fonte do Rundler 🦀"
description: "Ao abrir o código-fonte do Rundler, esperamos estimular a inovação no ecossistema ERC-4337, acelerar a transição para smart accounts e alcançar experiências de usuário de próximo nível em blockchains EVM."
---

# Abrindo o Código-Fonte do Rundler 🦀

Hoje estamos empolgados em anunciar o [open source do Rundler](https://github.com/alchemyplatform/rundler) \(**R**ust B**undler**\), 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](https://www.alchemy.com/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](https://eips.ethereum.org/EIPS/eip-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](https://www.alchemy.com/account-abstraction). 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](https://www.alchemy.com/overviews/what-is-account-abstraction), 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](/smart-wallets).

### Bundler

A peça central off-chain da infraestrutura de nível mais alto mencionada acima é [o Bundler](https://www.alchemy.com/overviews/what-is-a-bundler). O trabalho de um Bundler é pegar objetos semelhantes a transações \([User Operations](https://www.alchemy.com/overviews/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.

<ImageBlock
  src="https://media.alchemy.com/1704368327-diagram-of-how-a-bundler-handles-user-operations-uos.jpeg"
  alt="Diagrama de como um bundler processa user operations (UOs)."
  width={1905}
  height={937}
  caption="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](https://www.alchemy.com/blog/erc-4337-gas-estimation) 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](https://x.com/ProbablyNoam/status/1702847970289569974?s=20) 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.

<ImageBlock
  src="https://media.alchemy.com/1704368412-sustained-eth_senduseroperation-transactions-per-second-on-polygon.jpeg"
  alt="Transações eth_sendUserOperation sustentadas por segundo na Polygon."
  width={3328}
  height={1872}
  caption="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](https://www.alchemy.com/blog/reliability) 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](https://www.alchemy.com/docs/wallets/low-level-infra/quickstart). 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](https://github.com/eth-infinitism/account-abstraction/tree/v0.6.0), 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](https://www.alchemy.com/blog/erc-4337-gas-estimation) aproveitando alguns truques inteligentes de smart contract e busca binária.

### Tratamento de reorg

Nossa implementação de mempool é resistente a [reorganizações](https://www.alchemy.com/overviews/what-is-a-reorg) 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](https://hackmd.io/@dancoombs/BJYRz3h8n) com [mempools alternativos ERC-4337](https://eips.ethereum.org/EIPS/eip-4337#alternative-mempools) 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](https://github.com/eth-infinitism/bundler-spec/blob/main/p2p-specs/p2p-interface.md) 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](https://www.alchemy.com/blog/l2-gas-and-signature-aggregators) é 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!

- [Guia de Contribuição](https://github.com/alchemyplatform/rundler/blob/main/CONTRIBUTING.md)
- [Issues Abertas](https://github.com/alchemyplatform/rundler/issues)
- [Ajuda para Desenvolvimento](https://github.com/alchemyplatform/rundler#help)

## 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](https://github.com/eth-infinitism/account-abstraction) foi pioneiro no padrão e respondeu inúmeras perguntas durante nosso desenvolvimento. Eles desenvolveram a [implementação de referência do bundler](https://github.com/eth-infinitism/bundler) e os [testes de especificação](https://github.com/eth-infinitism/bundler-spec-tests) 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](https://github.com/paradigmxyz/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).**

🦀
