graphprotocol / graphprotocol/graph-node

Separate IPFS file hosting: subgraph core files vs. arbitrary use files

Open
#5,572 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area/ipfs hardening infra Stale
Dominant language
Rust
Stars
3.2k
Forks
1.1k
Avg merge
4d 1h
Merged PRs (30d)
1

Description

Background

We have two major classes of files hosted on IPFS: core subgraph files (manifests, schemas, mappings) and files to be synced by subgraphs with file data sources (arbitrary user files such as images, and text documents).

I propose we separate the storage and access points for these two classes of files in order to provide better fault separation, and to prioritize robustness of the core subgraph file hosting.

Proposal

Let's setup a new IPFS gateway for subgraph core files, ensure only core subgraph files are pinned and accessed via that gateway, and start to use IPFS cluster for other core devs and indexers to begin hosting these files too. For now the arbitrary file hosting can use the existing paradigm until we redesign that setup. In the meantime at least the subgraph core file hosting will be robust and fast for network participants.

Tasks

  • Setup new IPFS gateway for subgraph core files, located at ipfs.network.thegraph.com/subgraphs (just a strawman URL, let's discuss)
  • Protect subgraph core IPFS with middleware and configurations that only allows subgraph core files to be pinned to it and accessed from it.
  • Update graph-node to use different IPFS gateways for subgraph core objects then it does for FDS files. Needs plan. Do we supply a single IPFS gateway URL and the graph-node uses different paths for each gateway /files or /subgraphs? Or do we allow operator to supply different endpoints for each?
  • Setup IPFS cluster for the subgraph core IPFS gateway and bring in at least one operator running a node.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names graph-node, separate IPFS gateway paths (/files and /subgraphs), middleware and configuration, and IPFS cluster, but no files or tests. Start by turning the gateway and operator requirements into a concrete plan; done means core subgraph files use separate protected hosting while arbitrary file hosting remains on the existing setup.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend, distributed-systems, infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.