Comment obtenir les infos de config de blockchain dans squid?

Je désire obtenir de l’indexer la valeur du ss58_format.

Je désire également obtenir les infos de versions de squid.

Tout cela via l’API GraphQL. Est-ce possible ?

Car je ne vois pas de champ de ce type dans les docs de l’API GraphQL.

1 Like

Si on est d’accord que le ss58_format est bien le paramètre qui donne le préfixe des adresses SS58 ; donc G1… pour les adresses en v2,
je dirai que ce n’est pas inscrit dans la BDD exposée par l’indexeur, donc pas trouvable dans GraphQL.
De même, les infos de versions de squid étant des méta datas, ça me semble cohérent qu’elles ne figurent pas non plus dans cette BDD.

Mais peut-être que la question sous-entend quelque chose que je n’ai pas encore saisi…

Il me semble que ces valeurs ne sont pas directement accessibles via l’indexeur.

Pourquoi souhaites-tu récupérer le ss58_format ? Ce sera toujours 4450 sur la Ğ1 et la ĞTest. Est-ce pour gérer une ĞDev avec Duniter mock avec la valeur 42 ?

Il est possible d’obtenir la version de PostGraphile. Pourquoi souhaites-tu obtenir la version et autres info de squid ?

La valeur du ss58 format est importante pour distinguer les monnaies libres entre elles, comme l’est le hash du bloc Genesis.
Tikka étant un client multi monnaie, d’autres monnaie libres auront un ss58format différent, et il a donc besoin de ces valeurs.

La valeur de hash genesis est ignorée dans Tikka, si on se connecte sur localhost pour faciliter les tests. Mais alors je dois tester la valeur de ss58format pour éviter de corrompre la base de donnée.
J’ai fait cela pour le noeud substrate, et je me dis que ce serait bien d’avoir cette possibilité sur squid.

Pour la version, c’est surtout pour la version d’API. Il y a eu un gros changement de l’api squid, normal pour la phase de dev, mais il y en aura à l’avenir. Il serait bon de versionner l’api squid.

1 Like

Ok, je comprends ton cas d’usage qui nécessite de pouvoir obtenir le format ss58 via l’indexeur.

Squid est la partie qui processe des données. Hasura ou PostGraphile sont les parties qui gèrent l’api GraphQL. Je nomme l’ensemble l’indexeur : PostgreSQL + SubSquid + PostGraphile.
Le nom du composant qui gère GraphQL et sa version peuvent-être récupérées de cette manière :

1 Like

Je vois sur le net que les bonnes pratiques pour le versionnning graphql sont de faire évoluer l’api plutôt que la versionner.
En utilisant des directives sur les champs comme @deprecated(reason: “use new field insteed”).

Car finalement c’est surtout le schéma graphql qui est important pour le client. Plus que la version de squid finalement.

Et pour la valeur ss58 je me demande si on peut l’extraire d’une addresse de compte ?

En tout cas merci pour ton aide !

Dans le chemin /v1/graphql, d’autres versions/chemins (v2, v3) de l’API pourront être créés une fois que ça sera passé en prod.

address = "g1M5PtxdtmkVnaL6GFT94h6FW7MfF2rTfBitVkDtKX2kBTkQL"
from scalecodec.utils.ss58 import get_ss58_format
get_ss58_format(address)
4450
3 Likes