graphprotocol / graphprotocol/graph-node

Allow File Data Sources to update an entity

Aperta
#4,087 8 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

offchain
Lingua principale
Rust
Stelle
3.2k
Fork
1.1k
Merge medio
4g 1h
PR unite (30g)
1

Descrizione

Currently, different File Data Sources can create multiple entities with the same ID.

File Data Sources should instead be able to update an entity with the same ID. Note that this will not be an upsert, which is the current pattern that is used for chain-based data sources. Instead this should completely overwrite the prior entity.

Situation:

file data source A created in block 1
A is found, saves entity X
file data source B created in block 5
file data source C created in block 10
C is found, saves entity X again <-- this is the most recent
B is found, saves entity X again

Entity updates should apply a "most recent wins" approach, where the time is determined by block time, not handler execution time. This is a new pattern (where entities might be created with closed block ranges), and order will need to be resolved within blocks (as well as between blocks)

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

Non viene indicato alcun file, test o punto di ingresso. Inizia tracciando il modo in cui le origini dati dei file salvano le entità e confronta quel percorso con il pattern di upsert basato su chain esistente, quindi determina come vengono rappresentati il tempo del blocco e l'ordine all'interno di un blocco. Il lavoro è completato quando i salvataggi ripetuti usano il valore più recente ordinato per blocco e sovrascrivono completamente l'entità precedente senza eseguire un upsert.

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

Valutazione

Stack tecnologico
blockchain, rust
Ambito
backend, blockchain
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.