Neo Saint Petersburg Competence Center (SPCC) a publié un article introduisant le nouveau sous-système de notification à distance alimenté par Websocket, ajouté par l’équipe dans la version v0.75.0 de NeoGo. La solution est destinée à répondre aux besoins des applications décentralisées, en fournissant un système efficace de surveillance et de réaction aux événements sur la chaîne tels que les exécutions de contrats intelligents.

En outre, le protocole a une spécification ouverte afin que les clients compatibles peuvent être implémentés dans n’importe quelle langue pour répondre aux besoins des développeurs. Historiquement, les constructeurs d’applications utilisant neo-cli, le client C# de base, se sont limités à créer des plugins compatibles avec le nœud afin de recevoir des notifications de contrat et des opérations de backend.

Le sous-système de notification NeoGo prend actuellement en charge un certain nombre de types d’événements, avec un flux individuel pour chacun : nouveaux blocs, nouvelles transactions, notifications générées lors de l’exécution du contrat et résultats d’exécution de transactions. Ces événements sont envoyés aux clients sous forme de notifications JSON-RPC, ce qui garantit que l’interface est facile à utiliser pour les applications existantes avec un ajustement minimal.

Pour permettre aux développeurs de limiter les événements reçus uniquement à ceux qui sont pertinents pour leurs applications, Neo SPCC a fourni des fonctionnalités de filtrage. Par exemple, plutôt que de recevoir un événement pour chaque notification générée dans un bloc, un hachage de script peut être spécifié de sorte que les événements ne sont reçus que pour le contrat spécifique. Alternativement, le filtre pourrait être utilisé pour exclure toutes les transactions qui se sont terminées dans un état FAULT.

Pour commencer à recevoir des événements, les clients doivent d’abord s’abonner au serveur en utilisant la méthode d’abonnement fournie, en passant les flux pour recevoir et définir les règles de filtrage. La réponse d’abonnement inclut un ID temporaire, qui est utilisé uniquement pour annuler l’abonnement.

L’équipe a également mis en évidence un événement supplémentaire qui peut être transmis:

« ll ya aussi un type d’événement très spécial: event_missed. Nous voulons que les backends dApp soient fiables et nous ne voulons pas qu’ils perdent des événements, mais évidemment, si le client ne serait pas en mesure de recevoir des événements dans les files d’attente de serveur de temps pourrait être survolé et c’est exactement quand cet événement est généré. Vous ne devriez jamais le recevoir, mais si nous ne serions pas en mesure de livrer votre événement au moins vous le sauriez.

En plus des abonnements d’événements, l’implémentation apporte également des avantages au serveur NeoGO JSON-RPC existant. Les développeurs pourront utiliser des Websockets pour interfacer avec le nœud toute communication RPC de base, destinée à améliorer par rapport aux connexions HTTP habituelles.

Vous trouverez de plus amples informations sur le sous-système de notification à distance dans l’article original ci-dessous :
https://medium.com/@neospcc/neogo-adds-remote-notification-subsystem-5401c401bcf7