Skip to content

Promote: fix: repair Mining pool ranking (explorer.pool-ranking) - #165

Merged
bitcoinuniverseadmin merged 4 commits into
mainfrom
develop
Oct 12, 2026
Merged

bitcoinuniverseadmin merged 4 commits into
mainfrom
develop

Conversation

@bitcoinuniverseadmin

Copy link
Copy Markdown

Fixed a backend stall that can keep the pool ranking chart from drawing, but nothing was verified: I could not probe the live site or run any check in this sandbox.

What I could not confirm: curl to explorer.bitcoinuniverse.io was blocked, so I never saw the failing response. The cause below is traced from source only.

Likely cause: the page (PoolRankingComponent) draws its pie from GET /api/v1/mining/pools/:interval and gives up after 20 seconds. That route (Mining.$getPoolsStats in backend/src/api/mining/mining.ts) reads the ranking from the database, then makes three sequential getnetworkhashps calls to Bitcoin Core on the shared bulk RPC pool. Each call may wait up to CORE_RPC.TIMEOUT (60 s in the sample config). A node busy with indexing can therefore hold the response for up to about 180 s, although the ranking is already complete from the database. The browser times out, shows the error panel, and no chart is drawn.

Fix: the three hashrate estimates now share one 5 second budget. If the node does not answer in time, the route returns the indexed ranking with the existing zero hashrate fallback, and no further RPC calls are issued after the budget expires. Route shape and frontend are unchanged. I added a jest test for the busy-node and healthy-node cases.

Not run: the worktree has no node_modules and npm ci was blocked, so the new test, tsc and lint have not been executed. Run in backend: npx jest src/tests/mining-pools-stats-deadline.test.ts, plus npm run lint

Found by a live Universe X journey (run run_IzL6X5SYEhoc) and repaired automatically. Checks reported by the fixer: Live probe of https://explorer.bitcoinuniverse.io/api/v1/mining/pools/* with curl: blocked by sandbox permissions, not run, npm ci in backend to run jest: blocked by sandbox permissions, not run, jest backend/src/tests/mining-pools-stats-deadline.test.ts: not run (no node_modules in worktree), g.

🤖 Generated with Claude Code

Fixed a backend stall that can keep the pool ranking chart from drawing, but nothing was verified: I could not probe the live site or run any check in this sandbox.

What I could not confirm: curl to explorer.bitcoinuniverse.io was blocked, so I never saw the failing response. The cause below is traced from source only.

Likely cause: the page (PoolRankingComponent) draws its pie from GET /api/v1/mining/pools/:interval and gives up after 20 seconds. That route (Mining.$getPoolsStats in backend/s

Prepared by Universe X run run_IzL6X5SYEhoc. Not released.
Fix made but NOT verified: no test, lint or build could run (no node_modules in this worktree), and the live failure reason was not confirmed (requests to the live site were denied, no server access).

Defect fixed: the home dashboard printed a backend failure to visitors. Whenever the mempool backend marks its replacement (RBF) history unavailable, or no summary arrives within 35 seconds, the "Recent replacements" panel rendered the alert "Replacement history is unavailable." plus a Retry butto

Prepared by Universe X run run_CCC_6nk3-0Kr. Not released.
…-ranking-SYEhoc

fix: repair Mining pool ranking (explorer.pool-ranking)
…board-k3x0Kr

fix: repair Live Bitcoin dashboard (explorer.dashboard)
@bitcoinuniverseadmin
bitcoinuniverseadmin merged commit ddb957f into main Oct 12, 2026
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