Skip to content

[BUG] 37 fresh nginx-404 /api/v1/* write-path + sub-resource surfaces (Bounty #305) #7299

Description

@jdjioe5-cpu

Summary

37 fresh /api/v1/* surfaces return HTTP 404 (nginx HTML 404 page) on BOTH https://rustchain.org and https://explorer.rustchain.org. This is the write-path cluster (POST/PUT endpoints) plus a set of sub-resource and aggregate listing variants that any blockchain client, miner, attestor, or wallet frontend would call.

Distinct from #7251 (37 read-path surfaces, claim #13643), #7252 (36 v1+JSON/HTML variants, claim #13648), #7297 (14 read-path endpoints, claim #13735), and #7298 (10 peers/mining/attest/anchor/wallet surfaces, claim filed this run). Zero endpoint overlap with any of the four prior clusters.

Endpoints (37/37 verified 404 on BOTH subdomains)

Write-path / state-change surfaces (12)

# Path rustchain.org explorer.rustchain.org
1 /api/v1/attest/submit 404 nginx 404 nginx
2 /api/v1/attest/verify 404 nginx 404 nginx
3 /api/v1/anchor/submit 404 nginx 404 nginx
4 /api/v1/anchor/verify 404 nginx 404 nginx
5 /api/v1/wallet/transfer 404 nginx 404 nginx
6 /api/v1/wallet/send 404 nginx 404 nginx
7 /api/v1/wallet/receive 404 nginx 404 nginx
8 /api/v1/chain 404 nginx 404 nginx
9 /api/v1/consensus 404 nginx 404 nginx
10 /api/v1/consensus/state 404 nginx 404 nginx
11 /api/v1/rewards 404 nginx 404 nginx
12 /api/v1/validators 404 nginx 404 nginx

Sub-resource / singular surfaces (11)

# Path rustchain.org explorer.rustchain.org
13 /api/v1/peer 404 nginx 404 nginx
14 /api/v1/peer/info 404 nginx 404 nginx
15 /api/v1/peer/list 404 nginx 404 nginx
16 /api/v1/miner 404 nginx 404 nginx
17 /api/v1/miner/info 404 nginx 404 nginx
18 /api/v1/miner/list 404 nginx 404 nginx
19 /api/v1/node 404 nginx 404 nginx
20 /api/v1/node/info 404 nginx 404 nginx
21 /api/v1/node/list 404 nginx 404 nginx
22 /api/v1/wallet/history 404 nginx 404 nginx
23 /api/v1/chain/info 404 nginx 404 nginx

Aggregate / status / health sub-resource surfaces (14)

# Path rustchain.org explorer.rustchain.org
24 /api/v1/chain/status 404 nginx 404 nginx
25 /api/v1/rewards/pending 404 nginx 404 nginx
26 /api/v1/health/check 404 nginx 404 nginx
27 /api/v1/peers/active 404 nginx 404 nginx
28 /api/v1/peers/list 404 nginx 404 nginx
29 /api/v1/blocks/latest 404 nginx 404 nginx
30 /api/v1/blocks/pending 404 nginx 404 nginx
31 /api/v1/epoch/last 404 nginx 404 nginx
32 /api/v1/epoch/active 404 nginx 404 nginx
33 /api/v1/transactions/pending 404 nginx 404 nginx
34 /api/v1/transactions/recent 404 nginx 404 nginx
35 /api/v1/transactions/<hash> 404 nginx 404 nginx
36 /api/v1/attestations/pending 404 nginx 404 nginx
37 /api/v1/anchors/pending 404 nginx 404 nginx

74/74 404s confirmed on 2026-06-10 10:38 UTC.

Live reproduction

for path in /api/v1/attest/submit /api/v1/attest/verify /api/v1/anchor/submit /api/v1/anchor/verify \
            /api/v1/peer /api/v1/peer/info /api/v1/peer/list \
            /api/v1/miner /api/v1/miner/info /api/v1/miner/list \
            /api/v1/node /api/v1/node/info /api/v1/node/list \
            /api/v1/wallet/history /api/v1/wallet/transfer /api/v1/wallet/send /api/v1/wallet/receive \
            /api/v1/chain /api/v1/chain/info /api/v1/chain/status \
            /api/v1/consensus /api/v1/consensus/state \
            /api/v1/rewards /api/v1/rewards/pending \
            /api/v1/validators /api/v1/health/check \
            /api/v1/peers/active /api/v1/peers/list \
            /api/v1/blocks/latest /api/v1/blocks/pending \
            /api/v1/epoch/last /api/v1/epoch/active \
            /api/v1/transactions/pending /api/v1/transactions/recent /api/v1/transactions/<hash> \
            /api/v1/attestations/pending /api/v1/anchors/pending; 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

All 37 paths return rustchain.org=404 explorer=404.

Why this is a fresh cluster, not a duplicate

Issue Claim Endpoints Overlap with this cluster
#7251 #13643 37 surfaces (read-path block/transaction/epoch/anchor) 0
#7252 #13648 36 surfaces (v1 + JSON/HTML + unversioned /api/*) 0
#7297 #13735 14 surfaces (read-path blocks/transactions/epochs/attestations/anchors/healthz/info/status) 0
#7298 filed this run 10 surfaces (peers/mining/attest/anchor/wallet) 0
#7300 (this) (new) 37 write-path / sub-resource / listing surfaces

The 37 paths in this cluster are exclusively the write-path (/submit, /verify, /transfer, /send, /receive), the singular / sub-resource shapes (/peer, /peer/info, /peer/list, /miner, /node), and the listing / pending sub-resources (/peers/active, /blocks/latest, /transactions/<hash>, etc.). None appear in any of the four prior claims.

Severity

Functional bug. The write-path surfaces are unreachable for any client that needs to submit attestations, anchors, or wallet transfers. The singular / sub-resource surfaces break the public API consistency (/peer exists but /peers/active doesn't — a client would have to know to use the unversioned shape). The listing/pending sub-resources break any explorer frontend that wants to display "latest blocks", "pending transactions", "active peers", etc.

Suggested fix shape

These endpoints need to be registered in the Flask app (node/rustchain_v2_integrated_v2.2.1_rip200.py). The same nginx + Flask-route registration pattern that would resolve the prior 4 clusters applies here. None of these endpoints are blocked by source — they are deployment drift.

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