graphprotocol / graphprotocol/graph-node
Allow File Data Sources to update an entity
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Rust
- Sterne
- 3.2k
- Forks
- 1.1k
- Ø Merge
- 4 T. 1 Std.
- Gemergte PRs (30 T.)
- 1
Beschreibung
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)
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Keine Datei, kein Test und kein Einstiegspunkt ist benannt. Beginne damit nachzuverfolgen, wie Dateidatenquellen Entitäten speichern, und vergleiche diesen Pfad mit dem bestehenden kettenbasierten Upsert-Muster. Bestimme anschließend, wie die Blockzeit und die Reihenfolge innerhalb eines Blocks dargestellt werden. Als erledigt gilt die Aufgabe, wenn wiederholte Speichervorgänge den neuesten nach Blöcken geordneten Wert verwenden und die vorherige Entität vollständig überschreiben, ohne ein Upsert durchzuführen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- blockchain, rust
- Bereich
- backend, blockchain
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 25/100