Ğinspecte : monitoring panel for software ecosystem

Oui j’ai remarqué ça aussi avec les noeuds yunohost : ils n’exposent à priori pas l’api.

Si tu vas sur https://g1.mithril.re, tu verra l’api de duniter et tu peux par exemple aller à cette url pour avoir des infos : https://g1.mithril.re/blockchain/current

Mais si tu tapes https://g1.syoul.fr, on tombe sur le login de yunohost. Peut-être que l’API est disponible sur un port différent, ou sur une url différente ?

Ğinspecte et Césium ne gère pas le chemin où se trouve l’API BMA.
Ğinspecte génère ce lien pour https://duniter.moul.re/bma/:443 pour mon nœud.
Césium devrait trouver ton bma sur https://g1.syoul.fr/bma/ sur /network/peerings, mais /bma/ est absent.

Spécialité du paquet YunoHost pour casser les pieds des autres développeurs, non je plaisante. C’est le compromis que j’ai choisi, car ça permettait d’avoir la CI qui passe et que le paquet soit présent dans le catalogue d’apps YunoHost.

4 Likes

Visiblement sur yunohost
l’api :
https://g1.syoul.fr/bma/

les infos :
https://g1.syoul.fr/bma//blockchain/current

1 Like

D’accord ! Je vais adapter ginspecte pour vérifier ces url là.
Merci.

2 Likes

Waou, tu n’as pas chômé cette nuit !


bon maintenant tous les noeuds yuno sont visibles, mais les autres à la trappe.
Bravo @jnoel tu es sur la bonne piste, mais cela doit être le casse tête.

je suis en train de resynchroniser, ça sera bon dans quelques minutes normalement…

Euh tu dors quand toi ?

:sweat_smile: :star_struck:

:wink: non, je n’y ai pas touché cette nuit. C’est juste ce matin que je m’y suis mis.
Mais comme je suis à la Réunion, il y a 3 heures de moins plus qu’en france.

Merci @Moul pour la recherche de bug, c’était bien le port que je ne mettais pas au bon endroit.

1 Like

Merci pour le correctif !

image

Le lien sous le bouton en bas à gauche est toujours incorrect.

3 Likes

Bien vu ! C’est corrigé.

2 Likes

J’en ai profité pour mettre ginspecte en mode production avec une vrai base de données (sqlite → postgresql).
Dans le processus, on repart de zéro concernant l’historique des tests… mais il se remplira vite.

3 Likes

wOw! Cool les noeuds Yunohost apparaissent bien dans la liste, super ! Ça serait génial si on pouvait avoir la même chose dans la liste des noeuds sur Césium @kimamila ? Merci pour ce travail :slight_smile:

1 Like

J’ai préparé la gestion des utilisateurs dans Ǧinspecte.
Il faudrait établir le comportement qu’on attend du logiciel :

  1. seuls les admins ont un compte et peuvent écrire (ajout, modification, suppression), les visiteurs sont en lecture seule
  2. seuls les admins ont un compte. Les visiteurs sont en lecture seule mais peuvent remplir une demande d’ajout de service qui devra ensuite être validée par un admin pour apparaitre.
  3. tout le monde peut s’inscrire et tout modifier (l’inscription permet juste de limiter un peu les robots et de tracer les actions)
  4. tout le monde peut s’inscrire et ajouter des services mais ne pourra modifier/supprimer que les services qu’il a créé. Des utilisateurs avec des droits supplémentaires (admin) pourront eux avoir la main sur toutes les entrées.
  5. autre ?

Merci pour vos avis…

1 Like

Ça dépend des ambitions qu’on a pour Ğinspecte (par exemple si on veut le conserver en v2) mais une solution simpliste avec un unique compte admin dont on partage les codes convient tout à fait.

Et ensuite il faudrait plutôt partir sur une authentification à l’aide de clés Ğ1, ce serait plus logique par rapport à la direction dans laquelle on veut aller.

3 Likes

Ok ça c’est presque prêt. Donc un admin qui a le droit en écriture et les visiteurs non loggués accès en lecture seule.

Ah ça serait chouette à faire ça… mais ça voudrait dire q’un service centralisé recevrait des couples clé/mot de passe des utilisateurs !

1 Like

Non, ce n’est pas l’architecture que j’imagine. Plusieurs idées :

  • soit le service centralisé publie un jeton d’authentification chiffré pour la clé ciblée
  • soit le service centralisé demande de signer un challenge (par ex avec Ğ1 companion) et en cas de succès retourne un jeton d’authentification
  • soit le service centralisé wrappe son API dans quelque chose qui vérifie la signature de chaque payload, et le frontend utilise l’API Ğ1 companion pour solliciter les signatures

Il ne faut pas envisager la sécurité crypto comme la sécurité à secret, mais en utilisant les fonctionnalités de chiffrement/déchiffrement et signature/vérification.

2 Likes

J’ai plusieurs idées de services à ajouter dans Ğinspecte pour la v2 :

  • les nœuds Duniter v2 exposant une API RPC avec le statut (archive, miroir)
    • wss://gdev.p2p.legal/ws
    • wss://gdev.coinduf.eu/ws
    • wss://vit.fdn.org/ws
    • wss://gdev.cgeek.fr/ws
    • wss://gdev.pini.fr/ws
  • les indexeurs Duniter-indexer
    • https://gdev-indexer.p2p.legal
    • https://hasura.gdev.coinduf.eu
  • les indexeurs subsquid
    • https://subsquid.gdev.coinduf.eu/
  • les instances Ğecko web
    • https://gecko.axiom-team.fr/

Note : on pourrait aussi mettre en place un outil générique comme GitHub - louislam/uptime-kuma: A fancy self-hosted monitoring tool ou autre (je connais pas)

3 Likes

Après 5 jours de synchro échouées, mon serveur est enfin de retour, et cela déclenche un petit bug sur Ginspecte :

Date Duration (ms) Block Comment
29/05/2023 18:01:37 (UTC) 1265 630775 translation missing: en.no key
1 Like

Je crois que ça arrive quand le scan n’est pas tout à fait terminé.
Ca doit se corriger tout seul au bout de quelques minutes.
Mais il manque effectivement une traduction, sinon on ne verrait pas ce message.
Je le note.

1 Like

I’m trying to parse https://ginspecte.mithril.re/services.json from my client Ğ1nkgo in order to get an updated list of working nodes, but it seems that the generated url in the list is wrong. An extract:

{"id":2,"url":"https://ginspecte.mithril.re/services/2.json","status":true,"uptime":100,"ipv4":null,"ipv6":null,"admin":"duniter","server_funding":null,"service_type_id":1,"created_at":"2023-03-09T19:27:21.057Z","updated_at":"2024-01-03T22:36:26.909Z"},{"id":30,"url":"https://ginspecte.mithril.re/services/30.json","status":true,"uptime":93,"ipv4":"51.68.188.165","ipv6":null,"admin":"moul","server_funding":"GfKERHnJTYzKhKUma5h1uWhetbA8yHKymhVH2raf2aCP:J1k","service_type_id":1,"created_at":"2023-03-09T19:27:21.157Z","updated_at":"2024-01-03T22:36:26.914Z"},

If I’m not wrong, probably the second line in

it’s the root of the issue.

Also I miss other fields like the port.

Thanks in advance.