graphprotocol / graphprotocol/graph-node

IPFS File Datasource warning messages

Aperta
#6,156 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

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

Descrizione

Hi,

I have deployed a subgraph in Subgraph studio.

I'm testing a IPFS File Datasource to gather off-chain metadata info into a chain based handler.

The entity of the off-chain data is defined as:

type IpfsMetadata @entity {
  id: Bytes!
  metaData: String!
}

The event driven entity is linked this way

type AssetTransfer @entity {
  id: Bytes!
  tokenId: BigInt!
  cid: String!
  metaData: IpfsMetadata 
}

In mappings file, the following event handler set the relationship:

export function handleAssetTransfer(event: AssetTransferEvent): void {

  let entity = new AsssetTransfer(idBytes);

  const cid = event.params.cid;

  entity.metaData = Bytes.fromUTF8(cid);

  IpfsMetadataTemplate.create(cid);

               .....

}

I have the following content handler:

export function handleIpfsContent(content: Bytes): void {

  let cid = dataSource.stringParam();
  let ipfs = new IpfsMetadata(Bytes.fromUTF8(cid));
  ipfs.metaData = content.toString();
  ipfs.save();
}

Currently, cid are always the same for every indexed event (it's a normal use case), so the following warning is shown through the dashboard after the first IpfsMetadata entity is created:

"no runtime host created, there is already a runtime host instantiated for this data source, address: xxxxxxx, name: IpfsMetadata, runner_index: 1246"

When I query the index to check the AssetTransfer entities, all of them are successfully linked to the unique IpfsMetadata entity, so everything seems to work fine.

However, I don't like the warning log at every new indexed event when cid parameter is repeated.

As entities associated with File Data Sources cannot be accessed by chain-based handlers, there is no way to check whether the IpfsMetada entity does exist to prevent creating a new file datasource template.

Shoud I be aware of the logged message?
Is there any other thing I can do to prevent the warning log?

Best regards

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

Inizia riproducendo il flusso di CID ripetuto descritto intorno a IpfsMetadataTemplate.create(cid) e all’handler handleIpfsContent. Esamina come la creazione ripetuta di datasource di file IPFS produca l’avviso relativo al runtime host, quindi verifica se l’avviso è innocuo e se è possibile evitare la creazione ripetuta senza modificare il comportamento delle relazioni tra entità.

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

Valutazione

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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.