Bonjour à tous,
Je souhaite m’impliquer dans ce que je pourrais appeler les TL (Technologies Libres = open source + noeuds décentralisés + liberté à chacun d’instancier son noeud et contribuer au service)
J’ai récemment découvert la monnaie libre que je trouve extrêmement intéressante : en plus d’être en technologie libre, il y a la toile de confiance, et la reprise de la souveraineté monétaire.
Je pense que je développerai tout ça davantage quand je me présenterai sur le forum principal.
Ainsi je souhaiterais contribuer à la Ğ1.
J’ai des compétences en analyse de données, en langage Python (en particulier les librairies utilisées pour la data science), en administration Linux. Plus jeune, j’ai fait du langage C, un peu de programmation réseau, de PHP / MysQL. Je connais le SQL. A un moment j’ai codé une petite appli en react native avec un backend en Python (API Flask).
Je m’y connais en Machine Learning.
Je n’ai jamais utilisé GIT dans un projet à plusieurs pour l’instant, juste pour une utilisation basique seul. Je n’ai jamais contribué à un projet libre auparavant.
Je n’y connais rien techniquement en blockchain pour l’instant (à part quelques notions de base : le principe de cryptographie asymétrique, le principe de chaîne de blocs sur lesquels on ne peut pas revenir en arrière, …)
Je ne connais pas GraphQL
Je dirais que j’ai une bonne culture générale en informatique et data science, et une bonne capacité/volonté d’apprentissage sur les sujets qui me passionnent.
Et la Ğ1 est bien partie pour me passionner !
Voici comment je souhaiterais contribuer :
-
Mettre à disposition un noeud Duniter, contribuer à la création monétaire => J’ai mis en place le noeud g1.analysons.com (pour l’instant sur la v1 de production, mais par la suite je serais aussi partant pour mettre à dispo un noeud de test pour Duniter v2s)
-
Réalisation d’analyse de données / outils d’analyse de données sur la Ğ1 : par exemple, dans un premier temps, j’aimerais sortir les informations suivantes : valeur moyenne / écart type du montant d’une transaction, pourcentage de personnes qui font une première transaction avant d’être certifiées, nombre moyen de personnes avec qui les utilisateurs font des transactions, quantité moyenne de masse monétaire qui circule vs « épargne », etc… avec évolution graphique de ces données au cours du temps. Ce ne sont que des exemples. Pour cela, j’aimerais bien pouvoir accéder à (ou me construire) une source de données qui contienne toutes les transactions de tous les membres (DU compris), que je puisse ensuite explorer et consolider par dates.
-
Une fois que les 2 premiers points m’auront permis de rentrer un peu dans la Ğ1 (et de m’initier un peu à la blockchain d’un point de vue utilisateur qui consulte les données), pourquoi pas me mettre sérieusement à la blockchain (ça m’intéresserait de rentrer dedans et d’apprendre) et contribuer à Duniter v2s à l’occasion du passage sur Substrate, en me mettant au Rust. Ce sera à voir en fonction de mon envie et du temps disponible…
Ensuite concernant mes questions, je vais les mettre ci-dessous mais dites moi s’il faut que je les déplace dans une autre partie du forum :
-
Mon noeud duniter v1 a déjà crashé plusieurs fois, est-ce que vous avez déjà constaté ça ou c’est juste moi ? J’ai mis en place un auto restart. Je peux vous tenir au courant si ça recommence. Pour l’instant je n’ai pas identifié de point commun entre les différents crash dans les logs duniter. Pour l’un des crash, j’ai : « info: Generating proof-of-work with 6 leading zeros followed by [0-1]… (CPU usage set to 50%) for block#542417 FCHCfC » juste avant le crash.
-
Concernant les analyses de données : est-ce que vous avez des conseils / liens / docs / API à utiliser pour commencer ? Globalement j’ai vu qu’il y a plusieurs possibilités pour accéder aux données :
. Les noeuds data (par exemple g1.data.presles.fr), mais je ne sais pas si les données disponibles sont assez détaillées pour ce que je souhaite faire
. L’API Python me semble assez pratique : elle me permet de charger toute la blockchain (from duniterpy.helpers.blockchain import load) : je pense que je vais commencer comme ça.
. Les db sqlite sur le noeud duniter : en fait c’est surtout le fichier txs.db qui m’intéresse, mais par contre je n’ai pas les DU ni l’ensemble des blocs, j’ai juste les transactions. Est-il possible de faire en sorte que duniter stocke les blocs dans les db sqlite ? Sachant que la table block de duniter.db est vide.
. L’API GVA, mais je ne connais pas graphql… Si je devais l’utiliser j’aurais besoin d’apprendre un minimum graphql et de visualiser facilement les champs que je peux récupérer (par exemple j’ai trouvé cet outil pour visualiser graphiquement un schema, mais ça ne me suffit pas pour comprendre comment construire mes requêtes graphql : GraphQL Voyager)
. L’api HTTP : doc/HTTP_API.md · dev · nodes / typescript / duniter · GitLab
. Le Duniter DB explorer mais je vais éviter car gros warning sur le changement de structure de la DB -
Est-ce que vous auriez les règles que je dois suivre pour reconstituer les transactions de chaque utilisateur (DU compris), et le solde de chaque utilisateur arrêté par jour, en faisant un scan de la blockchain ? Sauf s’il y a plus simple bien sûr.
Il me semble que pour les transactions hors DU, c’est relativement simple : il faut juste isoler les transactions de chaque utilisateur dans le cas de virements vers plusieurs personnes, et faire attention d’enlever le « reste » qui est envoyé à soi même. Y a-t-il d’autres règles ?
Par contre comment faire pour reconstituer les DU nominativement par membre et par jour ? Peut-on les récupérer quelque part, ou bien faut-il scanner toutes les certifications (certs) ainsi que les leavers, revoked et excluded, de façon à ne comptabiliser que les DU des membres certifiés ?
Bon voila, ça fait beaucoup de questions, je n’attends pas forcément de réponse sur tout, d’autant que certaines de mes questions nécessitent peut-être de longues explications ou que je clarifie certains de mes besoins… je peux aussi me débrouiller pour trouver certaines infos ou potasser des docs.
Merci de votre aide et bonne fin de week-end !