Je profite de cette interrogation pour donner mon point de vue sur squid.
Position dans l’écosystème
Squid permet d’accéder plus facilement à des infos disponibles en blockchain et facilite ainsi le travail des développeurs d’applications qui n’ont pas à recoder une sorte d’indexation locale comme le fait polkadotjs. Le périmètre de squid est défini par les besoins des applications, il permet en quelque sorte une mutualisation des développements en déléguant les calculs à un tiers plutôt que de les faire côté client.
Cela a plusieurs conséquences :
- il est plus facile de proposer des fonctionnalités “complexes” dans les applications en ayant recours à squid
- les applications qui reposent sur squid perdent partiellement en utilisabilité si elles n’ont pas accès à squid
- la stabilité des instances squid est apprécié, mais le nombre requis n’est pas très élevé, un peu de redondance suffit
Maturité du logiciel
Il n’y a pas tellement de “dette technique” sur squid, il est fonctionnel, opérationnel, et plutôt stable comme l’ont montré les tests. Il reste quelques craintes et interrogations, mais rien n’est vraiment bloquant. Les tickets squid sont plutôt à jour et disponible ici : Issues · nodes / duniter-squid · GitLab.
Parmi les craintes :
- La requête sur l’historique des DU par identité est fausse, et doit être corrigée. En attendant, les applications doivent prendre l’historique global des DU et retirer ceux où l’identité ciblée n’était pas membre.
- L’ajout d’un champ “total balance” avec le montant total d’un compte (solde + DU non réclamés) est délicate à réaliser avec la couche graphql actuelle et donne envie de changer le moteur graphql de hasura vers postgraphile (feat: PostGraphile as GraphQL engine 🫣 (!31) · Merge requests · nodes / duniter-squid · GitLab). Cela implique quelques changement cassants pour les applications qui utilisent squid.
- Il reste quelques bugs rares qui crashent squid et dont nous ne comprenons pas l’origine.
Démarrage d’un nouveau réseau
La mise en marche des indexeurs se fait avec un petit délai sur le réseau Duniter. Lors du dernier démarrage, ce délai a été de 3h, mais en incluant la correction d’un bug lié au changement de préfixe SS58 : Travail suite au lancement ĞTest. On peut donc tabler sur moins d’une heure en conditions optimales. Cela nécessite cependant de produire les images docker, mais une fois ces images produites, c’est simple de démarrer un noeud.
Conclusion, pas trop de soucis à se faire du côté de squid, j’avais surtout envie d’avancer dessus pour réaliser des fonctionnalités utiles pour d’autres sujets notamment le suivi des évaluations de la règle de distance par l’oracle.