WARUM EIN BLOCKCHAIN-EVENT NICHT DASSELBE IST WIE FINALITÄT
Früher dachte ich, eine Börse müsse vor allem wissen, wann eine Blockchain-Transaktion passiert ist. Aber der Blick auf Dusk hat mich das hinterfragen lassen. Wenn sich eine Transaktion noch ändern kann, bin ich mir nicht sicher, ob eine Börse dieses Ereignis wie endgültiges Geld behandeln sollte.
Deshalb ist mir RUES (Rusk Universal Event System) aufgefallen. Dusk listet RUES speziell für Infrastruktur, Indexer und Börsen. Für mich ist der spannende Teil, was die Börse nach dem Empfang des Events macht.
Der Transaktionslebenszyklus von Dusk unterscheidet zwischen „included“, „executed“, „confirmed“ und „finalized“. In der Doku heißt es, dass man die „executed“-Transaktionen überwachen, auf Fehler prüfen, bestätigen soll, dass der Block finalisiert ist, und neu abhören soll, falls ein Block zurückgerollt wird. Ich kann nachvollziehen, warum das wichtig ist: Eine Börse zu früh zu gutschreiben könnte einen vorübergehenden Zustand in einen echten Kontostand verwandeln.
Ich denke dabei immer wieder an Sendungsverfolgung. Wenn mein Paket „unterwegs“ bzw. „out for delivery“ anzeigt, weiß ich, dass es sich bewegt, aber ich würde es noch nicht als zugestellt markieren. Vielleicht bin ich zu vorsichtig, aber ich kann sehen, warum eine Börse dieselbe Lücke zwischen „in Bewegung“ und „zugestellt“ haben möchte.
Die Idempotenz-Details haben mich ebenfalls nochmal zum Stoppen gebracht. Dusk sagt Deposit-Scanner, dass sie die Dusk-Transaktions-ID als Idempotenz-Schlüssel verwenden sollen – nicht das Memo – und Gutschrift sowie Block-Checkpoint atomar schreiben sollen. So darf, wenn der Scanner abstürzt und denselben Bereich erneut scannt, diese Transaktion keine zweite Einzahlung werden.
Und jetzt frage ich mich, ob ich RUES vielleicht zu simpel betrachtet habe. Wenn eine Börse das Event, die Finalität, die Reverts und die doppelte Verarbeitung jeweils separat bedenken muss: Wie viel der eigentlichen Arbeit passiert dann tatsächlich, nachdem die Blockchain gesagt hat, dass etwas passiert ist? @Dusk #dusk $DUSK
Früher dachte ich, eine Börse müsse vor allem wissen, wann eine Blockchain-Transaktion passiert ist. Aber der Blick auf Dusk hat mich das hinterfragen lassen. Wenn sich eine Transaktion noch ändern kann, bin ich mir nicht sicher, ob eine Börse dieses Ereignis wie endgültiges Geld behandeln sollte.
Deshalb ist mir RUES (Rusk Universal Event System) aufgefallen. Dusk listet RUES speziell für Infrastruktur, Indexer und Börsen. Für mich ist der spannende Teil, was die Börse nach dem Empfang des Events macht.
Der Transaktionslebenszyklus von Dusk unterscheidet zwischen „included“, „executed“, „confirmed“ und „finalized“. In der Doku heißt es, dass man die „executed“-Transaktionen überwachen, auf Fehler prüfen, bestätigen soll, dass der Block finalisiert ist, und neu abhören soll, falls ein Block zurückgerollt wird. Ich kann nachvollziehen, warum das wichtig ist: Eine Börse zu früh zu gutschreiben könnte einen vorübergehenden Zustand in einen echten Kontostand verwandeln.
Ich denke dabei immer wieder an Sendungsverfolgung. Wenn mein Paket „unterwegs“ bzw. „out for delivery“ anzeigt, weiß ich, dass es sich bewegt, aber ich würde es noch nicht als zugestellt markieren. Vielleicht bin ich zu vorsichtig, aber ich kann sehen, warum eine Börse dieselbe Lücke zwischen „in Bewegung“ und „zugestellt“ haben möchte.
Die Idempotenz-Details haben mich ebenfalls nochmal zum Stoppen gebracht. Dusk sagt Deposit-Scanner, dass sie die Dusk-Transaktions-ID als Idempotenz-Schlüssel verwenden sollen – nicht das Memo – und Gutschrift sowie Block-Checkpoint atomar schreiben sollen. So darf, wenn der Scanner abstürzt und denselben Bereich erneut scannt, diese Transaktion keine zweite Einzahlung werden.
Und jetzt frage ich mich, ob ich RUES vielleicht zu simpel betrachtet habe. Wenn eine Börse das Event, die Finalität, die Reverts und die doppelte Verarbeitung jeweils separat bedenken muss: Wie viel der eigentlichen Arbeit passiert dann tatsächlich, nachdem die Blockchain gesagt hat, dass etwas passiert ist? @Dusk #dusk $DUSK
