# Development talks

**URL:** https://forum.duniter.org/t/development-talks/12627
**Category:** Event
**Tags:** visio-dev
**Created:** [28 October 2024 15:07 UTC](https://forum.duniter.org/t/development-talks/12627 "2024-10-28T15:07:05Z")
**Posts on this page:** 1
**Showing post:** 116

<div class="post-metadata">

### Author: ![1000i100](https://forum.duniter.org/user_avatar/forum.duniter.org/1000i100/32/825_2.png) [@1000i100](https://forum.duniter.org/u/1000i100)
#### Post date: [1 May 2026 15:51 UTC](https://forum.duniter.org/t/development-talks/12627/116 "2026-05-01T15:51:49Z")

</div>

# 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](https://git.duniter.org/nodes/rust/duniter-v2s) | [issues `required-for-gtest`](https://git.duniter.org/nodes/rust/duniter-v2s/-/issues/?label_name%5B%5D=required-for-gtest) |
> | **Duniter v2s monitoring** | 2022-11-12 | 2026-03-07 | [nodes/rust/duniter-v2s-monitoring](https://git.duniter.org/nodes/rust/duniter-v2s-monitoring) | [v2s-monitor.axiom-team.fr](https://v2s-monitor.axiom-team.fr) · [gtest-monitor.p2p.legal](https://gtest-monitor.p2p.legal) |
> | **Squid (indexeur GraphQL)** | 2023-11-21 | 2026-03-26 | [nodes/duniter-squid](https://git.duniter.org/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](https://git.duniter.org/HugoTrentesaux/ipfs-datapod) | implémentation centralisée v2 [nodes/v2s-datapod](https://git.duniter.org/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](https://git.duniter.org/nodes/networks) | fichiers `g1.json`, `gtest.json` |
> | **Duniter mocks (env. dev tout-en-un)** | 2025-12-16 | 2026-02-22 | [tools/duniter-mocks](https://git.duniter.org/tools/duniter-mocks) | — |
> | **Outil de snapshot G1 v1 → v2 (`tools/p…`)** | 2022-10-04 | 2026-03-05 | [tools/py-g1-migrator](https://git.duniter.org/tools/py-g1-migrator) | [backup brut](https://files.coinduf.eu/g1v1/backup-1.8.7.tgz) |
> | **Cesium+ pods (datapod V1, conservé)** | 2023-09-18 | — | [clients/cesium-grp/cesium-plus-pod](https://git.duniter.org/clients/cesium-grp/cesium-plus-pod) | instance unique : [g1.data.e-is.pro](https://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](https://git.duniter.org/clients/cesium-grp/cesium2s) | [releases](https://git.duniter.org/clients/cesium-grp/cesium2s/-/releases) |
> | **Cesium v1** (maintenu jusqu’à la migration) | 2017-11-25 | 2026-03-20 | [clients/cesium-grp/cesium](https://git.duniter.org/clients/cesium-grp/cesium) | — |
> | **Ğecko (mobile Flutter)** | 2021-02-25 | 2026-04-30 | [clients/gecko](https://git.duniter.org/clients/gecko) | [clients/gecko-web](https://git.duniter.org/clients/gecko-web) (variante web, dernière MAJ 2025-07-28) · [forum](https://forum.duniter.org/c/clients/gecko/55) |
> | **G1nkgo** (web/mobile, vjrj) | 2023-03-05 | 2026-04-22 | [vjrj/ginkgo](https://git.duniter.org/vjrj/ginkgo) | [app](https://g1nkgo.comunes.org/) · refactor Flutter : [clients/flutter/ginkgo](https://git.duniter.org/clients/flutter/ginkgo) (créé 2026-02-21) · lib : [polkadart](https://github.com/leonardocustodio/polkadart) |
> | **G1companion (extension navigateur)** | 2022-01-30 | 2026-03-01 | [clients/g1companion](https://git.duniter.org/clients/g1companion) | — |
> | **Tikka (compta/finance, Python)** | 2021-07-30 | 2026-04-29 | [clients/python/tikka](https://git.duniter.org/clients/python/tikka) | install via `pipx` ; AppImage envisagée |
> | **Silkaj (CLI Python)** | 2018-04-06 | 2026-04-30 | [clients/python/silkaj](https://git.duniter.org/clients/python/silkaj) | [site](https://silkaj.duniter.org) · [forum](https://forum.duniter.org/c/clients/silkaj/30) |
> | **Ğcli / g1cli (CLI Rust)** | 2022-06-24 | 2026-04-17 | [clients/rust/g1cli](https://git.duniter.org/clients/rust/g1cli) (anciennement `gcli-v2s`) | — |
> | **Ğ1superbot (chatbot Matrix/Telegram)** | 2023-03-04 | 2026-04-12 | [kapis/g1-wallet-bot](https://git.duniter.org/kapis/g1-wallet-bot) | [bot Telegram](https://t.me/g1superbot/) |
> | **Duniter-connect (extension fork Polkadot.js)** | 2023-12-05 | 2026-03-20 | [clients/duniter-connect](https://git.duniter.org/clients/duniter-connect) | [forum](https://forum.duniter.org/t/extension-duniter-connect-fork-de-polkadot-js/11769) |
> | **Duniter-portal (fork Polkadot apps)** | 2024-07-21 | 2026-03-14 | [clients/duniter-portal](https://git.duniter.org/clients/duniter-portal) | [forum](https://forum.duniter.org/t/duniter-portal-fork-de-lapp-polkadot-js/12365) |
> | **Duniter Panel (debug, Vue)** | 2026-03-19 (renommage) | 2026-03-19 | [HugoTrentesaux/duniter-vue](https://git.duniter.org/HugoTrentesaux/duniter-vue) | [tag forum](https://forum.duniter.org/tag/duniter-panel) |
> | **Carte Ğ1 (site Vue3)** | 2021-06-02 | 2026-04-01 | [websites/carte-g1](https://git.duniter.org/websites/carte-g1) | [carte.monnaie-libre.fr](https://carte.monnaie-libre.fr) |
> | **Juna.cat (événements/marchés Catalogne)** | — | — | externe (hors [git.duniter.org](http://git.duniter.org)) | [juna.cat](https://juna.cat/) |
> 
> ### Sites & monitoring
> 
> | Nom | Création | Dernière MAJ | Source | Autres liens |
> | --- | --- | --- | --- | --- |
> | **[monnaie-libre.fr](http://monnaie-libre.fr)** | 2021-02-14 | 2026-04-13 | [websites/monnaie-libre-fr](https://git.duniter.org/websites/monnaie-libre-fr) | [site rendu](https://monnaie-libre.fr) ; CMS Nuxt + nuxt-content + NetlifyCMS ; annonces multilingues FR/EN/IT/ES/DE/PT/EO |
> | **[g1currency.org](http://g1currency.org)** | — | — | source non publié sur [git.duniter.org](http://git.duniter.org) | [site](https://g1currency.org) |
> | **v2s-monitor (déploiement)** | 2026-02-17 | 2026-03-07 | [tools/v2s-monitor](https://git.duniter.org/tools/v2s-monitor) | [v2s-monitor.axiom-team.fr](https://v2s-monitor.axiom-team.fr) |
> | **Forum Duniter** | — | — | (Discourse hébergé) | [forum.duniter.org](https://forum.duniter.org) |
> 
> ### Documentation & ressources de référence
> 
> | Ressource | Lien |
> | --- | --- |
> | Liste des paramètres protocolaires Duniter v2s | [forum 9297](https://forum.duniter.org/t/liste-des-parametres-protocolaires-de-duniter-v2s/9297) |
> | Liste des endpoints | [forum 12347](https://forum.duniter.org/t/liste-des-endpoints/12347) |
> | Checklist migration forgerons | [forum 13588](https://forum.duniter.org/t/ma-checklist-pour-rejoindre-le-reseau-1-le-jour-de-la-migration/13588) |
> | Issues `required-for-gtest` | [duniter-v2s issues](https://git.duniter.org/nodes/rust/duniter-v2s/-/issues/?label_name%5B%5D=required-for-gtest) |
> 
> * * *

## 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](https://forum.duniter.org/t/use-ed25519-vs-sr25519-for-v2s-clients/12996) ; implémentation dans gcli via [g1cli!44 (mergée)](https://git.duniter.org/clients/rust/g1cli/-/merge_requests/44).
- **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)](https://git.duniter.org/clients/rust/g1cli/-/merge_requests/41).

### 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](https://pad.p2p.legal/dev-talk_2025-05-02)) et confirmée à la migration (devtalk du [2026-03-06](https://pad.p2p.legal/dev-talk_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](https://pad.p2p.legal/dev-talk_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](https://pad.p2p.legal/dev-talk_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)](https://git.duniter.org/HugoTrentesaux/ipfs-datapod/-/issues/25).

### 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)](https://git.duniter.org/nodes/networks/-/merge_requests/14).

### 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)](https://git.duniter.org/nodes/rust/duniter-v2s/-/issues/311) | Pris en charge par Moul |
> | **Identity on empty account** (transfer-all + compte membre vidable à 0) | [duniter-v2s#321 (closed 2026-02-27)](https://git.duniter.org/nodes/rust/duniter-v2s/-/issues/321) | Bug fixé dans Duniter v2 |
> | GTest wrong parameters (DU, certifications) | [duniter-v2s#323 (closed 2025-10-04)](https://git.duniter.org/nodes/rust/duniter-v2s/-/issues/323) ; [duniter-v2s!339 (mergée)](https://git.duniter.org/nodes/rust/duniter-v2s/-/merge_requests/339) | Pris en charge par Moul |
> | Hash divergent Cesium+ | [forum 12156](https://forum.duniter.org/t/donnees-cesium-plus-a-quoi-correspond-exactement-le-hash/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](http://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](https://forum.duniter.org/t/gecko-talks-user-support/9372/590) | Lecture du genesis hash |
> | Adoption ed25519 dans gcli | [g1cli!44 (mergée)](https://git.duniter.org/clients/rust/g1cli/-/merge_requests/44) | 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)](https://git.duniter.org/nodes/rust/duniter-v2s/-/issues/296) | Toujours ouverte |
> | Historique évaluations absent dans indexeur (oracle de distance) | [duniter-squid#17 (opened 2024-03-13)](https://git.duniter.org/nodes/duniter-squid/-/issues/17) | Toujours ouverte |
> | Postgis dans datapods (geoloc) | [ipfs-datapod#25 (opened 2025-02-02)](https://git.duniter.org/HugoTrentesaux/ipfs-datapod/-/issues/25) | Toujours ouverte |
> | **MR g1cli “Massive changes by Claude LLM”** (scan P2P) | [g1cli!60 (opened 2026-02-22)](https://git.duniter.org/clients/rust/g1cli/-/merge_requests/60) | 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](https://forum.duniter.org/t/squid-soucis-demarrage-de-zero-pour-image-0-5-6/13522) | Discussion forum ouverte |
> | Indexeur Ğtest impossible à démarrer from scratch | [forum 13632](https://forum.duniter.org/t/indexeur-squid-bloque-sur-le-meme-bloc-gtest/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 |

---

_[View the full topic](https://forum.duniter.org/t/development-talks/12627)._
