# Technologies et Compétences - Écosystème Duniter/Ğ1 Ce document liste les technologies et compétences identifiées dans l'écosystème Duniter/Ğ1 basé sur l'analyse de https://git.duniter.org/ ## Technologies de Développement ### Langages de Programmation #### Rust - **Utilisation** : Développement du nœud Duniter v2S (basé sur Substrate) - **Projets** : - `Duniter v2S` : Nœud blockchain principal - `Ğcli-v2s` : Interface en ligne de commande Rust - `homebrew-duniter-gcli` : Package Homebrew pour Ğcli - **Compétences requises** : Rust avancé, développement blockchain, Substrate framework #### Python - **Utilisation** : Clients en ligne de commande et outils - **Projets** : - `silkaj` : Client CLI Python pour la monnaie Ğ1 - `Tikka` : Client riche pour la monnaie Ğ1 - **Compétences requises** : Python, développement CLI, APIs REST #### JavaScript/TypeScript - **Utilisation** : Clients web, extensions navigateur, sites web - **Projets** : - `Ğ1Companion` : Extension web pour navigateurs - Clients web divers - **Compétences requises** : JavaScript/TypeScript, développement d'extensions navigateur, Web APIs ### Frameworks et Bibliothèques #### Substrate Framework - **Utilisation** : Framework blockchain pour Duniter v2S - **Description** : Framework Rust pour construire des blockchains personnalisées - **Compétences requises** : Blockchain, Rust, Substrate, consensus algorithms #### Nuxt.js - **Utilisation** : Framework Vue.js pour sites web - **Projets** : - `monnaie-libre-fr` : Site web avec Nuxt + nuxt-content - **Compétences requises** : Vue.js, Nuxt.js, SSR, JAMstack #### NetlifyCMS - **Utilisation** : CMS headless basé sur Git - **Projets** : - `monnaie-libre-fr` : CMS pour le site web - **Compétences requises** : Git-based CMS, JAMstack, workflows Git #### WordUp CMS - **Utilisation** : CMS pour sites web - **Projets** : - `axiom-team-fr` : Site de production avec WordUp - **Compétences requises** : CMS management, intégration d'APIs ### Outils et Bibliothèques Spécialisées #### Squid (Indexer) - **Utilisation** : Indexation de données blockchain - **Projets** : - `duniter-squid` : Indexer basé sur Squid pour Duniter v2S - **Compétences requises** : Indexation de données, GraphQL, blockchain data processing #### g1-papi - **Utilisation** : Bibliothèque API pour Ğ1 - **Type** : Bibliothèque partagée - **Compétences requises** : API design, développement de bibliothèques ### Clients et Interfaces #### Clients CLI (Command Line Interface) - **Rust CLI** : `Ğcli-v2s` - Interface avancée pour utilisateurs experts - **Python CLI** : `silkaj`, `Tikka` - Clients en ligne de commande - **Compétences requises** : Développement CLI, UX en ligne de commande, parsing d'arguments #### Extensions Navigateur - **Ğ1Companion** : Extension web pour navigateurs - **Compétences requises** : Web Extensions API, Chrome/Firefox extensions, JavaScript #### Clients Graphiques - **Ğecko** : Client avec interface graphique - **Cesium-grp/cesium2s** : Client Cesium pour Duniter v2s - **Compétences requises** : Développement d'interfaces graphiques, frameworks UI ### Intégrations et APIs #### Intégrations Externes - **HelloAsso** : Intégration pour dons - **Paheko** : Intégration comptable - **ĞWishBounty** : Application pour automatiser les flux de dons - **Compétences requises** : Intégration d'APIs tierces, webhooks, synchronisation de données #### APIs Internes - **api-axiom-team-fr** : API pour le site Axiom - **Compétences requises** : REST APIs, GraphQL, documentation d'API ## Technologies d'Infrastructure et Déploiement ### Conteneurisation - **Docker** : Conteneurisation des applications - **Compétences requises** : Docker, Docker Compose, orchestration de conteneurs ### Déploiement Web - **Netlify** : Déploiement JAMstack (mentionné pour monnaie-libre-fr) - **Compétences requises** : CI/CD, déploiement continu, Netlify ### Gestion de Code Source - **Git** : Système de contrôle de version - **Forge Git** : git.duniter.org (forge Git auto-hébergée) - **Compétences requises** : Git avancé, workflows Git, gestion de forge ### Package Management - **Homebrew** : Gestion de paquets pour macOS - **npm/yarn** : Gestion de paquets JavaScript - **pip/poetry** : Gestion de paquets Python - **Cargo** : Gestion de paquets Rust - **Compétences requises** : Gestion de dépendances, gestion de versions, publication de paquets ## Compétences d'Administration Système ### Administration Linux/Unix - **Systèmes d'exploitation** : Linux (Debian, Ubuntu, etc.) - **Compétences requises** : - Administration système Linux - Gestion des utilisateurs et permissions - Configuration réseau - Monitoring système - Gestion des logs - Sécurisation des serveurs ### Administration Blockchain - **Gestion de nœuds** : Administration de nœuds Duniter - **Compétences requises** : - Configuration de nœuds blockchain - Gestion de la synchronisation - Monitoring de la blockchain - Gestion des clés cryptographiques - Maintenance des nœuds ### Bases de Données - **PostgreSQL** : Base de données relationnelle utilisée dans les projets - **Compétences requises** : - Administration PostgreSQL - Optimisation de requêtes - Sauvegarde et restauration - Réplication - Performance tuning - SQL avancé ### Réseau et Sécurité - **Réseau** : - Configuration de pare-feu - Gestion des ports et services - Load balancing - CDN configuration - DNS, DHCP, VPN, SD-WAN - Configuration réseau avancée - **Sécurité** : - SSL/TLS configuration - Gestion des certificats - Sécurisation des APIs - Protection contre les attaques - Audit de sécurité - Chiffrement des communications et données - Surveillance et détection d'intrusions - Prévention des cyberattaques ### Monitoring et Observabilité - **Monitoring** : - Monitoring des applications - Monitoring des nœuds blockchain - Alerting - Métriques et dashboards - **Logs** : - Centralisation des logs - Analyse de logs - Rotation des logs ### CI/CD et Automatisation - **Intégration Continue** : - Configuration de pipelines CI/CD - Tests automatisés - Build automatisé - Déploiement automatisé - **Outils** : - GitHub Actions, GitLab CI, Drone CI - Scripts d'automatisation - Configuration de workflows ### Automatisation et Scripting - **Scripts** : - Bash scripting avancé - Python scripting pour automatisation - Automatisation de tâches d'administration - Scripts de déploiement - Automatisation des environnements pour cohérence - **Compétences requises** : Scripting, automatisation, amélioration de la cohérence des environnements ### Infrastructure Cloud/On-Premise - **Cloud** : - Déploiement sur cloud (si applicable) - Gestion de ressources cloud - Auto-scaling - **On-Premise** : - Gestion de serveurs physiques - Virtualisation (VMware, Hyper-V, KVM) - Gestion de l'infrastructure - Provisioning de serveurs ### Gestion de Configuration - **Configuration Management** : - Ansible, Puppet, Chef - Infrastructure as Code - Configuration de serveurs - **Versioning** : - Versioning de la configuration - Gestion des environnements (dev, staging, prod) ### Sauvegarde et Récupération - **Sauvegarde** : - Stratégies de sauvegarde - Sauvegarde des bases de données - Sauvegarde de la configuration - Sauvegarde de la blockchain - **Récupération** : - Plans de reprise après sinistre - Tests de restauration - RTO/RPO ## Compétences DevOps ### Container Orchestration - **Kubernetes** : Orchestration de conteneurs (mentionné comme compétence requise) - **Docker Swarm** : Alternative à Kubernetes - **Compétences requises** : Orchestration, scaling, service mesh, gestion de clusters ### Infrastructure as Code - **Terraform** : Provisioning d'infrastructure - **CloudFormation** : Si AWS - **Compétences requises** : IaC, provisioning automatisé ### Secrets Management - **Gestion des secrets** : Vault, AWS Secrets Manager - **Compétences requises** : Sécurité des secrets, rotation ## Compétences Spécialisées Blockchain ### Cryptographie - **Cryptographie appliquée** : - Signatures cryptographiques - Hashing - Clés publiques/privées - Certificats - **Compétences requises** : Cryptographie, sécurité ### Consensus et Réseau - **Protocoles de consensus** : Compréhension des mécanismes de consensus - **Réseau P2P** : Gestion de réseaux pair-à-pair - **Compétences requises** : Blockchain, réseaux distribués ## Résumé des Compétences par Catégorie ### Développement - Rust (avancé) - Python - JavaScript/TypeScript - Vue.js / Nuxt.js - Substrate Framework - Développement CLI - Extensions navigateur - APIs REST/GraphQL ### Blockchain - Développement blockchain - Substrate - Consensus algorithms - Cryptographie - Réseaux P2P ### Web - Frameworks web modernes - JAMstack - CMS headless - Intégrations d'APIs ### Infrastructure - Administration Linux - Docker/Conteneurisation - CI/CD - Monitoring - Sécurité - Bases de données - Réseau ### DevOps - Automatisation - Infrastructure as Code - Gestion de configuration - Orchestration ## Compétences Transversales ### Communication et Collaboration - Travail en équipe avec développeurs et parties prenantes - Communication efficace - Documentation technique - Partage de connaissances ### Veille Technologique - Suivi des évolutions technologiques - Meilleures pratiques du secteur - Évaluation de nouvelles technologies - Adaptation aux changements ## Notes Cette liste est basée sur l'analyse des projets visibles sur https://git.duniter.org/ et les informations disponibles sur l'écosystème Duniter/Ğ1. Certaines technologies peuvent être utilisées mais non explicitement mentionnées dans les descriptions de projets. ### Sources - https://git.duniter.org/ - Dépôt principal des projets Duniter - Documentation technique des projets individuels - Analyse des technologies blockchain et monnaies libres ### Pour une analyse complète, il serait recommandé de : 1. Examiner le code source des projets principaux 2. Analyser les fichiers de configuration (package.json, Cargo.toml, requirements.txt, Dockerfile) 3. Examiner les fichiers de déploiement (docker-compose.yml, scripts CI/CD) 4. Consulter la documentation technique de chaque projet 5. Analyser les dépendances et bibliothèques utilisées