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

Bonjour,

Je travaille actuellement sur un projet qui consiste a étudier la monnaie libre June. Dans cette étude j’aurai besoin d’avoir accée a l’ensemble de la liste des membres de cette monnaie (sous forme d’identifiant) ainsi qu’a la liste des différents parrainage associé a chaque membre.

Je m’y connais un peu en informatique, et j’ai installé la librairie duniterpy sur python pour essayer d’extraire des informations mais j’ai un peu de mal a trouver les informations dont j’ai besoin.

Pourriez vous m’indiquer ou est-ce que je pourrai trouver ces informations ?

Merci d’avance

1 « J'aime »

Bonjour,

Ces données sont dans la blockchain, on peut les extraire de l’archive JSON de la blockchain, que conserve Duniter quand il est à jour. Il y a aussi la base de données LevelDB qui contient directement l’état de la monnaie. Si on n’a pas de nœud à jour chez soi, on peut aussi les récupérer (compte par compte) via l’API BMA.

Il existe plusieurs outils qui extraient des données, comme la WorldWotMap qui fournit un fichier JSON contenant la liste des identités et des comptes Cesium+, avec la liste des certifications actives.

D’autres données sur datajune aussi.

2 « J'aime »

Tu peux obtenir la liste des membres via cette url :

Si tu souhaites traiter des données en Python, DuniterPy est ce qu’il y a de mieux.

Le mieux est que tu clones le dépôt, installe Poetry, lance le premier exemple. Étudie l’exemple examples/request_data.py, l’adapte pour récupérer la liste des membres et parrainages.

apt install poetry # à partir de Debian 12
git clone https://git.duniter.org/clients/python/duniterpy
cd duniterpy
poetry install
poetry run python examples/request_data.py
vim examples/request_data.py

Les chemins suivants contiennent les informations que tu recherches :

print(client(bma.wot.members))
uid_or_pubkey = "moul"
print(client(bma.wot.lookup, uid_or_pubkey))
print(client(bma.wot.requirements, uid_or_pubkey))

Si tu veux aller plus loin et travailler dans un meilleur environnement, je te propose de développer dans l’environnement de développement de Silkaj.

1 « J'aime »

J’ai essayé d’installer Silkaj mais j’avais eu du mal, duniterpy n’est pas bon?

DuniterPy est la bibliothèque utilisée par Silkaj. C’est un peu moins pratique d’utiliser DuniterPy directement, mais c’est suffisant pour faire un petit script. Ça dépend de ton besoin et de ton objectif.

1 « J'aime »

d’accord, c’est parfait! merci pour vos solutions.

Il y a aussi le serveur graphQL https://wwgql.coinduf.eu qui pourra répondre à toutes tes questions. Tu trouveras le système de types graphQL utilisé ici :

1 « J'aime »

Comme le dit tuxmain, c’est le but du projet datajune.

On voit par exemple la liste de tous les pseudos depuis le début de la monnaie https://files.datajune.coinduf.eu/global/pseudos.txt

Ou la liste des certifications en cours pour chaque jour écoulé depuis le début de la monnaie https://files.datajune.coinduf.eu/graphs.lg/1872.lg

(1872 jours = un peu plus de 5 ans)

Par curiosité quel est le contenu de ce projet ?

1 « J'aime »

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 « J'aime »

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

1 « J'aime »

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 « J'aime »

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 « J'aime »

@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 par HugoTrentesaux

3 « J'aime »

@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 « J'aime »

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 « J'aime »

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 « J'aime »

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 « J'aime »

@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 « J'aime »