A Dusk transaction can disappear from my node’s mempool without ever reaching an on-chain expiry.
That is the timeout I would not hardcode into a wallet. @Dusk_Foundation transactions do not carry an expiry field. Expiry is local Rusk policy. The built-in default is three days, while nodes installed with node-installer v0.5.22 use a 30-minute mempool lifetime with checks every five minutes.
So two healthy Dusk nodes can give me very different answers about how long the same pending transaction is allowed to sit.
The nastier part is the removed event. It only tells me the transaction left that node’s local mempool. Inclusion, replacement, expiry, capacity eviction, or a conflicting spend can all produce that exit. If I translate removed straight into failed, my recovery logic is guessing.
For a withdrawal service, that guess can hit the user. I can mark a payout dead because my node expired it locally while another node already propagated it further.
I would treat mempool timeout as node configuration, then query ledger state before deciding a DUSK transaction is safe to rebuild.
On Dusk, “gone from my mempool” is not the same thing as “gone.”
$SOXSB $ACE #dusk $DUSK @Dusk
That is the timeout I would not hardcode into a wallet. @Dusk_Foundation transactions do not carry an expiry field. Expiry is local Rusk policy. The built-in default is three days, while nodes installed with node-installer v0.5.22 use a 30-minute mempool lifetime with checks every five minutes.
So two healthy Dusk nodes can give me very different answers about how long the same pending transaction is allowed to sit.
The nastier part is the removed event. It only tells me the transaction left that node’s local mempool. Inclusion, replacement, expiry, capacity eviction, or a conflicting spend can all produce that exit. If I translate removed straight into failed, my recovery logic is guessing.
For a withdrawal service, that guess can hit the user. I can mark a payout dead because my node expired it locally while another node already propagated it further.
I would treat mempool timeout as node configuration, then query ledger state before deciding a DUSK transaction is safe to rebuild.
On Dusk, “gone from my mempool” is not the same thing as “gone.”
$SOXSB $ACE #dusk $DUSK @Dusk
