Transaksi Dusk pada waktu senja bisa menghilang dari mempool node saya tanpa pernah mencapai batas waktu kedaluwarsa di rantai (on-chain).

Itulah batas waktu yang tidak ingin saya hardcode ke dalam sebuah wallet. @Dusk transaksi tidak membawa field kedaluwarsa (expiry). Kedaluwarsa adalah kebijakan lokal Rusk. Default bawaan adalah tiga hari, sementara node yang diinstal dengan node-installer v0.5.22 menggunakan umur mempool 30 menit dengan pemeriksaan setiap lima menit.

Jadi dua node Dusk yang sehat bisa memberi saya jawaban yang sangat berbeda tentang berapa lama transaksi tertunda yang sama diperbolehkan untuk tetap menunggu.

Bagian yang paling menyebalkan adalah event “removed” yang dihapus. Itu hanya memberi tahu saya transaksi tersebut keluar dari mempool lokal node itu. Inklusi, penggantian (replacement), kedaluwarsa (expiry), pengusiran karena kapasitas (capacity eviction), atau pembelanjaan yang bertentangan (conflicting spend) semuanya dapat memicu keluarnya transaksi itu. Jika saya menerjemahkan “removed” langsung menjadi “failed”, logika pemulihan saya akan menebak.

Untuk layanan penarikan, tebakan itu bisa berdampak pada pengguna. Saya bisa menandai pembayaran sebagai mati (dead) karena node saya kedaluwarsa secara lokal, sementara node lain sudah menyebarkannya lebih jauh.

Saya akan memperlakukan timeout mempool sebagai konfigurasi node, lalu menanyakan status ledger sebelum memutuskan bahwa transaksi DUSK aman untuk dibangun ulang (rebuild).

Di Dusk, “hilang dari mempool saya” tidak sama dengan “hilang”.

$SOXSB $ACE #dusk $DUSK @Dusk