Skip to content

feat: refuse requests for a chain the subgraph doesn't index - #758

Open
MoonBoi9001 wants to merge 4 commits into
mb9/review-redpandafrom
mb9/check-request-chain-matches-subgraph-manifest
Open

MoonBoi9001 wants to merge 4 commits into
mb9/review-redpandafrom
mb9/check-request-chain-matches-subgraph-manifest

Conversation

@MoonBoi9001

@MoonBoi9001 MoonBoi9001 commented Oct 22, 2026 •

Copy link
Copy Markdown
Member

The Dipper reads each requested subgraph's manifest from IPFS and refuses a request for indexers whose chain doesn't match it or whose manifest IPFS lacks, while cancels skip the check so a request stored under the wrong chain can still be closed. If IPFS can't be reached the admin RPC answers 503 and the Studio consumer retries, a dropped Studio request raises the studio_request_chain_refused alert, and request_chain_check.enabled turns the check off.

The CLI reads which network a subgraph indexes from its manifest and looks up the chain ID.
That logic moves into dipper-core behind a manifest feature, so the service can reuse it.
A request's chain was trusted as sent, so a wrong one priced and placed agreements on another
chain. Requests for indexers are now checked against the manifest on IPFS; cancels are not.
IPFS takes about 30s to say a manifest is missing, past the 10s wait, so it was retried forever.
A 4xx is now final, the wait is 45s and the CLI shares the read. Errors and logs leave out the
IPFS URL, which can carry credentials, and a zero wait is refused at startup.
The consumer skips a Studio record whose chain does not match its manifest, and Studio is never
told. It now logs studio_request_chain_refused, which is in the default alert list.
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