Use this runbook to verify the existing Cipherscan application against
zinder-compat-cipherscan. It records acceptance boundaries, not a particular
environment run.
- Custom-composed
WalletQueryandExplorerQueryendpoints and the Cipherscan adapter are healthy on the same network. The release Compose file does not provide these native query endpoints. - The block-production time materialized view reports complete coverage through its materialized-view tip.
- Cipherscan uses the adapter as its API base URL without source changes.
- Required materialized views report complete coverage for the ranges under test.
Probe /api/mining/pool-distribution with no query, an empty period, each of
24h, 3d, 7d, 30d, 90d, 6m, 1y, and all, and one unknown token.
For every response, verify:
- The status is
200and the object has exactlygeneratedAt,period,pools, andtotalBlocks. - Every pool has exactly
address,blocks,name,share, andtotalFeesZat, withtotalFeesZatencoded as a decimal string. - The default and empty period echo
7d. A known period echoes itself. An unknown period echoes the supplied token while using the seven-day window. totalBlocksequals the sum of pool block counts, shares are finite and in[0, 1], and each fee total is the exact sum of retained paid-fee facts.- Two requests with the same effective raw period string within five minutes
return the same
generatedAt. Distinct raw strings use distinct cache keys. - A multi-page request remains valid while the chain extends. A reorg that displaces the frozen materialized-view tip invalidates the continuation.
Compare each response with the public testnet Cipherscan API by structure, types, period behavior, grouping semantics, and cache behavior. Moving windows may differ by blocks added between requests or by cache age; do not require identical totals. Historical source anomalies are not a compatibility target.
Open the unchanged local /mining page and exercise each period control it
renders. The distribution must leave its loading state and show the returned
total and pool groups. Failures in independently owned mining ranking,
hashrate-share, miner-behavior, or ZODL panels do not invalidate this route.
After projection or adapter changes, smoke-test the actively rendered workflows that already have complete coverage:
- home and chain status;
- blocks and one block detail;
- transactions and one transaction detail;
- mempool;
- one transparent address and the rich list;
- network and supply;
- value pools;
- privacy;
- migration;
- reorg history; and
- mining production.
For each workflow, require a successful primary request, rendered non-placeholder content, and no new application error caused by the change. Degraded panels listed as sidecar-owned or unavailable in the coverage matrix remain outside this regression boundary.