# 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'Authentification et d'Identité

### Authentification et Autorisation

#### Microsoft Entra (concurrents)
- **Utilisation** : Solution d'identité et d'accès cloud de Microsoft
- **Description** : Plateforme d'identité en tant que service (IDaaS) qui fournit l'authentification unique (SSO), la gestion des identités et l'accès conditionnel. Alternative aux solutions d'authentification traditionnelles.
- **Compétences requises** : Gestion d'identité cloud, SSO, intégration d'identité, sécurité des accès

#### AUTHZ et AUTHN
- **Utilisation** : Concepts fondamentaux de sécurité
- **Description** : 
  - **AUTHN (Authentication)** : Vérification de l'identité d'un utilisateur (qui êtes-vous ?)
  - **AUTHZ (Authorization)** : Vérification des permissions d'accès (que pouvez-vous faire ?)
- **Compétences requises** : Principes de sécurité, gestion des identités, contrôle d'accès, modèles de permissions

#### Better Auth
- **Utilisation** : Bibliothèque d'authentification moderne
- **Description** : Solution d'authentification open-source offrant une API simple et flexible pour gérer l'authentification dans les applications web. Supporte OAuth, email/password, et autres méthodes d'authentification.
- **Compétences requises** : Développement web, authentification, OAuth, sécurité des applications

### Identité Décentralisée

#### DID et UCAN
- **Utilisation** : Identifiants décentralisés et système d'autorisation
- **Description** :
  - **DID (Decentralized Identifiers)** : Identifiants uniques décentralisés qui permettent aux utilisateurs de contrôler leur identité sans dépendre d'une autorité centrale
  - **UCAN (User Controlled Authorization Networks)** : Système d'autorisation basé sur des capacités (capabilities) où les utilisateurs contrôlent leurs propres permissions
- **Compétences requises** : Identité décentralisée, Web3, cryptographie, systèmes d'autorisation basés sur les capacités

#### VC (Verifiable Credentials)
- **Utilisation** : Credentials vérifiables pour l'identité numérique
- **Description** : Standard W3C pour les credentials numériques qui peuvent être vérifiés cryptographiquement. Permet de créer des identités numériques portables et vérifiables sans dépendre d'une autorité centrale.
- **Compétences requises** : Standards W3C, identité numérique, cryptographie, vérification de credentials, blockchain (optionnel)

### Protocoles d'Authentification

#### OpenID Connect
- **Utilisation** : Protocole d'authentification et d'autorisation
- **Description** : Couche d'identité construite sur OAuth 2.0 qui permet aux clients de vérifier l'identité d'un utilisateur basée sur l'authentification effectuée par un serveur d'autorisation. Standard de l'industrie pour l'authentification fédérée.
- **Compétences requises** : OAuth 2.0, protocoles d'authentification, intégration SSO, sécurité web

#### SPIFFE
- **Utilisation** : Identité sécurisée pour les workloads en production
- **Description** : SPIFFE (Secure Production Identity Framework For Everyone) fournit un cadre pour identifier et authentifier les workloads dans des environnements hétérogènes et distribués. Utilise des identités basées sur des certificats X.509 ou JWT.
- **Compétences requises** : Sécurité des microservices, identité des workloads, mTLS, infrastructure distribuée, Kubernetes, service mesh

## Technologies d'Infrastructure Décentralisée

### ThreeFold

#### Zero OS
- **Utilisation** : Système d'exploitation autonome pour infrastructure décentralisée
- **Description** : Système d'exploitation efficace et sécurisé qui s'exécute directement sur le matériel, permettant un cloud autonome
- **Compétences requises** : Administration système bare metal, cloud décentralisé, Zero OS

#### ThreeFold Grid
- **Utilisation** : Infrastructure Internet décentralisée globale
- **Description** : Plateforme opérationnelle d'infrastructure Internet décentralisée déployée localement, scalable globalement, possédée et alimentée par les utilisateurs
- **Compétences requises** : Infrastructure décentralisée, cloud computing, réseaux distribués

#### 3Node
- **Utilisation** : Nœuds physiques de l'infrastructure ThreeFold
- **Description** : Serveurs informatiques dédiés à 100% au réseau, fournissant capacité de calcul, stockage et réseau
- **Compétences requises** : Administration de serveurs, déploiement de nœuds, maintenance hardware

#### ThreeFold Compute
- **Utilisation** : Capacité de calcul bare metal
- **Description** : Peut exécuter toute charge de travail Web2, Web3 ou IA à la périphérie d'Internet, avec plus de scalabilité et de fiabilité
- **Compétences requises** : Virtualisation, conteneurisation, Kubernetes, edge computing

#### ThreeFold Data Storage
- **Utilisation** : Système de stockage de données inviolable
- **Description** : Les données ne peuvent pas être compromises et restent toujours privées, possédées par vous. Système scalable jusqu'au niveau planétaire, au moins 10x plus efficace et plusieurs ordres de grandeur plus sécurisé et fiable
- **Compétences requises** : Stockage distribué, réplication de données, sécurité des données

#### ThreeFold Network (Mycelium)
- **Utilisation** : Réseau overlay chiffré de bout en bout
- **Description** : Réseau toujours à la recherche du chemin le plus court possible entre les participants. Adresse Internet logique liée de manière sécurisée à une clé privée. Scalabilité illimitée et optimisations de performance
- **Compétences requises** : Réseaux overlay, chiffrement de bout en bout, routage réseau

#### ThreeFold Blockchain
- **Utilisation** : Blockchain pour la vérification et l'enregistrement de la capacité
- **Description** : Vérifie, enregistre et sécurise la capacité des nœuds sur la blockchain ThreeFold
- **Compétences requises** : Blockchain, consensus, cryptographie

#### ThreeFold Cloud
- **Utilisation** : Cloud open-source décentralisé
- **Description** : Déploiement de machines virtuelles, conteneurs, clusters Kubernetes, web gateways et plus sur un cloud open source décentralisé best-effort
- **Compétences requises** : Cloud computing, Kubernetes, déploiement d'applications, administration système

#### AIBox
- **Utilisation** : Solution de calcul IA auto-hébergée alimentée par ThreeFold
- **Description** : Solution de calcul IA dédiée fonctionnant sur l'infrastructure ThreeFold
- **Compétences requises** : Intelligence artificielle, machine learning, infrastructure IA

#### 3Phone
- **Utilisation** : Appareils sécurisés de la famille 3Phone
- **Description** : Premiers appareils sécurisés conçus pour fonctionner de manière transparente avec le ThreeFold Grid
- **Compétences requises** : Développement mobile, sécurité des appareils, intégration réseau

#### 3Router
- **Utilisation** : Routeurs intelligents pour connexions optimisées
- **Description** : Routeurs intelligents garantissant des connexions de chemin le plus court entre nœuds et téléphones avec chiffrement de bout en bout
- **Compétences requises** : Routage réseau, optimisation de réseau, sécurité réseau

## 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
  - Cloud décentralisé (ThreeFold Grid)
- **On-Premise** :
  - Gestion de serveurs physiques
  - Virtualisation (VMware, Hyper-V, KVM)
  - Gestion de l'infrastructure
  - Provisioning de serveurs
  - Infrastructure décentralisée (3Nodes)

### 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
- Infrastructure décentralisée (ThreeFold Grid)
- Edge computing
- Cloud décentralisé
- Zero OS
- Stockage distribué

### 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
- https://www.threefold.io/ - Infrastructure Internet décentralisée ThreeFold
- Documentation technique des projets individuels
- Analyse des technologies blockchain et monnaies libres
- Analyse des infrastructures décentralisées

### 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

