#dusk $TUT $GPS $DUSK @Dusk

Zuerst dachte ich, die Integration einer Blockchain mit einer Exchange sei ziemlich einfach: Sobald eine Einzahlung finalisiert ist, gutschreibst du dem Nutzer das Geld. Aber als ich die Integrationsdokumentation von Dusk gelesen habe, ist mir eine bestimmte Regel aufgefallen: Dusk verwendet die ID jeder einzelnen Transaktion als Idempotenz-Schlüssel für die zugehörige Gutschrift.

Diese Regel wird interessant, wenn etwas schiefgeht. Ein Scanner kann abstürzen, neu starten oder denselben Blockbereich erneut scannen. Dusk verlangt, dass Gutschrift und Checkpoint in einer einzigen Datenbanktransaktion aktualisiert werden, wobei die Transaktions-IDs eindeutig bleiben; daher erzeugt das erneute Abspielen der Historie keine weitere Gutschrift für dieselbe Transaktion.

Das ist es, was ich an Dusk mag. Bei Geld kann „zweimal richtig“ trotzdem falsch sein. Systeme stürzen ab. Scanner versuchen es erneut. Die Historie wird erneut abgespielt. Die Bilanz muss trotzdem stimmen.

Die größere Idee ist simpel: Die Operation kann erneut ausgeführt werden, aber die finanziellen Auswirkungen dürfen nicht dupliziert werden. Also bleibt mir folgende Frage: Wenn dieselbe Historie zweimal abgespielt werden kann, welche Garantie gibt es dann, dass ihre finanziellen Auswirkungen nur einmal erfasst werden?