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 ?
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.
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 :
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.
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 :
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.
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 :
Merci, c’était le but
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).
@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
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 ^^
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
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
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
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 !
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