Ich habe begonnen, Blockchain-Integrationen aus einem anderen Blickwinkel zu betrachten: Ein Ereignis kann einer Anwendung mitteilen, was passiert ist, aber nicht jedes Ereignis sagt ihr, dass das Ergebnis endgültig ist.
Diese Unterscheidung wird wichtig, wenn Software auf On-Chain-Aktivitäten reagiert.
Der Rusk-Node von Dusk stellt das RUES (Rusk Universal Event System) bereit, das externe Anwendungen und Integrationen für Blockchain-Ereignisse nutzen können. Für Transaktionen umfasst RUES Ereignisse wie included, removed und executed. Aber diese Ereignisse stehen für unterschiedliche Phasen des Lebenszyklus.
Zum Beispiel bedeutet executed, dass eine Transaktion in einem akzeptierten Block ausgeführt wurde, aber die Anwendung muss das Ausführungsergebnis dennoch prüfen. Noch wichtiger ist: Ein akzeptierter Block kann immer noch rückgängig gemacht werden. Dusk sagt, ein Block wird endgültig, wenn sich sein Zustand zu finalized ändert.
Das schafft eine interessante Unterscheidung:
Ein Ereignis zu beobachten ist nicht dasselbe wie den endgültigen Zustand zu bestätigen.
Die Integrationsrichtlinien von Dusk empfehlen daher, zunächst den Erfolg der Ausführung zu prüfen und anschließend zu verifizieren, dass der relevante Block finalisiert wurde. Archive-Nodes können finalisierte historische Indizes vorhalten, einschließlich finalizedEvents, für Anwendungen, die historisch finalisierte Daten benötigen.
Für mich verändert das, wie ich über Blockchain-Integrationen nachdenke.
Die Herausforderung besteht nicht einfach darin, Ereignisse zu empfangen.
Es geht darum zu wissen, wann eine Anwendung das Ergebnis sicher als endgültig betrachten kann.

@Dusk $DUSK #dusk