feat(vendor): add The Graph + pattern: Reproducible Audit Extraction - #186
Open
p-diogo wants to merge 1 commit into
Open
feat(vendor): add The Graph + pattern: Reproducible Audit Extraction#186p-diogo wants to merge 1 commit into
p-diogo wants to merge 1 commit into
Conversation
p-diogo
force-pushed
the
feat/vendor-the-graph
branch
from
August 5, 2026 23:34
56de416 to
cde2eb9
Compare
rymnc
reviewed
Sep 4, 2026
rymnc
left a comment
Member
There was a problem hiding this comment.
hello! thank you for your PR, attached some comments in-line
| last_reviewed: 2026-07-16 | ||
|
|
||
| works-best-when: | ||
| - An auditor, regulator, or counterparty must verify that disclosed or reported figures reflect the complete set of on-chain emissions, not a curated subset. |
Member
There was a problem hiding this comment.
Suggested change
| - An auditor, regulator, or counterparty must verify that disclosed or reported figures reflect the complete set of on-chain emissions, not a curated subset. | |
| - An auditor, regulator, or counterparty must verify that disclosed or reported figures reflect the complete set of on-chain events, not a curated subset. |
Comment on lines
+45
to
+63
| open_source_implementations: | ||
| - url: https://github.com/streamingfast/firehose-core | ||
| description: "Firehose: deterministic, content-addressed flat-file extraction of chain history (The Graph / StreamingFast, Apache 2.0)" | ||
| language: "Go" | ||
| - url: https://github.com/streamingfast/substreams | ||
| description: "Substreams: deterministic WASM transform modules over Firehose files (Apache 2.0)" | ||
| language: "Rust" | ||
| - url: https://github.com/TrueBlocks/trueblocks-core | ||
| description: "TrueBlocks: local, reproducible index of Ethereum address appearances (GPL-3.0)" | ||
| language: "Go" | ||
| - url: https://github.com/paradigmxyz/cryo | ||
| description: "cryo: deterministic extraction of chain data to Parquet/CSV datasets (Apache 2.0)" | ||
| language: "Rust" | ||
| - url: https://github.com/graphprotocol/graph-node | ||
| description: "graph-node: deterministic indexing of extracted data into a queryable entity store, with proofs of indexing over the result (Apache 2.0)" | ||
| language: "Rust" | ||
| - url: https://github.com/subsquid/squid-sdk | ||
| description: "Subsquid: independent indexing framework serving queryable indexes over extracted chain data (Apache 2.0)" | ||
| language: "TypeScript" |
Member
There was a problem hiding this comment.
do all of these implement reproducible audit extraction?
| maturity: production | ||
| --- | ||
|
|
||
| # The Graph – Firehose, Substreams, Subgraphs (decentralized indexing and query infrastructure) |
Member
There was a problem hiding this comment.
Suggested change
| # The Graph – Firehose, Substreams, Subgraphs (decentralized indexing and query infrastructure) | |
| # The Graph (decentralized indexing and query infrastructure) |
|
|
||
| ## What it is | ||
|
|
||
| An open source indexing stack. 76 networks are supported for subgraph indexing; on 23 of them (18 mainnets, including Ethereum) subgraphs are served by a decentralized network of independent, GRT-staked indexers. The Graph indexes public chain state and is not a privacy technology. Its role in privacy architectures is the read and audit path: deterministic, re-executable extraction and serving of the public artifacts confidential systems emit (commitments, nullifiers, anchored roots, attestation logs), so auditors and regulators can check disclosures against an independently recomputable record of on-chain emissions. |
Member
There was a problem hiding this comment.
Suggested change
| An open source indexing stack. 76 networks are supported for subgraph indexing; on 23 of them (18 mainnets, including Ethereum) subgraphs are served by a decentralized network of independent, GRT-staked indexers. The Graph indexes public chain state and is not a privacy technology. Its role in privacy architectures is the read and audit path: deterministic, re-executable extraction and serving of the public artifacts confidential systems emit (commitments, nullifiers, anchored roots, attestation logs), so auditors and regulators can check disclosures against an independently recomputable record of on-chain emissions. | |
| An open source indexing stack. 76 networks are supported for subgraph indexing; on 23 of them (18 mainnets, including Ethereum) subgraphs are served by a decentralized network of independent indexers. The Graph indexes public chain state and is not a privacy technology. Its role in privacy architectures is the read and audit path: deterministic, re-executable extraction and serving of the public artifacts confidential systems emit (commitments, nullifiers, anchored roots, attestation logs), so auditors and regulators can check disclosures against an independently recomputable record of on-chain emissions. |
Comment on lines
+36
to
+41
| - **Subgraphs** are the indexing data service: mappings turn contract events into a typed entity store queried over GraphQL. On the decentralized network since 2020: independent indexers serve each deployment with proofs of indexing and signed response attestations. | ||
| - **Substreams** is the streaming transform engine: deterministic, composable Rust modules over raw block data with high-throughput parallel backfill, feeding SQL, file, and custom sinks. In production since 2023, run self-hosted or bought from a hosted operator. It is not yet a data service on the decentralized network, so a Substreams result carries no indexer attestation and no dispute path. Determinism is its trust mechanism: anyone can re-run it and compare. The network supplies a different one, attributability, where an indexer stakes collateral against the answer it signs. Subgraphs on the network have both. | ||
| - **Firehose** is the extraction layer beneath Substreams, also usable by other indexing systems: full chain history captured as deterministic, content-addressed flat files surviving execution-layer history pruning (EIP-4444); open source tooling recomputes receipt and transaction roots from extracted data and proves pre-Merge block inclusion against Ethereum's canonical header accumulator. | ||
| - **Decentralized network:** publishing is permissionless; indexers stake GRT and serve queries for fees. Paid responses carry EIP-712 signed attestations binding request and response hashes to the indexer's staked allocation; conflicting attestations ground an on-chain dispute settled by arbitration with slashing. Attestations are signatures, not validity proofs: responses become non-repudiable and slashable. | ||
| - **Gateways:** optional open source routing; anyone can operate one; clients can query indexers directly or pin one to cross-check. | ||
| - **Hosted delivery** is the common enterprise path: a single operator runs Firehose, Substreams, or subgraph APIs under contract. Open source core, but deployment, billing and API layers are proprietary; one operator can exclude a customer and attestations become contractual terms. The self-hosting exit stays open but is operationally heavy. |
Member
There was a problem hiding this comment.
can we make this more concise, please?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What are you adding?
Description
Adds
vendors/the-graph.mdandpatterns/pattern-reproducible-audit-extraction.md.The gap
Several cards assume a read leg without naming it.
pattern-l2-encrypted-offchain-audit,pattern-regulatory-disclosure-keys-proofsandpattern-commit-and-proveall depend on someone serving the anchors an auditor checks a disclosure against, without saying who does that or what makes it trustworthy.The pattern
Reproducible Audit Extraction fills that in: deterministic extraction to content-addressed inputs, a versioned transform, and a re-execution manifest, so a verifier can re-derive the figure byte-identically and pin any disagreement to a specific input or code version.
No implementation is named in the body,
composes_withpoints at four of your cards, andopen_source_implementationslists six tools, three of which aren't ours.The limits are stated rather than implied: re-execution is the trust mechanism, a serving layer never replaces it, completeness covers on-chain emissions rather than off-chain reality, and attestations are signatures rather than validity proofs.
The vendor entry
We build one implementation of it. The card grades itself down where that's accurate: query privacy is absent, there is no SLA, and hosted delivery reintroduces single-operator trust.
On CROPS
I left the per-card table out because it looks like you've moved away from it. #130 added
QA-AUDIT.md, whose item 6 settled on 2026-06-24 to treat CROPS as a selection guideline rather than per-card scoring, and the same PR stripped the inline profile fromvendors/peer.md.Also, the vendor
_template.mdstill shows the table, though it hasn't changed since March. Either way the four dimensions are covered in the card's prose. Happy to add the table if you would rather have it.Checklist