Skip to content

dash(S7): in-memory mempool leaf — storage + UTXO-fee + feerate selection - #203

Merged
frstrtr merged 1 commit into
masterfrom
dash/s7-mempool-leaf
Jun 19, 2026
Merged

dash(S7): in-memory mempool leaf — storage + UTXO-fee + feerate selection#203
frstrtr merged 1 commit into
masterfrom
dash/s7-mempool-leaf

Conversation

@frstrtr

@frstrtr frstrtr commented Jun 19, 2026

Copy link
Copy Markdown
Owner

S7 leaf: Dash in-memory mempool

Next S7 leaf after #169 (subsidy + utxo_adapter foundation, merged @d0a23d53). Lands the in-memory mempool that the embedded_gbt template builder includes directly.

What

  • src/impl/dash/coin/mempool.hpp (488 LOC): thread-safe mempool — UTXO-derived fee, LRU size-cap + expiry eviction, double-spend conflict removal on block-connect, feerate-sorted get_sorted_txs_with_fees(). Adapted from src/impl/ltc/coin/mempool.hpp with Dash simplifications (no segwit/weight/wtxid; special-tx stored opaque).
  • test/test_dash_mempool.cpp: 9 KATs (add/dup/remove, fee=in-out from UTXO, fee-unknown without UTXO, recompute-after-UTXO, LRU eviction, block-connect conflict eviction, highest-feerate-first selection).
  • CI --target lists (build.yml x2) + test/CMakeLists.txt wiring.

Safety / scope

Evidence

  • Linux x86_64: configure + build GREEN; ctest -R DashMempool = 9/9 passed (non-hollow, test IDs 476–484), run from build/.
  • Commit cf03204 GPG-signed (G).

Next in S7

embedded_gbt still needs absent leaves: mn_state_machine, quorum_root, quorum_manager, simplifiedmns → then embedded_gbt main.

No self-merge — integrator verify (oracle + full CI) + operator tap.

…election)

Adds src/impl/dash/coin/mempool.hpp: thread-safe in-memory Dash mempool
with UTXO-derived fee computation, LRU size-cap + expiry eviction,
double-spend conflict removal on block-connect, and the feerate-sorted
get_sorted_txs_with_fees() selection consumed by the embedded GBT
template builder. Adapted from src/impl/ltc/coin/mempool.hpp with the
Dash simplifications (no segwit/weight/wtxid index; special-tx stored as
opaque blobs).

Header-only over block/transaction/utxo_adapter + core/coin
(utxo_view_cache); no ltc/pool SCC dependency. test_dash_mempool.cpp adds
9 KATs (add/dup/remove, fee=in-out from UTXO, fee-unknown without UTXO,
recompute-after-UTXO, LRU eviction, block-connect conflict eviction,
highest-feerate-first selection), registered in the CI --target lists so
it builds under dash-linux-only. Direct prerequisite for embedded_gbt
(S7 main); dashd RPC fallback path untouched.
@frstrtr
frstrtr merged commit d9e3304 into master Jun 19, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant