Recherche la liste des membres de G1 associé a la liste des parrainages

Mon projet consiste a mettre en place des indicateurs permettant de détecter des attaques sybil a partir de la Web of Trust. En utilisant la théorie des graphes.

Je veux commencer par visualiser cette toile sous forme de graphe orienté : les nœuds correspondent aux comptes et les arêtes aux liens de certifications.

DataJune mettant déjà a dispositions les informations dont j’ai besoin, j’ai décidé de ne pas utiliser DuniterPy pour le moment.

J’ai utilisé les fichiers contenu dans ce lien : Index of /graphs.lg/ afin de visualiser l’évolution des certification aux cours du temps.

Mais je me suis rendu compte que les certifications sont temporaires donc c’est pas aussi simple que je le pensais. Et je sais même pas si ca a vraiment un sens de plotter cette evolution…mais bon.

4 Likes

Résultat, je vais lire en détails le fonctionnement de la toile de confiance :slight_smile:

1 Like

Ce que tu dis est justement une des applications possibles de Datajune. Voici quelques références pour commencer :

Introduction à la toile de confiance
https://duniter.fr/wiki/toile-de-confiance/introduction-a-la-toile-de-confiance/

La toile de confiance en détail
https://duniter.fr/wiki/toile-de-confiance/la-toile-de-confiance-en-detail/

Vidéo de l’évolution de la toile de confiance par visualisation de graphe (réalisé avec Datajune)

D’autre part, j’avais commencé le projet « Jucube » sous forme de notebooks pour vulgariser la toile de confiance et utiliser les données de Datajune. Tu peux par exemple regarder :

Introduction aux graphes avec la toile de confiance
https://git.duniter.org/HugoTrentesaux/jucube/-/blob/master/02_wot-rules.ipynb

Scénarios d’attaque Sybil
https://git.duniter.org/HugoTrentesaux/jucube/-/blob/master/extra/sybil_attack.ipynb?expanded=true&viewer=rich

Si tu souhaites prendre en main les notebook, on peut se faire une session en visio quand tu veux.

1 Like

c’est vraiment une jolie animation que tu as faites!

Dommage que les donnée des fichiers *.lg ne soit plus mise a jour automatiquement sur DataJune.

Merci, c’était le but :slight_smile:
Mais il faudrait l’améliorer parce que sur la fin il y a tellement de membres que ça devient illisible.

Merci de me le signaler, je n’avais pas vu ! (Et personne d’autre n’utilise Datajune à ma connaissance). J’ai regardé la cause, c’est un problème de mémoire vive. Je fais tourner le nœud Duniter https://g1.trentesaux.fr/ sur la même machine et ça bouffe déjà beaucoup de mémoire (~4 GB). D’autre part, j’ai été un peu flemmard sur la gestion du stockage du cache, il faut que je change quelques lignes pour éviter de tout charger d’un coup (ça a atteint 4.6 GB le 24 avril tout de même).

1 Like

@CYANURE_CYANURES j’ai corrigé le problème qui empêchait DataJune de mettre à jour les graphes.lg, tu peux continuer ton travail avec des données récentes.

C’était juste un problème de gestion de cache, je n’ai eu qu’une ligne à modifier. À part ça, mon code qui est une traduction en Julia de ce que j’avais écrit en Python pour la toile de confiance animée a l’air plutôt propre :slight_smile:

Est-ce que tu compte partager ton code ou tes visualisations ? N’hésite pas à le faire sur le forum, ce genre de choses ont du succès ^^

Petit bonus, j’ai recensé quelques trouvailles faites en explorant les données dans ce fil : Trouvailles d'exploration de données - #7 by HugoTrentesaux

3 Likes

@HugoTrentesaux Super, merci pour Datajune :slight_smile:

Pour l’instant ce que j’affiche est pas très jolie, mais le but de mon stage c’est de faire quelque chose d’utile pour la communauté duniter donc je vais vous tenir au courant :slight_smile:

1 Like

Je me baladais un peu dans le forum duniter et j’ai constaté qu’il y avait déjà pas mal de travail qui avait été fourni au niveau de la représentation de la WoTmap (par exemple Développement de wotmap dans lequel on parle de cette outils de visualisation : https://duniter.normandie-libre.fr/wotmap qui n’est malheureusement plus accessible :frowning:

Donc je me disais, au lieu d’essayer de repartir du début peut être qu’il faudrait mieux que je regarde d’abord l’ensemble des choses qui ont déjà était faites au sujet de la représentation de la Wotmap.

Ce qui serait super c’est d’avoir a disposition l’ensemble des différentes visualisation existante de la WoTmap pour permettre plus facilement de l’améliorer ou simplement pouvoir utilisé du code déjà fait.

Le truc c’est que j’ai l’impression qu’il y a déjà eu plein de projet sur la WoTmap mais que tout les résultats sont éparpillé un peu partout.

Par exemple ce que je voudrais savoir c’est si la visualisation de @HugoTrentesaux (cf Toile de confiance animée #4 - P2Tube) est la meilleur visualisation ou alors si il y a eu d’autres exemple aussi bien fait?

Mon but c’est de trouver un layout, une façon de représenter une WoTmap sous forme d’évolution (tracer l’ensemble des certifications valide jour par jour) qui soit satisfaisante (un peu comme ce que Hugo a fait).

Voila, vous êtes surement plus renseigner que moi a ce sujet, c’est pourquoi je vous demande de l’aide dans mes recherches :slight_smile:

1 Like

L’instance wotmap officielle, maintenue et mise à jour est ici : https://wotmap.duniter.org

J’ai aussi commencé un explorateur 3D : Ğexplore - explorateur d’historique de TdC en 3D - Tools - Duniter Forum

Il y a peut-être d’autres projets mais les plus aboutis sont déjà listés dans ce fil.

3 Likes

Tiens, c’est marrant. Je regardais justement le site de Sigma.JS, la librairie qui m’a servi à faire la wotmap, et apparemment ils ont enfin sorti la v2 ! :slight_smile:

Sinon, si il existe d’autres outils pour la visualisation de la toile de confiance, merci de les suggérer sur InfoJune - Toile de confiance

2 Likes

@HugoTrentesaux je serais interessé par le code python que tu as utilisé pour plotter ca:

La réponse à cette question a déjà été donnée pas mal de fois. Regarde dans la description de la vidéo aussi :wink:

[edit] c’est DataJune et c’est en Julia ^^

1 Like

grrr Julia :laughing:

Dans python tu peux faire import julia. Ça marche très bien.

1 Like

Je suis entrain d’étudier l’évolution de la toile G1 et je m’aperçois que le diamètre du graphe représentant la toile chute brusquement vers le 1400 IIème jours(en 2021). C’est comme si il y avait eu des conseils selon quoi il fallait détendre la toile en certifiant davantage les anciens membres de la toile.

Le diamètre d’un graphe c’est le plus long chemin parmi toute les distance minimum d’un sommet a un autre.

Est-ce que vous pouvez me confirmer cette hypothèse ?

Voici le graphe que j’ai:

diameter1

J’ai aussi ce graphe qui présente l’évolution (pour chaque jours) de la distance moyenne d’un sommet a un autre de la toile de confiance G1:
avg_path_length1

2 Likes

Je soupçonne que cette chute correspond plutôt à la chute du nombre de référents suite au palier des 3125 membres, mais je peux me tromper… Voir ce message :

1 Like

Je suppose que tu parles du diamètre du graphe non dirigé comptant toutes les identités reliées par des certifications actives indépendamment de leur statut de membre. Peux-tu confirmer ?

Ce changement me paraît trop brusque pour une hypothèse impliquant une action humaine. Mais avant de me risquer sur des interprétations, j’aimerais bien vérifier le résultat. Je vais essayer de le faire ce soir avec DataJune. Est-ce que tu peux publier ton code aussi pour pouvoir comparer ?

Le saut évoqué par @vit à propos des membres référents est visible sur ce graphe :

Mais comme tu regardes le diamètre du graphe indépendamment du critère « référent », l’hypothèse ne passe pas.

1 Like

Est-ce que cela pourrais être dû au ralentissement de l’entrée de nouveaux membres à cause de la baisse du nombre de rencontres suite aux restrictions covid ?
Du coup certains en aurais profité pour certifier leurs connaissances déjà membres.

Mais si c’est sur une seule journée, ça ne tient pas mon idée.

1 Like

Je parle du diamètre du graphe orienté, c’est a dire de la longueur maximum du plus petit chemin orienté pour toute combinaison de deux sommets du graphe.

Par exemple le diamètre de ce graphe:
task3

vaut 2, le plus long chemin entre n’importe quelle combinaison de deux sommets est de 2.

Je vais faire un dépôt gitlab ou je vais mettre mon code.