Error sur l'indexeur

Bonjour @HugoTrentesaux ,

Depuis ce matin, je suis bloqué par la cors policy du squid “https://squid.gdev.coinduf.eu/v1beta1/relay
image

Y’a t-il eu un changement récemment?

1 Like

Je ne sais pas ce qui se passe, mais Gecko affiche “No valid indexer found =(”

Il semblerais que tous les indexers et datapod soient impactés

Cc @poka
@HugoTrentesaux

1 Like

Est-ce que quelqu’un sait de quoi il retourne ?
Y a-t-il eu une mise à jour récemment ?

J’ai un problème similaire.

En utilisant le plugin FF Altair, ou mon client Python, tous les squids publiques de la liste officielles sont injoignables. Erreur 502 gateway.

https://squid.gdev.gyroi.de/v1/graphql → 502 Bad Gateway !

<html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.22.1</center>
</body>
</html>

Par contre mon combo Duniter+Squid+Hasura+PostgreSQL sous Docker en local avec Alice et Bob fonctionne nickel.

http://localhhost:8080/v1/graphql → connection OK !

La différence c’est le chiffrement en HTTPS ou un proxy…

Peu probable que les certificats lets encrypt tombent tous en même temps.
Un problème de version SSL/TLS ?

Une idée ?

1 Like

Les indexeurs de vjrj et Nicolas80 sont fonctionnels.

Par contre, ceux gérés par @HugoTrentesaux, @poka et @1000i100 donnent une erreur 502.

Derniers logs intance gdev-squid.axiom-team.fr (aucune erreur notable, juste un arrêt net):

squid:

{"level":2,"time":1737986784250,"ns":"sqd:processor","msg":"4955564 / 4955564, rate: 0 blocks/sec, mapping: 56 blocks/sec, 168 items/sec, eta: 0s"}

postgres:

2025-01-27 14:02:04.238 UTC [27] LOG:  checkpoint complete: wrote 218 buffers (1.3%); 0 WAL file(s) added, 0 removed, 0 recycled; write=21.766 s, sync=0.018 s, total=21.830 s; sync files=58, longest=0.010 s, average=0.001 s; distance=1468 kB, estimate=1555 kB

Dernier reboot de la machine:

poka@v2s-poka:~/duniter-squid$ last reboot | head -n 1
reboot   system boot  5.15.158-2-pve   Mon Jan 27 14:16   still running

Le 27 Janvier ~14h, ça match…

J’ai juste oublié de renseigner restart: always pour chacun de mes container dans le docker-compose :face_with_peeking_eye:


Donc moi ça fait 2 semaines que c’est down, je ne m’en rendait pas compte car Ğecko scan le réseau squid au démarrage et choisi silencieusement un noeud valide et synchro avec le noeud gdev qu’il a lui même sélectionné juste avant.

Donc il s’agit d’un concours de circonstance, chaque instance ayant sont propre problème.
J’ai redémarré le miens, ça tourne il reprends la sync là où il s’était arrêté.


Chose intéressante à noter: Ğecko refuse toujours de se connecter à l’indexer tant que celui-ci n’est pas synchro avec le noeud duniter.

3 Likes

Je me connecte effectivement bien à ton nœud ! Il remonte les wagons des blocks…

1 Like

Concernant la liste gdev.json · master · nodes / networks · GitLab

que je découvre, je pense qu’on devrait retirer des path la partie /v1/graphql, car pour rappel on peut aussi utiliser l’api relay de hasura qui est /v1beta1/relay, et ces deux path sont obligatoires pour Hasura, donc inutile de les mentionner, non ?

Je pourrais ainsi plus facilement remplacer ma liste locale par celle-ci plus maintenu: https://git.duniter.org/clients/gecko/-/blob/master/config/indexer_endpoints.json?ref_type=heads

3 Likes

Du coup j’en ai profité pour faire une page de monitoring v2s basé sur ce dépot gdev.json: https://v2s-monitor.axiom-team.fr

@pini @cgeek j’ai utilisé Claude 3 avec Cursor pour le faire.

6 Likes

Pourquoi fais-tu ça @poka ? Peux-tu arrêter de me pinguer pour vanter les mérites de ton IA ? Merci.

1 Like

A post was split to a new topic: Utiliser Claude 3 et Cursor pour créer un outil de monitoring

Zut :confused: Je n’ai rien changé à la config, mais il faudrait que j’ajoute le CORS dans mon nginx. Et que je l’ajoute à la documentation. Pourquoi est-ce que ça ne posait pas problème avant ?

Mon nœud a planté parce que j’ai éteint le serveur pour pas la déranger quelqu’un qui est venu dormir chez moi. Je relance. Désolé pour le délai de réponse, je suis hyper pris en ce moment, beaucoup plus que ce que j’aurais voulu :sob:

Tu n’es également plus forgeron :hammer_and_pick: Tu as possiblement oublié de passer :mobile_phone_off: hors ligne et as reçu une amende :ticket: par la police Substrate/Duniter v2, qui t’a retiré ton permis de forgeron :frowning:

1 Like

Je relance le topic car je n’ai plus d’accès au datapod :
https://datapod.coinduf.eu:443/v1/graphql

Est ce que vous pouvez me donner des urls d’autres datapods qui sont utilisable pour du développement?

Tu peux trouver cette liste dans le lien cité ci-dessus :

Nope, il y a squid mais il manque les datapods.

1 Like

Bien vu, inattention de ma part. Je n’ai pas remarqué que le sujet est passé de squid à datapod.
J’ai voulu aider zoltounet, ne voyant personne qui ne l’avait répondu après deux heures.

3 Likes

:warning:
Pour information, j’utilise désormais ce json https://git.duniter.org/nodes/networks/-/raw/master/gdev.json dans Ğecko pour peupler la liste de noeud duniter et squid.
Il est donc important de ne pas modifier le format de donné de ce json à la légère, sans quoi Ğecko ne tiendra plus compte de ce json et fallback vers sa liste déjà en cache, et sinon (premier démarage), en dernier recours, peuple à partir du json local de base.

Au prochain changement de format de donné de ce json, il serait intéressant d’ajouter un champ version de manière à pouvoir traiter les différentes versions de format de donnée côté client au besoin, et ainsi assurer la rétrocompatibilité.

ping notamment @Nicolas80 il me semble que c’est toi qui à lancé ce json si je ne me trompe pas :wink:
edit: ah non c’est @HugoTrentesaux ^^

:warning:

class NetworkConfig {
  final bool active;
  final String genesisHash;
  final int genesisTimestamp;
  final int lastG1V1BlockNumber;
  final List<String> rpc;
  final List<String> squid;

  NetworkConfig.fromJson(Map<String, dynamic> json)
      : active = json['active'] as bool,
        genesisHash = json['genesis_hash'] as String,
        genesisTimestamp = json['genesis_timestamp'] as int,
        lastG1V1BlockNumber = json['last_g1_v1_block_number'] as int,
        rpc = List<String>.from(json['rpc']),
        squid = List<String>.from(json['squid']);
}
1 Like