Bonjour à tous,
Avec l’arrêt de la V1 et le passage à Duniter V2, Gchange se retrouve sans backend fonctionnel depuis un moment. Le sujet Gchange v2 : modération ou/et fédération ? posait déjà la question il y a plus d’un an, sans qu’un projet concret n’émerge à ma connaissance. Je voudrais relancer la discussion avec une proposition concrète et volontairement simple, et avoir vos retours avant de me lancer dans le développement avec Claude AI.
Pourquoi repartir de zéro plutôt que d’adapter Gchange
L’architecture historique (pod Cesium+/Gchange en Java + ElasticSearch + fédération multi-pods) est lourde à maintenir pour ce que fait réellement le service : afficher des annonces et permettre une mise en relation. Avec Duniter V2 :
- Le format d’identité change (adresses plutôt que clés publiques brutes), donc une bonne partie du code client est à refaire de toute façon.
- Les paiements restent strictement wallet-to-wallet, on-chain. Le site n’a jamais besoin de toucher à des fonds ni même de connaître un solde, il affiche juste une adresse Ğ1 et un montant indicatif. Ça simplifie énormément ce qu’on doit construire : pas de logique de paiement à sécuriser, juste de la donnée hors-chaîne (texte, photos, géoloc).
- ElasticSearch est un service supplémentaire à opérer pour un volume de données qu’une recherche full-text PostgreSQL classique (
tsvector+ index GIN) gère très bien à l’échelle de la communauté Ğ1.
Proposition d’architecture
- Backend : Node.js/Express + PostgreSQL (recherche full-text native, pas d’ES).
- Authentification : signature de message avec le wallet (pas de mot de passe), à la manière de “Sign-In with Ethereum”, possession de la clé = preuve d’identité.
- Statut de membre : interrogation directe d’un nœud Duniter V2 (RPC Substrate) pour afficher un badge “membre certifié”, sans dépendre d’un pod tiers ni dupliquer la toile de confiance.
- Paiement : génération d’un lien/QR code pré-remplissant une transaction (montant + adresse + référence) que l’acheteur ouvre dans son wallet (Cesium²/Ğecko). Le site n’orchestre rien, il ne fait qu’assister la saisie.
- Photos : stockage simple sur le serveur ou un object storage S3-compatible.
- Hébergement : une seule instance pour démarrer. Pas de fédération multi-pods dans une v1, on pourra en rediscuter si plusieurs instances voient le jour, mais je pense que ça peut attendre.
Claude AI a esquissé un premier schéma de base de données (wallets, annonces, catégories, photos, messages, avis) je peux le partager en réponse si ça intéresse quelqu’un.
Ce que je cherche avec ce post
Avant d’investir du temps de développement, j’aimerais avoir vos retours sur :
- Existe-t-il déjà un projet en cours que je ne connaîtrais pas (au-delà du sujet de 2025 cité plus haut) ?
- Le choix techno (Node/Express/PostgreSQL plutôt que Java/ES) vous semble-t-il pertinent, ou y a-t-il des raisons de garder l’architecture pod/ES que je n’aurais pas en tête ?
- L’authentification par signature de wallet : des retours d’expérience de ceux qui l’ont déjà implémentée sur Duniter V2 ?
- La modération : avec un seul site centralisé (pas de fédération), comment gériez-vous ça sur Gchange ? Des pièges à éviter ?
Je ne suis pas développeur de métier (chef de projet digital de profil, avec 20 ans d’XP web/WordPress/SEO) j’avance avec l’aide d’IA pour la partie code, donc toute relecture technique sera particulièrement bienvenue.
Merci d’avance pour vos retours !