Development talks

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

Nom Création Dernière MAJ Source Autres liens
Duniter v2 (nœud substrate) 2021-07-14 2026-04-06 nodes/rust/duniter-v2s issues required-for-gtest
Duniter v2s monitoring 2022-11-12 2026-03-07 nodes/rust/duniter-v2s-monitoring v2s-monitor.axiom-team.fr · gtest-monitor.p2p.legal
Squid (indexeur GraphQL) 2023-11-21 2026-03-26 nodes/duniter-squid images Docker duniter/squid-app-gtest, …postgres-gtest, …graphile-gtest
Datapod V2 (prototype Hugo) 2024-03-28 2025-08-08 HugoTrentesaux/ipfs-datapod implémentation centralisée v2 nodes/v2s-datapod (créé 2023-12-17, dernière MAJ 2025-08-04)
Networks (endpoints partagés) 2024-10-22 2026-04-03 nodes/networks fichiers g1.json, gtest.json
Duniter mocks (env. dev tout-en-un) 2025-12-16 2026-02-22 tools/duniter-mocks
Outil de snapshot G1 v1 → v2 (tools/p…) 2022-10-04 2026-03-05 tools/py-g1-migrator backup brut
Cesium+ pods (datapod V1, conservé) 2023-09-18 clients/cesium-grp/cesium-plus-pod instance unique : g1.data.e-is.pro

Apps utilisateurs / portefeuilles

Nom Création Dernière MAJ Source Autres liens
Cesium² 2021-07-15 2026-04-30 clients/cesium-grp/cesium2s releases
Cesium v1 (maintenu jusqu’à la migration) 2017-11-25 2026-03-20 clients/cesium-grp/cesium
Ğecko (mobile Flutter) 2021-02-25 2026-04-30 clients/gecko clients/gecko-web (variante web, dernière MAJ 2025-07-28) · forum
G1nkgo (web/mobile, vjrj) 2023-03-05 2026-04-22 vjrj/ginkgo app · refactor Flutter : clients/flutter/ginkgo (créé 2026-02-21) · lib : polkadart
G1companion (extension navigateur) 2022-01-30 2026-03-01 clients/g1companion
Tikka (compta/finance, Python) 2021-07-30 2026-04-29 clients/python/tikka install via pipx ; AppImage envisagée
Silkaj (CLI Python) 2018-04-06 2026-04-30 clients/python/silkaj site · forum
Ğcli / g1cli (CLI Rust) 2022-06-24 2026-04-17 clients/rust/g1cli (anciennement gcli-v2s)
Ğ1superbot (chatbot Matrix/Telegram) 2023-03-04 2026-04-12 kapis/g1-wallet-bot bot Telegram
Duniter-connect (extension fork Polkadot.js) 2023-12-05 2026-03-20 clients/duniter-connect forum
Duniter-portal (fork Polkadot apps) 2024-07-21 2026-03-14 clients/duniter-portal forum
Duniter Panel (debug, Vue) 2026-03-19 (renommage) 2026-03-19 HugoTrentesaux/duniter-vue tag forum
Carte Ğ1 (site Vue3) 2021-06-02 2026-04-01 websites/carte-g1 carte.monnaie-libre.fr
Juna.cat (événements/marchés Catalogne) externe (hors git.duniter.org) juna.cat

Sites & monitoring

Nom Création Dernière MAJ Source Autres liens
monnaie-libre.fr 2021-02-14 2026-04-13 websites/monnaie-libre-fr site rendu ; CMS Nuxt + nuxt-content + NetlifyCMS ; annonces multilingues FR/EN/IT/ES/DE/PT/EO
g1currency.org source non publié sur git.duniter.org site
v2s-monitor (déploiement) 2026-02-17 2026-03-07 tools/v2s-monitor v2s-monitor.axiom-team.fr
Forum Duniter (Discourse hébergé) forum.duniter.org

Documentation & ressources de référence

Ressource Lien
Liste des paramètres protocolaires Duniter v2s forum 9297
Liste des endpoints forum 12347
Checklist migration forgerons forum 13588
Issues required-for-gtest duniter-v2s issues

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 datapodsipfs-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 networksnetworks!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