Skip to content

dashboard: a Slipstream page (#84, onto main) - #85

Merged
rsantacroce merged 5 commits into
mainfrom
feat/slipstream-service
Sep 29, 2026
Merged

rsantacroce merged 5 commits into
mainfrom
feat/slipstream-service

Conversation

@rsantacroce

Copy link
Copy Markdown
Collaborator

#84 was stacked on #83's branch. It merged 11 seconds after #83, before GitHub retargeted it to main, so it landed in feat/slipstream-service and never reached main. This PR carries it the rest of the way.

The diff is exactly #84's dashboard change:

  • The public /slipstream page. It is shown in the nav only when SLIPSTREAM_API_URL is set, and has four parts:
    • Fees: the minimum submission rate, the current mineable rate, and what is required now.
    • Submit: how to submit, and a link to info.json.
    • Recent transactions: each with its status, and whether the pool or another pool mined its block.
  • dashboard/lib/slipstream.js reads the service's API, never slipstream.db. If the service is down, the page costs one card, not the page.
  • The dashboard env in docker-compose.yml, plus dashboard/README.md.

There is no admin withdraw action, because Core has no RPC to take a tx back out of its mempool.

Tested in #84: 4 new tests, and the full dashboard suite (193) passes.

rsantacroce and others added 5 commits September 25, 2026 20:20
With SLIPSTREAM_API_URL set, the public nav gains /slipstream: the
minimum submission rate and current mineable rate, how to submit, and
each recent tx with where it stands -- in template, mined (ours or not),
confirmed, dropped with its reason. The page reads the slipstream
service's API rather than slipstream.db, so the service stays the only
owner of its schema, and a service that is down costs the page one card.

Admin -> Tools lists the txs still open, each with a Withdraw button.
That calls removeslipstreamtx on the enforcer, which holds the txs; the
service records the tx as dropped (withdrawn) on its next poll.
Slipstream txs now go to the pool's bitcoind instead of an enforcer-side
pool, and Core has no RPC to take a tx back out of its mempool, so there
is nothing for the button to call. The admin router and Tools page are
back as they were; the public /slipstream page stays, with its intro
saying what is now true: an accepted tx is broadcast, and another pool
may mine it first.
@rsantacroce
rsantacroce merged commit 599e5ff into main Sep 29, 2026
8 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