Saltar al contenido
0%

Código abierto de Rundler 🦀

Autor: Dan Coombs

Última actualización: 28 de septiembre de 20236 min de lectura

Hoy nos complace abrir el código fuente de Rundler (Rust Bundler), una implementación de bundler ERC-4337 hecha por Alchemy, escrita en Rust. Con Rundler, buscamos acelerar la transición hacia smart accounts para lograr el siguiente nivel de experiencia de usuario en las cadenas EVM. Los Bundlers son una pieza fundamental de la infraestructura que impulsa Account Abstraction. Estamos liberando el código de Rundler para fomentar una red descentralizada y robusta capaz de sostener esta transición.

¿Qué es rundler?

Rundler es un bundler ERC-4337 de alto rendimiento, alta confiabilidad y diseño modular.

¿Muchas palabras?

Vamos a desglosarlo 👇

ERC-4337

ERC-4337 es un estándar para implementar Account Abstraction en todas las cadenas EVM sin ningún cambio al protocolo base. Lo logra apoyándose en infraestructura fuera de la cadena de nivel superior, como los Bundlers. En esencia, ERC-4337 permite a los desarrolladores obtener todos los beneficios de Account Abstraction sin los riesgos del desarrollo del protocolo base.

Para aprender cómo funciona ERC-4337, revisa esta serie de 4 partes, "You Could Have Invented Account Abstraction", escrita por David Philipson, ingeniero del equipo de AA de Alchemy.

Para empezar a construir con cuentas ERC-4337, explora nuestras Embedded Accounts de nivel empresarial.

Bundler

La pieza central fuera de la cadena de la infraestructura de nivel superior mencionada arriba es el Bundler. El trabajo de un Bundler es tomar objetos similares a transacciones (User Operations) enviados por los usuarios, agruparlos en una única transacción EVM y llevar esa transacción a la cadena. A cambio, cobra una pequeña comisión a cada usuario. Mientras que las wallets EOA envían transacciones directamente a los nodos, todas las smart accounts ERC-4337 envían UserOps a un Bundler.

Diagrama de cómo un bundler maneja las user operations (UOs).
Diagrama de cómo un bundler maneja las user operations (UOs).

¿Cuáles son los objetivos de rundler?

Construimos Rundler para ayudar al ecosistema a incorporar a los próximos 1.000 millones de usuarios en web3. Creemos que Account Abstraction y ERC-4337 son el mejor camino para hacer que cripto sea accesible para una audiencia masiva. Para lograr esa experiencia masiva, necesitamos infraestructura altamente confiable, con una experiencia de desarrollador de primer nivel, diseño modular y soporte para todas las cadenas EVM.

1. Crecimiento del ecosistema ERC-4337

Mientras construíamos Rundler, nos hemos involucrado a fondo en la evolución del estándar ERC-4337, y pretendemos seguir contribuyendo en este aspecto. Estamos aprendiendo muchísimo de nuestra experiencia ejecutando Rundler en producción, y seguimos compartiendo esas experiencias con la comunidad 4337 para ayudar a mejorarlo.

2. Rendimiento y confiabilidad de primer nivel

El rendimiento y la confiabilidad son fundamentales para incorporar el tipo de aplicaciones que llevarán a mil millones de usuarios a la cadena. Esta convicción está en el núcleo de Rundler y de las APIs asociadas de Alchemy, y seguimos esforzándonos por llevar el límite más allá.

3. Extensibilidad y soporte de cadenas

Toda cadena EVM merece infraestructura de primer nivel para soportar Account Abstraction. Los protocolos manejan los detalles complicados de forma distinta (por ejemplo, uso de gas, precompilados, cadena de suministro de transacciones, etc.). Con Rundler esperamos que su lógica pueda extenderse para soportar la mayoría, si no todos, estos casos de uso.

4. Modularidad

No nos vamos a detener en Rundler. Buscamos que los distintos componentes de la librería Rundler puedan extenderse y usarse para impulsar nueva infraestructura de 4337 y de mempools alternativos.

Ventajas de la arquitectura de rundler

En Alchemy, creemos que la transición hacia smart accounts es necesaria para llevar los beneficios de la tecnología de Ethereum a todos. Rundler es un paso crucial hacia lograr esa visión.

1. Alto rendimiento

Rundler está construido para alcanzar los niveles de rendimiento que requieren las cargas de trabajo más exigentes. Elegimos Rust como lenguaje de programación para ayudar a lograrlo mediante sus primitivas de concurrencia y sus abstracciones de costo cero. Queremos que Rundler sea altamente concurrente, escalable horizontalmente y fácilmente extensible para cumplir con las demandas de escalabilidad de las aplicaciones de próxima generación.

Recientemente medimos que Rundler alcanza 7,5M de gas por segundo en Polygon Mainnet (aproximadamente 55 TPS en esa carga de trabajo), y con esta arquitectura podemos alcanzar volúmenes aún mayores.

Transacciones eth_sendUserOperation sostenidas por segundo en Polygon.
Transacciones eth_sendUserOperation sostenidas por segundo en Polygon.

2. Alta confiabilidad

La arquitectura de Rundler está diseñada para cumplir con el servicio de alta confiabilidad que esperan los usuarios. Aprovechando los aprendizajes de años operando infraestructura blockchain, construimos Rundler como una extensión de ese enfoque. Rundler destaca en entornos modernos tipo cloud, donde cada componente puede ejecutarse y escalar de forma independiente y donde la observabilidad y la telemetría son indispensables.

3. Modular

Rundler está construido de forma modular, donde cada componente se modela como una librería (o crate en Rust) y puede ejecutarse de forma independiente de los demás componentes. A medida que nuestras interfaces se estabilizan, esperamos usar estos componentes para impulsar la siguiente iteración de infraestructura de escritura en cadena.

Impulsando a los próximos mil millones de usuarios

Hemos estado ejecutando Rundler en producción desde abril, donde se usa para ayudar a impulsar algunas de las aplicaciones más prometedoras del espacio, incluyendo CyberConnect CyberAccounts y Circle Programmable Wallets.

Estos son algunos números de nuestros primeros meses:

  • Más de 402K UserOps llevadas exitosamente a la cadena
  • 71% de las UserOps se incluyeron en un bundle con más de 1 UO, 4.7 veces más que otras implementaciones de bundler conocidas
  • 430% de crecimiento trimestral en equipos de desarrolladores activos únicos enviando UserOps

¿Cuál es el estado actual de rundler?

Rundler impulsa nuestros endpoints de Bundler API. Sin embargo, está en desarrollo activo por parte de un sólido equipo de desarrolladores en Alchemy. Seguiremos agregando funciones para que nuestros usuarios puedan aprovechar al máximo el poder de Account Abstraction.

Además de contar con compatibilidad total con la especificación ERC-4337 y soporte para el contrato Entry Point v0.6, Rundler tiene varias funciones destacables:

Despliegues integrados o distribuidos

Rundler puede ejecutarse como un nodo completo en un solo proceso, donde cada componente se comunica mediante paso de mensajes en memoria. Alternativamente, estos componentes también pueden ejecutarse en procesos independientes, comunicándose mediante gRPC, lo que facilita la escalabilidad horizontal y los despliegues redundantes.

Estimación precisa de gas

Hemos sido pioneros en nuevas formas de estimar los distintos campos de gas de una user operation ERC-4337, aprovechando trucos ingeniosos de smart contracts y búsqueda binaria.

Manejo de reorgs

Nuestra implementación de mempool es resistente a reorganizaciones de cadena. Rastreamos el progreso de la cadena, detectamos cuándo ha ocurrido una reorg, y devolvemos al mempool cualquier User Operation que pudiera haberse eliminado de la cadena para que vuelva a ser elegible para su inclusión.

Construcción de bundles grandes y confiabilidad de transacciones

Construimos nuestro componente de construcción de bundles para lograr un throughput de gas a nivel de red. Es decir, buscamos saturar por completo cualquier red con bundles que se aproximen al límite de gas del bloque y que se incluyan en cada bloque.

Mempools alternativos

Hemos estado experimentando con mempools alternativos de ERC-4337 y hemos ayudado a impulsar esta conversación. Hoy en día, estos mempools alternativos exponen al bundler a ciertos ataques de mempool, pero esperamos usar esta investigación para implementar un mempool alternativo seguro en el futuro.

¿Cuál es la hoja de ruta de rundler?

Ahora que llegamos hasta aquí, ¿qué sigue? En nuestra hoja de ruta inmediata estamos empezando a construir mempools alternativos P2P y seguros, soporte para Entry Point v0.7, agregación de firmas e integraciones con block builders.

Mempool P2P

El prometido mempool P2P público de ERC-4337 llega este otoño y actualmente estamos construyendo el soporte necesario.

Mempools alternativos seguros

Como mencionamos antes, buscamos iterar sobre nuestro enfoque de mempool alternativo para construir una implementación segura para bundlers.

Entry Point v0.7 y soporte para múltiples versiones

El equipo de ERC-4337 está trabajando arduamente en la siguiente iteración del contrato Entry Point, v0.7. Una vez que se libere, buscaremos darle soporte rápidamente mientras mantenemos el soporte para el contrato v0.6.

Agregación de firmas

La agregación de firmas es una de las funciones más promocionadas de ERC-4337. Sin embargo, implementarla de manera que permita a los bundlers mantener su rentabilidad ha resultado un desafío. Estamos analizando este tema más de cerca y esperamos impulsar los primeros agregadores de firmas prácticos.

Integración con block builders

En nuestro intento de llevar altas tasas de User Operations a la cadena, hemos encontrado problemas que solo se agravarán con la introducción del mempool P2P (más sobre esto en otra ocasión). Estos problemas se reducen considerablemente si los block builders integran el bundling directamente en su proceso.

Cómo contribuir a rundler

Esperamos que al liberar el código de Rundler podamos seguir impulsando la innovación en este espacio. Los usuarios pueden explorar la lógica que impulsa sus User Operations, y quienes contribuyan pueden agregar funciones y corregir errores para mejorar y fortalecer Rundler.

Si buscas contribuir, revisa nuestra guía de contribución y contáctanos.

Agradecimientos

Construir el ecosistema de ERC-4337 es un esfuerzo de equipo, y no habríamos podido lograr lo que hemos logrado sin el liderazgo, la orientación y el apoyo de múltiples equipos en este espacio.

Equipo de ERC-4337

El equipo de ERC-4337 ha sido pionero del estándar y ha respondido innumerables preguntas durante nuestro desarrollo. Desarrollaron la implementación de referencia del bundler y las pruebas de especificación que fueron invaluables durante nuestro proceso de desarrollo. Estamos entusiasmados de seguir trabajando con este equipo para hacer avanzar ERC-4337.

Equipo de Reth

Un reconocimiento al equipo de Reth, de quienes tomamos inspiración para muchas de nuestras prácticas. Están impulsando el ecosistema de Ethereum en Rust de manera abierta, y les agradecemos sus continuas contribuciones.

Nos vemos en el mempool (alternativo).

🦀

Boletín de Alchemy

Entérate primero de los lanzamientos

Suscríbete a nuestro boletín

Recibe las últimas actualizaciones de productos y recursos de Alchemy

A
O
D
+
Más de 80,000 suscriptores

Al ingresar tu correo electrónico, aceptas recibir nuestras comunicaciones de marketing y actualizaciones de productos. Reconoces que Alchemy procesa la información que recibimos de acuerdo con nuestro Aviso de Privacidad. Puedes cancelar tu suscripción en cualquier momento.