MENGAPA ACARA BLOCKCHAIN TIDAK SAMA DENGAN FINALITAS

Dulu saya berpikir sebuah bursa terutama perlu tahu kapan transaksi blockchain terjadi. Tapi saat melihat Dusk, saya jadi mempertanyakannya. Jika sebuah transaksi masih bisa berubah, saya tidak yakin bursa harus memperlakukan kejadian itu sebagai uang yang sudah final.

Itulah mengapa RUES (Rusk Universal Event System) menarik perhatian saya. Dusk secara spesifik mencantumkan RUES untuk infrastruktur, indexer, dan bursa. Bagi saya, bagian yang paling menarik adalah apa yang dilakukan bursa setelah menerima event tersebut.

Siklus hidup transaksi Dusk memisahkan included, executed, confirmed, dan finalized. Dokumentasinya mengatakan untuk memantau transaksi yang executed, memeriksa apakah ada error, mengonfirmasi bahwa blok sudah final, dan menyalin ulang (re-listen) jika sebuah blok mengalami revert. Saya paham mengapa ini penting: memberikan kredit ke bursa terlalu cepat bisa mengubah status sementara menjadi saldo nyata.

Saya terus memikirkan pelacakan kurir di sini. Jika paket saya tertulis “out for delivery”, saya tahu paket itu sedang bergerak, tetapi saya belum akan menandainya sebagai “terkirim”. Mungkin saya terlalu berhati-hati, tapi saya bisa melihat kenapa bursa ingin adanya jeda yang sama antara “sedang dikirim” dan “terkirim”.

Detail idempotency membuat saya berhenti lagi. Dusk memberi tahu pemindai deposit agar menggunakan ID transaksi Dusk sebagai idempotency key, bukan memo, dan agar menulis kredit serta block checkpoint secara atomik. Jadi jika pemindai mengalami crash lalu memindai ulang rentang yang sama, transaksi itu tidak boleh berubah menjadi deposit kedua.

Dan sekarang saya bertanya-tanya apakah saya memandang RUES terlalu sederhana. Jika sebuah bursa harus memikirkan event, finalitas, revert, dan pemrosesan duplikat secara terpisah, seberapa besar sebenarnya pekerjaan yang terjadi setelah blockchain menyatakan sesuatu telah terjadi? @Dusk #dusk $DUSK