¿Cómo funciona Aurora Relayer 2.0?
Traducción de: Milly Rodriguez.. Publicado 05/ May/2023 | Artículo original: How the Aurora Relayer 2.0 works?
En el mundo de las blockchains, los repetidores facilitan los intercambios de datos, así como transacciones entres redes y/o capas de blockchains fuera de ellas. Se utilizan principalmente en aplicaciones financieras descentralizadas, comunicación entre cadenas y soluciones de capa 2, como sidechains o canales de estado. En general, los repetidores escuchan los eventos y transacciones de un punto y luego envían los datos o transacciones correspondientes a otro. Por ello, pueden cobrar comisiones por sus servicios, lo que les incentiva a operar y mantener su infraestructura.
Desarrollado inicialmente en NEAR, la EVM de Aurora es la EVM oficial del ecosistema NEAR. Impulsado por la SputnikVM, logra una experiencia 1:1 con el protocolo Ethereum. Esta compatibilidad entre Aurora y Ethereum se consigue gracias al Aurora Relayer, un servidor compatible JSON-RPC con la API Web3 de Ethereum para el motor Aurora. Tiene su propia base de datos interna para servir a múltiples métodos de lectura y un indexador que está constantemente siguiendo la pista e indexando bloques, transacciones y logs a esa base de datos interna.
Relayer 2.0
Como ya se ha mencionado, el Aurora Relayer tiene dos componentes principales. En primer lugar, una implementación de la especificación JSON-RPC de Ethereum; una colección estándar de métodos que todos los clientes deben implementar y la interfaz canónica entre los usuarios y la red Ethereum, en la Máquina Virtual Ethereum (EVM) de Aurora, también conocida como el motor de Aurora. En segundo lugar, un indexador que lee continuamente la red NEAR en busca de bloques y otra información relevante para Aurora.
El Relayer tuvo su primera versión desplegada en octubre de 2021. Desarrollado en Typescript y JavaScript. Actualmente está obsoleto y ha sido sustituido por la versión 2.0, con un servidor JSON-RPC escrito en go-lang y el indexador desarrollado en go-lang y rust.
Relayer 2.0 fue impulsado por la necesidad de migrar de Javascript a un lenguaje más fiable como golang que está diseñado para la concurrencia y es particularmente bueno en la gestión de múltiples conexiones y tareas intensivas en recursos, por lo que es muy adecuado para el tipo de sistemas RPC de alto rendimiento requeridos en las blockchains. Además, era necesario migrar a un sistema de base de datos más eficiente, por lo que se pasó de ‘PostgreSQL’ a ‘badger-db’, una base de datos clave-valor integrada. Como resultado, ahora hay un relayer con mayor velocidad de ejecución, menor uso de recursos de máquina y menor latencia de datos que es más fácil de codificar, depurar, optimizar y desplegar. Ahora, vamos a tener una visión general de algunos de los aspectos internos de la Relayer.
El JSON-RPC
Escrito en go-lang, expone puntos finales que implementan los métodos del protocolo JSON-RPC de Ethereum, comúnmente conocido como Web3 API. Este middleware aprovecha un sistema de mensajería que reenvía las llamadas JSON-PRC a la red NEAR y viceversa. Su código fuente es abierto y está disponible para desarrolladores, colaboradores y cualquiera que desee construirlo, ejecutarlo y experimentar con él de forma nativa. En el repositorio de GitHub se puede encontrar una lista de todos los métodos implementados y el código fuente del servidor. También hay una versión independiente disponible aquí.
La base de datos
Las bases de datos integradas son una mejor opción para aplicaciones que no requieren una planificación compleja de las consultas, ya que proporcionan una solución ligera con menos dependencias. También son adecuadas para aplicaciones que se benefician del almacenamiento local de datos con baja latencia y necesitan afluencia de procesos únicos para operaciones concurrentes de lectura y escritura sin coordinación externa.
BadgerDB es nuestra base de datos preferida; es una base de datos clave-valor (KV) incrustable, persistente y rápida escrita en Go puro. Es ideal para servidores JSON-RPC, ya que la mayoría de los métodos toman los datos por clave y se benefician de una mejor compresión de datos y una menor latencia. Además, otros equipos de Aurora también la utilizan, por lo que las competencias y los conocimientos necesarios ya estaban ahí.
El indexador
El nuevo indexador integrado lee continuamente archivos JSON generados por el refinador de Aurora que llenan una base de datos local. El refinador permite a los usuarios descargar todos los NEAR Blocks y obtener toda la información relevante para Aurora. Los datos de NEAR Blocks se pueden consumir desde dos fuentes diferentes: NEAR data lake (un repertorio de bloques y eventos de la red NEAR como archivos JSON en AWS) y una instancia de archivo, el NEARCore. En general, la infraestructura de Aurora Relayer implementa un indexador de bloques NEAR, un indexador de bloques de copias de seguridad ‘tar’ y un indexador de bloques prehistóricos (altura < 34 mln). Se puede encontrar una compilación de código abierto para el Refinador Aurora aquí.
Y mucho más…
Adicionalmente, y debido a la naturaleza de la infraestructura del repetidor de Aurora y sus interacciones con la red NEAR, fue posible actualizar nuestra infraestructura interna, para utilizar nuestro repetidor con adiciones, que permiten la implementación -entre otras cosas- de complejos sistemas de contabilidad multiusuario basados en reglas, que admiten prácticamente cualquier forma posible de contabilizar las transacciones, aplicar precios de gas, transacciones previas o posteriores a la ejecución, entre otros. Así, es posible tener usuarios con cuotas pre-pagadas, gas pre-pagado, sin gas, y muchas otras configuraciones para distribuir el gas y las cuotas entre repetidores, usuarios y propietarios de contratos inteligentes. Esto significa que cualquiera que esté dispuesto a hacer girar un relayer tendrá acceso a mecanismos económicos más sofisticados para sus usuarios o en nombre de otros, actuando así de la misma manera que lo hacen los agrupadores ERC-4337, es decir, como validadores que ganan incentivos por completar transacciones.
El futuro de la experiencia del usuario
Al mejorar la eficiencia y la fiabilidad, así como al añadir funcionalidades innovadoras en el relayer, los creadores y desarrolladores de Aurora pueden ofrecer aplicaciones más rápidas y robustas junto con mejoras significativas en la experiencia del usuario, donde -entre otras cosas- podrían eliminarse las comisiones por transacción y las cuentas podrían desvincularse de las claves. Por lo tanto, el Aurora Relayer se crea como una innovación pionera en el mundo de las tecnologías blockchains descentralizadas. Además, a medida que seguimos viendo rápidos avances y una creciente adopción, el Aurora Relayer sienta las bases para un futuro más interconectado y eficiente con el potencial de desbloquear niveles sin precedentes de usabilidad, escalabilidad, seguridad y rentabilidad, contribuyendo en última instancia a un panorama más accesible para todo tipo de usuarios.
Si estás interesado en conocer más a fondo los Relayers de Aurora, visita el próximo post de Aurora Developers donde te enseñarán a modificar y lanzar una versión autónoma del relayer que puede ser llamada por un smart contract, que puede ejecutar funciones sin cobrar gas a sus invocadores, ¡permanece atento!
Sigue las cuentas de Aurora y la comunidad de Aurora en Español
Twitter oficial de Aurora: @auroraisnear
Twitter oficial de Aurora Venezuela: @venezuelaaurora
Canal YouTube Mundo Aurora: @mundo_aurora
NEAR Social: mundoaurora.near
Telegram oficial de Aurora Venezuela: @venezuelaaurora
Telegram canal de Noticias Aurora en Español