preprocessedSubscribe diffuse les transactions signées avant qu’elles n’atteignent le niveau d’engagement processed, décodées à partir des fragments à leur arrivée au validateur, sans infrastructure de défragmentation requise de votre côté.
Ce guide construit un moniteur qui surveille un programme de trading avant exécution, déduplique le flux, reste sous la limite de contre-pression du serveur et rapproche les données traitées avant d’agir.
Ciblez l’abonnement sur votre objectif
Il n’y a pas de flux non filtré :accountInclude et accountRequired doivent nommer au moins un compte entre eux. Pour un moniteur de trading, incluez le programme contre lequel vous tradez et excluez le bruit que vous paieriez autrement :
accountRequired à la place.
Décoder les trames et dédupliquer par signature
Les notifications arrivent sous forme de trames binaires : un préfixe de 73 octets, puis la transaction sérialisée en bincode. La signature est dans le préfixe, vous pouvez donc dédupliquer sans décoder le corps. Le flux agrège plusieurs sources avant exécution, et la même transaction peut arriver plus d’une fois :monitor.js
Gardez la boucle de réception plus rapide que le flux
Helius ne tamponne pas indéfiniment pour les consommateurs lents : si plus de 4 000 messages s’accumulent côté serveur, la connexion est fermée. C’est pourquoi le gestionnaire ci-dessus ne lit que le préfixe de 73 octets et met en file d’attente. La désérialisation et la logique de stratégie s’exécutent dans une boucle séparée :Reconcile against processed data
Une transaction prétraitée montre ce que l’expéditeur a essayé de faire, pas ce qui s’est passé. Elle ne comporte pas de statut d’exécution, de changements de solde ou de journaux, et elle peut échouer, être abandonnée ou atterrir sur une autre branche. La livraison est au mieux sans relecture historique, donc :- Rapprochez-vous de
transactionSubscribeàprocessedouconfirmedavant que votre stratégie ne réserve quoi que ce soit comme un fait. - En cas de déconnexion, réabonnez-vous immédiatement et acceptez l’écart, car il n’y a pas de relecture pour le combler.
- Si vous avez besoin de l’état du compte en temps réel plutôt que des intentions de transaction, cela n’existe qu’après exécution : utilisez LaserStream gRPC à
processed.
Guides connexes
Référence de preprocessedSubscribe
Disposition complète de la charge utile, règles de filtrage, contre-pression, et tarification
Commerce sur les pré-confirmations
Le signal de transaction le plus précoce offert par Helius, directement du planificateur