Skip to content

[BUG] 10 fresh nginx-404 /api/v1/* surfaces: peers/mining/attest/anchor/wallet-balance (Bounty #305) #7298

Description

@jdjioe5-cpu

Summary

10 fresh /api/v1/* surfaces return HTTP 404 (nginx HTML 404 page) on BOTH https://rustchain.org and https://explorer.rustchain.org. These are the peers/mining/attest/anchor/wallet-balance/wallet-lookup canonical surfaces that any blockchain client, miner, or attestor would call.

Distinct from #7251 (37 surfaces, claim #13643), #7252 (36 surfaces, claim #13648), and #7297 (14 surfaces, claim #13735). Zero endpoint overlap with any of the three prior clusters.

Endpoints (10/10 verified 404 on BOTH subdomains)

# Path rustchain.org explorer.rustchain.org
1 /api/v1/peers 404 nginx 404 nginx
2 /api/v1/miners 404 nginx 404 nginx
3 /api/v1/mining 404 nginx 404 nginx
4 /api/v1/attest 404 nginx 404 nginx
5 /api/v1/attest/challenge 404 nginx 404 nginx
6 /api/v1/anchor 404 nginx 404 nginx
7 /api/v1/attestation 404 nginx 404 nginx
8 /api/v1/wallet/balance 404 nginx 404 nginx
9 /api/v1/wallet/lookup 404 nginx 404 nginx
10 /api/v1/blocks/recent 404 nginx 404 nginx

20/20 404s confirmed on 2026-06-10 18:36 UTC (10:36 CST).

Live reproduction

for path in /api/v1/peers /api/v1/miners /api/v1/mining /api/v1/attest \
            /api/v1/attest/challenge /api/v1/anchor /api/v1/attestation \
            /api/v1/wallet/balance /api/v1/wallet/lookup /api/v1/blocks/recent; do
  rc=$(curl -sk -o /dev/null -w "%{http_code}" --max-time 5 "https://rustchain.org${path}")
  ex=$(curl -sk -o /dev/null -w "%{http_code}" --max-time 5 "https://explorer.rustchain.org${path}")
  echo "$path  rustchain.org=$rc  explorer=$ex"
done

Output:

/api/v1/peers  rustchain.org=404  explorer=404
/api/v1/miners  rustchain.org=404  explorer=404
/api/v1/mining  rustchain.org=404  explorer=404
/api/v1/attest  rustchain.org=404  explorer=404
/api/v1/attest/challenge  rustchain.org=404  explorer=404
/api/v1/anchor  rustchain.org=404  explorer=404
/api/v1/attestation  rustchain.org=404  explorer=404
/api/v1/wallet/balance  rustchain.org=404  explorer=404
/api/v1/wallet/lookup  rustchain.org=404  explorer=404
/api/v1/blocks/recent  rustchain.org=404  explorer=404

Response sample (nginx 404)

HTTP/2 404
server: nginx
content-type: text/html
content-length: 146
x-frame-options: SAMEORIGIN
x-content-type-options: nosniff
x-rustchain: Proof-of-Antiquity

Body: <html><head><title>404 Not Found</title></head><body><center><h1>404 Not Found</h1></center><hr><center>nginx</center>

Why this is a fresh cluster, not a duplicate

Issue Claim Endpoints Overlap with this cluster
#7251 #13643 37 surfaces 0
#7252 #13648 36 surfaces 0
#7297 #13735 14 surfaces 0
this (new) 10 surfaces

The 10 paths here are exclusively the peers/mining/attest/anchor/wallet-balance/wallet-lookup cluster. None appear in any of the three prior claims. The closest related PR is my own #7152 (Bounty #305 fix7117), but that PR is for the bug of silent miner_id normalization on /wallet/balance, not for the 404 itself — the route's existence is unrelated to the validation work.

Severity

Functional bug. Each endpoint is unreachable to any client, miner, explorer frontend, or attestor that depends on it. The peers and mining surfaces are central to the consensus / mining UX; wallet-balance / wallet-lookup break the public wallet-query flow entirely; attest/challenge blocks the existing PR #7169 DoS hardening from being effective on a real client.

Suggested fix shape

The endpoints need to be registered in the Flask app. The /wallet/balance and /wallet/lookup routes are partially implemented in node/rustchain_v2_integrated_v2.2.1_rip200.py (the validation fix in PR #7152 already touches the query-string path), but the production routes are not being served. This is deployment drift, not a source-tree problem.

Reporter: @jdjioe5-cpu

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriagedReviewed and categorized

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions