Follow-up to #117. The Phase 0/1 scaffold (Alchemy WS subscribe, router decoder, MEV-Share SSE monitor, V2 post-state sim) is in place on feat/mempool-tracking-scaffold. This issue tracks the remaining work to make the mempool tap a real trigger on the engine hot path — not just a monitor.
Done already (on branch)
To do
Out of scope (separate issue)
Done when
- 30-min live shadow run shows
arbs rows with both source=public and source=mev_share
- filter drop rate matches expectation (>99% of public mempool txns rejected by
to-not-in-registry filter)
- no regression in existing
aether_pending_pipeline_lagged_total (queue not bottlenecking)
Branch
feat/mempool-tracking-scaffold — currently 13 commits ahead of develop, rebased clean.
Follow-up to #117. The Phase 0/1 scaffold (Alchemy WS subscribe, router decoder, MEV-Share SSE monitor, V2 post-state sim) is in place on
feat/mempool-tracking-scaffold. This issue tracks the remaining work to make the mempool tap a real trigger on the engine hot path — not just a monitor.Done already (on branch)
crates/ingestion/src/mempool.rs)crates/pools/src/router_decoder.rs)cmd/monitor/mev_share.go) — monitor binary onlycrates/grpc-server/src/mempool_pipeline.rs)aether_pending_pipeline_lagged_totalPairIndexTo do
cmd/monitor/mev_share.gointo the engine trigger path (not just monitor — same path public mempool already uses)source={"public","mev_share"}label propagated through detection → arb publishtois not inpool_registry, drop unknown selectors before decoder is calledarbs.sourcecolumn (migration0003_add_source_to_arbs.sql) so DB rows carry the flow originaether_mempool_candidates_total{source}+aether_mempool_filtered_total{reason}Out of scope (separate issue)
Done when
arbsrows with bothsource=publicandsource=mev_shareto-not-in-registry filter)aether_pending_pipeline_lagged_total(queue not bottlenecking)Branch
feat/mempool-tracking-scaffold— currently 13 commits ahead ofdevelop, rebased clean.