Eventos de Ejecución de Baja Latencia Hoy, estamos documentando el sistema de Eventos de Ejecución en Monad, que permite a los desarrolladores construir aplicaciones de alto rendimiento que reciben datos de eventos de la más baja latencia desde un nodo Monad a través de una cola de memoria compartida. Para consumir estos datos en tiempo real, debes escribir software en C, C++ o Rust utilizando un SDK proporcionado, y ejecutarlo en un host que ejecute un nodo completo de Monad. Aquí hay una breve comparación con otros sistemas similares: - Geth Live Tracing - API basada en "hooks": tu código se carga en el nodo Geth como un plugin y se ejecuta de manera sincrónica (a través de callbacks) durante la ejecución. - Reth ExEx - API basada en funciones asíncronas: tu código se carga en un nodo Reth; la ejecución ve los eventos después del hecho en lugar de sincrónicamente. - Solana Geyser - API basada en "hooks", un plugin que se ejecuta dentro de un validador de Solana e invoca callbacks durante la ejecución. Los tres son diferentes del enfoque de Eventos de Ejecución. En Eventos de Ejecución: - Estás viendo eventos "a medida que suceden", como en el Geth Live Tracer y Solana Geyser. A diferencia de estos enfoques, tu código no se ejecuta como un plugin dentro del motor de ejecución, sino en paralelo (aproximadamente un microsegundo después) en un proceso separado. - Al igual que el Geth Live Tracer (pero a diferencia de Reth's ExEx), ves cada "parte" de la transacción - cada registro, cada cambio de saldo, etc. - como un evento separado. - A diferencia del Geth Live Tracer o Geyser, no instalas "hooks" y no recibes callbacks; en su lugar, sondeas continuamente en busca de nuevos registros de eventos, iterando a través de cualquier nuevo evento que se te devuelva (e ignorando eventos que no te interesan). - Debido a que el sistema se basa en buffers de anillo de memoria compartida, puedes perder datos si tu consumidor es demasiado lento: ¡debes mantener el ritmo!