graphprotocol / graphprotocol/graph-node
Indexing completely fails if firehose goes down
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 3.2k
- Forks
- 1.1k
- Avg merge
- 4d 1h
- Merged PRs (30d)
- 1
Description
Do you want to request a feature or report a bug?
Bug
What is the current behavior?
I'm running graph-node version 0.27.
My graph node is configured with both an RPC provider and a firehose source like so:
[chains.mainnet]
shard = "primary"
provider = [
{ label = "mainnet-default", transport = "rpc", url = "<url to rpc provider>", features = [] },
{ label = "firehose", details = { type = "firehose", url = "<url to firehose>" }},
]
If I start graph-node and then kill my firehose instance, all indexing seems to stop, even though the rpc provider is still available.
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem.
- start a firehose grpc server
- start a graph node with a rpc and firehose provier
- deploy a subgraph and verify that graph node starts indexing
- kill the firehose server
- deploy a new subgraph
- see the new subgraph never starts indexing
What is the expected behavior?
I expect graph-node to gracefully fall back to the rpc provider when the firehose server isn't available (whether that's due to network issues or internal errors in the firehose server or anything else).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the issue with the [chains.mainnet] configuration containing both RPC and firehose providers: start indexing, stop the firehose server, and deploy a new subgraph. Inspect provider selection and indexing startup behavior, then verify that the new subgraph begins indexing through RPC when firehose is unavailable.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- grpc, rust
- Domain
- backend, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100