Synthèse des Dev-Talks Duniter (nov. 2024 — avr. 2026)
par Claude, prompté et filtré par 1000i100
17 réunions dépouillées, du dev-talk du 2024-11-25 jusqu’au 2026-04-24. Période couvrant la préparation, la migration (7 mars 2026) et le suivi post-migration de la Ğ1 v2.
Complété en fouillant sur de git.duniter.org et forum.duniter.org au 2026-05-01.
1. Livrables (logiciels, sites, dépôts)
Livrables
Cœur protocolaire / réseau
Apps utilisateurs / portefeuilles
Sites & monitoring
Documentation & ressources de référence
2. Choix & arbitrages d’architecture
Cryptographie & gestion des clés
- Adoption d’ed25519 (au lieu de sr25519) pour la génération des mnemonics — discussion forum 12996 ; implémentation dans gcli via g1cli!44 (mergée).
- Guidelines wallet (RFC) : ed25519 par défaut, scan de dérivations HDWallet, Argon2 pour code de déverrouillage, code ≥ 4 caractères, sécurité différenciée compte membre vs portefeuille, interdiction de stocker le mnemonic (seed/clé privée seulement).
- Multi-signature envisagée pour comptes communs (3-sur-5).
- Ğ1superbot : conserve les anciennes clés base58 v1 pour les comptes existants ; ne génère que des ss58 pour les nouveaux comptes.
- Format d’import/export inter-apps : colonne
meta BSON dans la sqlite des wallets (gcli/g1companion).
- Ğcli vault : passage de clés brutes à fichiers en DB + arbre de dérivation HDWallet — g1cli!41 (mergée).
Stratégie de migration
- Migration sans Cesium² complet (juin 2025) : faute de financement E-IS, la communauté décide de lancer la Ğtest sans attendre la complétude de Cesium².
- Ğtest plutôt que Ğdev comme pré-prod (Ğdev maintenue tant qu’il y a des nœuds).
- Annonce de date : initial refus (proposition Eloïs), puis annonce du 7 mars 2026 minuit (en pratique migration vers 18h30 après backup et arrêt forgerons v1).
- Ordre de bascule v2 : backup v1 → arrêt forgerons v1 → lancement genesis v2 → indexeurs + nœuds miroirs → migration comptes forgerons via g1cli → relance nœuds forgerons → tests.
- Cesium² remplace Cesium v1 dans les stores (mise à jour de l’app existante, pas deux apps distinctes) — option défendue par cgeek lors des RML18 (cf. devtalk du 2025-05-02) et confirmée à la migration (devtalk du 2026-03-06 : « v2 remplace v1 dans le Store »).
- App restreinte à un réseau unique (Ğdev ou Ğtest ou Ğ1) plutôt que switcheable, pour éviter les confusions utilisateurs (devtalk du 2025-05-02, arbitrage côté Cesium²). Choix suivi par la plupart des apps. Exception : G1nkgo est resté multi-réseaux (compatible Ğtest v2 et Ğ1 v1, avec une option de bascule supprimée a posteriori après la migration — devtalk du 2026-03-06).
Indexation & endpoints
- Calcul des DU non réclamés déplacé dans les indexeurs (et non dans les clients).
- Pré-calcul de la règle de distance par Duniter (cron 5 min) → indexé dans Squid avec référence du bloc.
- Découverte des endpoints par 3 sources combinées : hardcoded → API RPC → repo
nodes/networks. Algorithme de sélection : vérif du genesis hash, dernier bloc (height/hash), comparaison réseau, ping.
- Champs
expireOn / expireIn : choix d’expireOn (pas de bloc futur référencé).
- Suivi des versions d’indexeurs pour que les clients choisissent le bon nœud Squid.
Datapods (longue discussion non tranchée)
- Position retenue par défaut (août 2025) : on conserve les pods Cesium+ V1 (avec instance unique de Benoit), faute de mieux. Datapod V2 prototype Hugo gardé en R&D.
- Compatibilité Cesium+ V1 ↔ V2 retrouvée via le retour à ed25519.
- Modération : approche centralisée côté serveur en gardant les signatures pour décentralisation future.
- Postgis ajouté aux datapods — ipfs-datapod#25 (ouverte).
Décentralisation / infrastructure
- Critères de seuil plutôt que nombres absolus : forgerons (min. 3 ; 3-4 FR / 3-4 ES / 3-4 hors-UE, pas tout chez OVH), miroirs (1 par zone, dont auto-hébergé et DNS hors GAFAM), Squid (DDoS, R&D auth HTTP), Datapods (mini 3, confort 5).
- Doc forgeron bilingue : EN technique (devs) + FR formation (forgerons, devient site de formation).
- Méthode d’install simplifiée (
curl … | sh) débattue — décision de la mettre en avant.
- Bootnode WSS Brussels ajouté au repo
networks — networks!14 (mergée).
Vocabulaire (proposition Eloïs, juillet 2025)
- Abandon du mot “client” → utiliser “app” et “(web)app”.
- Distinction “base58 pubkey” (legacy) vs “ss58 address”.
Comité technique (mars 2026)
- Vote validé.
- Formation à la lecture du code Rust de Duniter v2 (avec aide IA pour la cohérence).
- Critère informel : ≥ 2/3 du CT alignés avec les valeurs monnaie-libre pour éviter prise de pouvoir.
3. Bugs & problèmes identifiés
Bugs/tickets discuté en devtalks
Résolus
| Problème |
Référence |
Résolution |
| Différenciation compte v1/v2 |
— |
Champ createdOn = 0 côté indexeur ⇒ compte v1 |
| Bug doublon code pin Cesium² (mobile/desktop) |
— |
Identifié, fix dans Cesium² |
| Préparer ĞTest itération 2 (réinitialisation) |
duniter-v2s#311 (closed 2026-02-26) |
Pris en charge par Moul |
| Identity on empty account (transfer-all + compte membre vidable à 0) |
duniter-v2s#321 (closed 2026-02-27) |
Bug fixé dans Duniter v2 |
| GTest wrong parameters (DU, certifications) |
duniter-v2s#323 (closed 2025-10-04) ; duniter-v2s!339 (mergée) |
Pris en charge par Moul |
| Hash divergent Cesium+ |
forum 12156 |
Vérification côté CS+ serveur jugée suffisante |
| Migration smith (compte affiché membre + 1 Ğ1) |
— |
Il faut être offline pour migrer en tant que smith |
| Forum duniter.org instable |
— |
Redémarrage serveur par Immae |
| MR fork networks non rebasable via GUI GitLab |
— |
Contournement : suppression du fork + ré-édition crée un nouveau fork à jour |
| Connexion Ğecko ↔ Ğ1 v2 |
forum 9372/590 |
Lecture du genesis hash |
| Adoption ed25519 dans gcli |
g1cli!44 (mergée) |
Choix entre ed25519 et sr25519 implémenté |
Non résolus / en cours au moment des notes
| Problème |
Référence |
État |
| DNS Google en dur dans le conteneur Duniter |
duniter-v2s#296 (opened 2025-03-29) |
Toujours ouverte |
| Historique évaluations absent dans indexeur (oracle de distance) |
duniter-squid#17 (opened 2024-03-13) |
Toujours ouverte |
| Postgis dans datapods (geoloc) |
ipfs-datapod#25 (opened 2025-02-02) |
Toujours ouverte |
| MR g1cli “Massive changes by Claude LLM” (scan P2P) |
g1cli!60 (opened 2026-02-22) |
Ouverte ; arbitrage en cours sur réduction du scope |
| DU non réévalué (Ğtest) |
(ticket interne) |
Ouvert |
| Oracle de certification dysfonctionnel |
— |
Seul l’oracle de vjrj fonctionne ; manque d’oracles |
| Tikka crash “genesis hash different” |
— |
Trace dev-talk nov. 2025 ; pas de ticket trouvé |
| Squid 0.5.6 plante au démarrage (0.5.5 OK) |
forum 13522 |
Discussion forum ouverte |
| Indexeur Ğtest impossible à démarrer from scratch |
forum 13632 |
Discussion forum |
| Un seul indexeur public Ğtest en 5.11 alors que Ğecko exige ≥ 5.13 |
— |
Constaté avril 2026 |
| CI Squid cassée |
— |
Signalée fév. 2026 |
| Cesium v2.2.1 indisponible Play Store |
— |
Constaté avril 2026 |
| UX Cesium² invitation/1ère certification |
— |
Reproduit l’UX v1, à repenser pour le flux v2 |
Bug certification smith Bulma (CertificationIsAOnlineSmithPrivilege) |
— |
Workaround : go-offline → 2h → rotate keys → online |
py-substrate-interface (lib Tikka) sans mainteneur |
— |
Fork par vit ; financement de la lib en discussion |
| Espace disque nœuds forgerons (pas de pruning) |
— |
R&D admin sys |
| Bus factor projet indexeur (poka/LLM seuls capables) |
— |
Proposition de session de transmission |
| Messages Cesium v1 disponibles seulement en FR/EN/ES |
— |
Fix proposé : copier en/ vers les autres langues + release |