Rubriques tendance
#
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.

Keone Hon ⨀
cofondateur / directeur général @monad 💜
Événements d'exécution à faible latence
Aujourd'hui, nous documentons le système des Événements d'exécution dans Monad, qui permet aux développeurs de créer des applications haute performance recevant des données d'événements à latence minimale d'un nœud Monad via une file d'attente en mémoire partagée.
Pour consommer ces données en temps réel, vous écrivez un logiciel en C, C++ ou Rust en utilisant un SDK fourni, et l'exécutez sur un hôte exécutant un nœud complet Monad.
Voici une brève comparaison avec d'autres systèmes similaires :
- Geth Live Tracing - API basée sur des "hooks" : votre code est chargé dans le nœud Geth en tant que plugin et est exécuté de manière synchrone (via des callbacks) pendant l'exécution.
- Reth ExEx - API basée sur des fonctions asynchrones : votre code est chargé dans un nœud Reth ; l'exécution voit les événements après coup plutôt que de manière synchrone.
- Solana Geyser - API basée sur des "hooks", un plugin qui s'exécute à l'intérieur d'un validateur Solana et invoque des callbacks pendant l'exécution.
Ces trois systèmes sont différents de l'approche des Événements d'exécution. Dans les Événements d'exécution :
- Vous voyez les événements "au fur et à mesure qu'ils se produisent", comme dans le Geth Live Tracer et le Solana Geyser. Contrairement à ces approches, votre code ne s'exécute pas en tant que plugin à l'intérieur du moteur d'exécution, mais en parallèle (environ une microseconde plus tard) dans un processus séparé.
- Comme le Geth Live Tracer (mais contrairement à l'ExEx de Reth), vous voyez chaque "élément" de la transaction - chaque journal, chaque changement de solde, etc. - comme un événement séparé.
- Contrairement au Geth Live Tracer ou au Geyser, vous n'installez pas de "hooks" et ne recevez pas de callbacks ; au lieu de cela, vous interrogez en continu de nouveaux enregistrements d'événements, en itérant à travers tous les nouveaux événements qui vous sont retournés (et en ignorant les événements qui ne vous intéressent pas).
- Parce que le système est basé sur des tampons circulaires en mémoire partagée, vous pouvez perdre des données si votre consommateur est trop lent -- vous devez suivre le rythme !
3,41K
v0.11.1 a été déployé sur testnet-2
Changements comportementaux notables :
- Staking
- Logique de solde de réserve
- EIP-7702
- Repricing des opcodes
- Limite de gaz par bloc augmentée de 150M à 200M (de 375Mgas/s à 500Mgas/s)
- Frais de base dynamiques selon la Proposition de Spécification Initiale Monad (MISP) + augmentation du min basefee de 50 MON-gwei à 100 MON-gwei
- SDK des événements d'exécution
- EIP-2935 (hashes de blocs historiques dans l'état) + tampon de blockhash
- EIP-7951 : précompilation P256VERIFY
- Étendre le support d'eth_call pour preStateTracer et stateDiffTracer avec debug_traceCall
Changements de performance notables :
- Validation de fusion assouplie - optimisation pour réduire le nombre de ré-exécutions
- Mise en cache du noyau pour les lectures et écritures de la base de données
- Améliorer le cache de nœud de base de données RPC et le rendre limité en mémoire
C'est une énorme mise à niveau, et il y a beaucoup plus à dire sur chacun de ces changements !
Prochaine étape : déploiement sur testnet (testnet-1)
220
Meilleurs
Classement
Favoris