ĞDev indexer

Tu suis le README de la branche master alors que tu es sur la branche fix/2/prod-and-dev-docker c’est pour ça.

2 Likes

@ManUtopiK donc tu mets à jour ton plugin fastify-hasura ou on le vire ? D’après les deux messages ci-dessus c’est pas clair. Est-ce que la solution de cgeek te parait bonne ?

On garde fastify-hasura, cgeek a une solution en tête pour faciliter le passage mode dev/prod

On garde car plus simple pour moi d’ajouter les nouveaux events avec mutation ainsi, on passera en SQL plus tard en opti…

J’ai pushé mon contournement ce jour : fix: fastify-hasura dependency (0c18b4b9) · Commits · Emmanuel Salomon / duniter-indexer · GitLab, branche fix/2/prod-and-dev-docker.

1 Like

La première version était dispo en juin 2022, mais tout a évolué un peu entre temps :

  • une nouvelle ĞDev
  • des modifications sur l’indexeur

Voici maintenant mes nouveaux endpoints:

Je vais pas tarder à publier peu de documentation pour en faire autant.
Merci @ManUtopiK et @poka pour le travail accompli, il ne manquait que quelques bricoles de docker et une documentation utilisateur.

4 Likes

J’ai installé l’indexer, j’ai déjà trouve quelques petites choses à améliorer. Pourrais-je avoir un accès pour faire une PR ?
Aussi, j’ai regardé les issues, sauf que ça manque de commentaires et donc je suis perdu quand à ce qu’il faut faire.

3 Likes

Voilà je viens de te créer un compte sur notre gitlab, tu as du recevoir un mail.

Pour les issues, je pense que le mieux est qu’on se fasse une visio pour discuter de tout ça plus naturellement. Ce weekend ou bien la semaine prochaine ?

@ManUtopiK tu sera avec nous ?

2 Likes

Super, merci beaucoup pour ta rapidité :+1:
Je suis dispo ce weekend, un peu moins la semaine, mais on peut se trouver un créneau suivant vos dispos.
Et merci de nous avoir ramené sur cette branche du forum, je l’avais cherchée en vain :smiley:

1 Like

Oui, je peux être là ! Pas forcément dispo ce week-end, mais je peux m’arranger.
J’essaye d’abord de finir le cms et le site. Je me remettrai sur l’indexer après…

3 Likes

tkt @ManUtopiK , concentre toi sur ce que tu fais, en attendant notre magicien du web préféré, on gère (enfin, on essai…). Au passage j’ai créé la variable gitlab est fait la chroot jail dans le container, ready to go.

@flodef dispo pour un jitsi demain à 14h par exemple ?

Ce sera là: jitsi.hadoly.fr/Axiom-Team

1 Like

J’y serai, à tout à l’heure :sunglasses:

Coucou,

Encore merci à @poka et ton temps consacré pour cette visio. J’ai appris plein de choses hyper intéressantes et motivantes…

Comme dit dans mon commit dans “f__k d__ker”, j’ai presque fini le typage. Il manque juste un fichier qui nécessite quelqu’un qui a conçu l’appli car impossible à déduire.
Sinon, j’ai rencontré plusieurs problèmes que je préfère poster ici car c’est plus rapide que rechercher (dans une botte de foin) la solution :

  • Dans la branche “f__k d__ker”, lorsque je lance pnpm dev:test (ou dev) j’ai une erreur “cannot connect with “flo” (PostgresError: password authentication failed for user “flo”)”, alors que dans la branche master, tout fonctionne parfaitement ! J’ai essayé quelques bidouilles sans succès.
  • Concernant l’événement Identity Removed, le seul paramètre retourné est index=6. C’est un peu léger pour que je puisse modifier la BDD. Surtout comparé aux autres événements déjà implémentés. C’est faisable, mais si on peut retourner plus d’info comme blockIndex, created_at, signer, ce serait top (ou alors ça les retourne déjà mais c’est invisible dans Polkatdot.js, faut que j’essaie demain).
  • Enfin, concernant gitlab, pourrait-on m’expliquer comment je peux mettre à jour ma branche depuis la branche principale ? Par exemple, après le commit de @poka, j’ai dû récupérer son code à la main … (j’ai recherché sur des forums, avec le mirroring, en vain). Sur Github, c’est proposé automatiquement.

Merci d’avance pour vos réponses :wink:

1 Like

Génial tout ce que tu as fait :heart_eyes:
Je n’ai pas eu le temps de regarder en détail encore, mais gros boulot sur le typage !!! Tu as même typé le client vuejs :rocket:

C’est quel fichier qui manque ?

Pour l’event Identity Removed, il faut voir avec @HugoTrentesaux, il saurait peut-être te dire les données que contient cet event.

Pour l’erreur dans ta branche, ça vient peut-être de là :_Typed code (!10) · Merge requests · nodes / duniter-indexer · GitLab

Pour gitlab, je ne sais pas si tu peux le faire depuis l’interface. Sinon, il faut faire ça en git en local.

1 Like

Super ! Merci de venir en renfort, on manquait vraiment de gens, c’était compliqué d’être sur tous les chantiers à la fois, et l’indexeur occupe une place centrale nécessaire à plusieurs avancées (dont certaines de @guenoel pour son stage par exemple).

C’est normal que cet événement ne contienne qu’un Identity Index. Tout le reste comme

doit provenir d’ailleurs. Par exemple le blockIndex, c’est juste le numéro de bloc dans lequel est l’événement, donc ça doit être disponible pour tous les événements via l’api. Pour created_at, c’est quelque chose qui doit être déjà mémorisé dans l’indexeur, Duniter n’a pas vocation à garder dans le state le bloc de création de chaque identité. Signer, c’est pas forcément pertinent, une identité peut être retirée dans plusieurs cas de figure comme la révocation explicite par l’utilisateur ou le retrait automatique suite à la perte d’adhésion.

Je pense qu’il nous faudrait aussi une visio pour échanger sur les fonctionnalités de Duniter, je te propose dès que j’ai un peu de visibilité sur mon emploi du temps, probablement vers mi-avril.

Pour ce qui est de docker et gitlab, on pourra voir ensemble parce que je ne comprends pas vraiment le problème.

1 Like

Je pose ça là :

Pensez-vous qu’une solution hybride composée de l’agrégation dans Hasura des deux API GraphQL de l’indexer générique Subsquid et de l’indexer Duniter est possible et souhaitable ?

Ainsi, l’indexer Duniter n’aurait qu’à compléter les manques de Subsquid avec les spécificités de la June.
Et les devs des clients n’auraient qu’un seul endpoint GraphQL à interroger.

2 Likes

On pourrait agréger les API pour diminuer le nombre de endpoints, mais ça risque de mener à confusion, par exemple si l’un des deux services est désynchronisé.

De plus, l’indexeur générique subsquid est utile pour débugger, mais il n’indexe que les événements eux-mêmes, pas leurs conséquences. Donc pour l’utiliser, je cherche le numéro de bloc d’un événement, et je vais demander le contenu de ce bloc à un nœud archive. On peut reproduire ce schéma dans les applis dans un premier temps, mais à mon avis ce serait une solution temporaire en attendant qu’on implémente ce qu’il faut dans l’indexeur.

3 Likes

@HugoTrentesaux ça te dit une d’organiser une petit atelier Subsquid en partage d’écran sur jitsi, qu’on regarde ça ensemble pour ceux que ça intéresse ?

Au niveau de l’indexer v2s, est-ce qu’il ne serait pas possible de récupérer directement le schéma de tous les événements via un call avec tous leurs arguments ? Parce-que c’est assez fastidieux de reproduire chaque événement avec des tests pour les décortiquer dans les logs, puis d’appliquer la bonne requête correspondante.

2 Likes

Un peu de vulgarisation sur ces indexeurs m’intéresserait.

3 Likes

Merci @ManUtopiK ,
Ca fait toujours plaisir de savoir que ce que j’ai fait est utile :smiley:

Le dernier fichier où il reste des erreur est GraphiQL.vue. Il y a des erreurs principalement sur l’objet window et je me demande comment les traiter, manquant de compétence en Vue.js (il me semble que pour injecter des paramètres, il est préférable d’utiliser l’objet window.global ?!)

Pour l’erreur dans ma branche, ça y’est, c’est corrigé. Merci beaucoup du tuyau.
@poka ==> peut être que ça résout ton problème ?!?

Pour gitlab, je suis preneur de conseil pour savoir comment mettre à jour ma branche avec les commit d’autres branches. Apparement, ça devrait arriver dans une prochaine version

Merci @HugoTrentesaux pour tes encouragements,

Grâce à @ManUtopiK et @poka , j’ai pu bien comprendre comment fonctionne l’indexeur et je me suis donc permis d’améliorer la documentation pour les prochains qui passeraient par là :smiley:

Je vais essayer de comprendre comment fonctionne les événements…
Et effectivement, une visio serait la bienvenue, quand tu pourras.
Enfin, je suis également partant pour en apprendre plus sur Subsquid :wink:

2 Likes