Skip to content

feat(vendor): add The Graph + pattern: Reproducible Audit Extraction - #186

Open
p-diogo wants to merge 1 commit into
ethsystems:masterfrom
graphprotocol:feat/vendor-the-graph
Open

feat(vendor): add The Graph + pattern: Reproducible Audit Extraction#186
p-diogo wants to merge 1 commit into
ethsystems:masterfrom
graphprotocol:feat/vendor-the-graph

Conversation

@p-diogo

@p-diogo p-diogo commented Aug 5, 2026

Copy link
Copy Markdown

What are you adding?

  • Vendor/Protocol
  • Enterprise Use Case
  • Update to existing content
  • Pattern

Description

Adds vendors/the-graph.md and patterns/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-proofs and pattern-commit-and-prove all 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_with points at four of your cards, and open_source_implementations lists 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 from vendors/peer.md.

Also, the vendor _template.md still 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

  • I've checked this doesn't duplicate existing content
  • All links work
  • Info is accurate

@p-diogo
p-diogo force-pushed the feat/vendor-the-graph branch from 56de416 to cde2eb9 Compare August 5, 2026 23:34

@rymnc rymnc left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do all of these implement reproducible audit extraction?

Comment thread vendors/the-graph.md
maturity: production
---

# The Graph – Firehose, Substreams, Subgraphs (decentralized indexing and query infrastructure)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# The Graph – Firehose, Substreams, Subgraphs (decentralized indexing and query infrastructure)
# The Graph (decentralized indexing and query infrastructure)

Comment thread vendors/the-graph.md

## 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.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 thread vendors/the-graph.md
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.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we make this more concise, please?

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.

2 participants