Is “Pending” Actually a Network-Wide Fact?
A wallet can label a Dusk transaction “pending” while another node has no corresponding mempool entry at all.
That is not necessarily an inconsistency. It follows from how Dusk handles transactions before they become ledger state.
Each peer performs its own admission checks and maintains its own mempool. Dusk’s mempoolTxs query therefore shows the real mempool of the node being queried—not a network-wide queue shared by every peer.
Boreas-era Moonlight handling makes this even less intuitive. A valid transaction whose nonce is ahead of the account’s current sequence can be deferred while the missing nonces arrive. During that period it sits outside the node’s visible real mempool. So even the node that received the transaction may not show it in mempoolTxs yet.
Expiry adds another local dimension: it is node policy rather than a lifetime encoded into the transaction itself.
This changes how I would read the word “pending.” Before consensus, Dusk does not provide one authoritative global transaction state for everyone to observe. Different nodes can legitimately hold different information about the same transaction.
A wallet status is therefore a report from an observation point, not a statement that the network has already agreed on a shared intermediate fact.
Consensus is where those fragmented local views begin turning into common ledger history.
@Dusk $DUSK #dusk
A wallet can label a Dusk transaction “pending” while another node has no corresponding mempool entry at all.
That is not necessarily an inconsistency. It follows from how Dusk handles transactions before they become ledger state.
Each peer performs its own admission checks and maintains its own mempool. Dusk’s mempoolTxs query therefore shows the real mempool of the node being queried—not a network-wide queue shared by every peer.
Boreas-era Moonlight handling makes this even less intuitive. A valid transaction whose nonce is ahead of the account’s current sequence can be deferred while the missing nonces arrive. During that period it sits outside the node’s visible real mempool. So even the node that received the transaction may not show it in mempoolTxs yet.
Expiry adds another local dimension: it is node policy rather than a lifetime encoded into the transaction itself.
This changes how I would read the word “pending.” Before consensus, Dusk does not provide one authoritative global transaction state for everyone to observe. Different nodes can legitimately hold different information about the same transaction.
A wallet status is therefore a report from an observation point, not a statement that the network has already agreed on a shared intermediate fact.
Consensus is where those fragmented local views begin turning into common ledger history.
@Dusk $DUSK #dusk
