[Feature] Query all time-travel versions of an entity as a list

Abierto
#3,480 5 comentarios 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
graphql
Área
api, backend

Línea de trabajo

El issue proporciona un ejemplo de GraphQL para consultar versiones de viaje en el tiempo, pero no indica archivos, pruebas ni puntos de entrada de la implementación. Aclara primero el diseño del esquema y del almacenamiento con los maintainers; la definición de terminado debería incluir una consulta definida para las versiones históricas de las entidades y pruebas que cubran sus resultados.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

area/graphql Stale

Do you want to request a feature or report a bug?
Feature

What is the current behavior?
To query a time-travel version of an entity, you have to specify a block number/hash and you can only query one version at a time.

When you display the history of an entity, you need to store a separate immutable snapshot entity every time the main entity changes. It's a very OK strategy but feels like a waste when behind the scenes there's already a history stored in the database (if I'm not mistaken).

What is the expected behavior?
Enable to query all the time-travel versions of an entity, without any knowledge of blocks the entity changed at. Example of a GraphQL query:

query getBalanceHistory {
  balance(id: "example_id") {
    currentBalance
    timeTravelVersions(first: 10) { # This is a collection on every mutable entity where you can get all the time-travel versions from.
      currentBalance
      blockNumber
    }
  }
}

Why do I need this?
To do historical visualizations of entities (namely balances).

Lenguaje dominante
Rust
Estrellas
3.2k
Forks
1.1k
Merge medio
4 d 1 h
PR fusionados (30 d)
1

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de graphprotocol/graph-node

Todos los issues de graphprotocol/graph-node

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.