Features wishes for GVA (GraphQL Verificaton API)

List of wished features for the GVA (GraphQL Verificaton API) RFC:

Meta

  • API versioning
  • All request returning lists must have a limit (offset, limit) to avoid ddos.

Currency

Money

  • Current, (previous? next?) UD value
  • Block number/mediantime and UD value of reevaluation (Blocks with UD amount > previous UD block), like blockhain/with/ud, but blockchain/with/reevaluation
  • Account balance
  • Handle sources for a transaction : by telling only the issuers, the amount and the recipients, create the transaction object (handling the sources multiple conditions and the refound).
  • Account operation history with offset and limit (paginate) and within a time range.
  • Transaction times: treatedTime: when it enters the blockchain, receivedTime: when the transaction have been received in the mempool
  • List of UD created by a pubkey
  • Sources list should contain the timestamp of the tx referenced by the source, to evaluate condition with CSV() and CLVT().

WoT

  • Way/path to retrieve and to filter into the identities, the membership, and the certification documents (revocation? seems useless)
  • List memberships documents from an identity
  • Exclusions event over WebSocket: DeathReaper could listen the exclusions rather than listening to the blocks flow

Documents

  • Access mempool/sandbox documents: transactions, certifications, identities, membership, and revocation

Network

  • List of GVA endpoint of nodes with the latest version and on the consensus blockchain (real p2p clients)
  • Actives branches, in order for the client to be able to send documents (contents related to the branch) to this branches
3 J'aimes

La RFC est ici : https://git.duniter.org/nodes/common/doc/blob/graphql_api_rfc/rfc/0003%20RFC%20GraphQL%20API%20for%20Duniter%20Clients.md

Il faudra la mettre a jours en fonction des besoins qui auront été exposés ici.

En effet cela nous aiderait beaucoup que les développeurs des clients et autres logiciels tiers nous expriment leur besoin, on (nottament @ji_emme, @jsprenger et moi) vas essayer de faire au mieux mais on ne peut pas connaître les besoins aussi bien que vous :slight_smile:

1 J'aime

Je préfère lister ça dans un wiki.
Flemme de faire des git commit pour ça.
Ça viendra une fois que ce wiki se sera étoffé.

1 J'aime

T’inquiète je n’ai pas dit que tu devais le faire, je comptais de toute façon proposer des maj de la RFC régulièrement, je pourrais inclure ce qui est validé ici dans la foulée :slight_smile:

J’ai ajouté une demande dont j’ai besoin pour le support des conditions de lock/unlock complexes dans Sakia.

Pour résoudre les paramètres CSV(time) et CLTV(timestamp), j’ai besoin du timestamp de la source.
Hors cette info n’est pas dans la liste des sources fournie par BMA.
Je suis obligé de récupérer le timestamp de la transaction référencée par l’identifier de la source, mais encore faut-il que j’ai téléchargé la transaction correspondante dans ma base de donnée…

Bref, pour GVA, j’aimerais si possible avoir le timestamp directement dans l’objet source renvoyé.

Cela a sûrement des conséquences sur le débat des transactions qui survivent aux forks.

Mais cela me semble indispensable pour arriver à gérer facilement les échanges avec CSV, CLTV et par conséquent les échanges en Atomic swap, que Sakia va bientôt essayer de supporter.

1 J'aime