Populaire onderwerpen
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Laag-latentie uitvoeringsgebeurtenissen
Vandaag documenteren we het uitvoeringsgebeurtenissysteem in Monad, waarmee ontwikkelaars high-performance applicaties kunnen bouwen die de laagste-latentie gebeurtenisgegevens van een Monad-knooppunt ontvangen via een gedeelde geheugenqueue.
Om deze realtime gegevens te consumeren, schrijf je software in C, C++ of Rust met behulp van een verstrekte SDK en voer je deze uit op een host die een volledige Monad-knooppunt draait.
Hier is een korte vergelijking met andere dergelijke systemen:
- Geth Live Tracing - "hook" gebaseerde API: jouw code wordt als een plugin in de Geth-knoop geladen en wordt synchronisch uitgevoerd (via callbacks) tijdens de uitvoering.
- Reth ExEx - async functie gebaseerde API: jouw code wordt in een Reth-knoop geladen; de uitvoering ziet gebeurtenissen achteraf in plaats van synchronisch.
- Solana Geyser - "hook" gebaseerde API, een plugin die binnen een Solana-validator draait en callbacks aanroept tijdens de uitvoering.
Al deze drie zijn anders dan de aanpak van uitvoeringsgebeurtenissen. In uitvoeringsgebeurtenissen:
- Je ziet gebeurtenissen "terwijl ze plaatsvinden", zoals in de Geth Live Tracer en Solana Geyser. In tegenstelling tot deze benaderingen draait jouw code niet als een plugin binnen de uitvoeringsengine, maar parallel (ongeveer een microseconde later) in een apart proces.
- Net als de Geth Live Tracer (maar in tegenstelling tot Reth's ExEx) zie je elk "stuk" van de transactie - elke log, elke saldo-wijziging, enz. - als een aparte gebeurtenis.
- In tegenstelling tot de Geth Live Tracer of Geyser installeer je geen "hooks" en ontvang je geen callbacks; in plaats daarvan poll je continu voor nieuwe gebeurtenisrecords, waarbij je door alle nieuwe gebeurtenissen iterates die aan jou worden teruggegeven (en gebeurtenissen negeert waarin je niet geïnteresseerd bent).
- Omdat het systeem is gebaseerd op gedeelde geheugenringbuffers, kun je gegevens verliezen als jouw consument te traag is -- je moet bijblijven!
Boven
Positie
Favorieten