graphprotocol / graphprotocol/graph-node

Indexing completely fails if firehose goes down

Aperta
#4,115 6 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

firehose indexer experience Stale
Lingua principale
Rust
Stelle
3.2k
Fork
1.1k
Merge medio
4g 1h
PR unite (30g)
1

Descrizione

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.

  1. start a firehose grpc server
  2. start a graph node with a rpc and firehose provier
  3. deploy a subgraph and verify that graph node starts indexing
  4. kill the firehose server
  5. deploy a new subgraph
  6. 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).

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Riproduci il problema con la configurazione [chains.mainnet] contenente provider RPC e firehose: avvia l’indicizzazione, arresta il server firehose e distribuisci un nuovo subgraph. Esamina la selezione dei provider e il comportamento all’avvio dell’indicizzazione, quindi verifica che il nuovo subgraph inizi a indicizzare tramite RPC quando firehose non è disponibile.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
grpc, rust
Ambito
backend, distributed-systems
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.