4
Roadmap logiciel (phases)
Avancement récent (node_K)
- Station K sur RPi : service systemd + arborescence
/opt/obambou/node_K, data hors repo (/var/lib/obambou/node_K) + spool (/var/spool/obambou/node_K). OK - Accueil Station K (petits écrans) + maintenance séparée (route
/repairman). OK - City docs : endpoints JSON + download direct, compatibles ESP32 (public/admin). OK
- Concept node_K/node_S compatibles · Roadmap hub
Phase 0 Environnement Readydetails
- Repo
backend/obambu_node(Python 3.11, FastAPI, SQLite). OK - Endpoints init :
/health,POST /api/v1/device/hello. OK - Stack FastAPI + lancement
uvicorn app.main:app --reload. OK - Déploiement Station K (RPi) : service systemd + data hors repo via
OBAMBOU_STORAGE_DIR. OK
Phase 1 Slice radio non sécudetails
- Endpoints device : hello, config, content_index, content. OK
- Stockage JSON simple (
devices.json, dossierdocs/). OK - ESP32 : Wi-Fi dur, POST hello, récupère config, télécharge contenu et clignote LED. OK
- faire Implémentation API + sketch ESP32.
Phase 2 Docs + fichiers .enc (fake crypto)details
- Endpoints documents CRUD. OK
- Structure
storage/docs/*.bin+meta/*.json(contenu en clair pour tests). OK - ESP32 : base64 SPIFFS.
- OK Format meta homogène (sha256, size, enc, tags, timestamps).
- City docs (public/admin) : index JSON + download direct pour ESP32. OK
Phase 3 Mini-blockchain
- Tx pool + blocs en fichiers (
blocks/00000001.json). OK - API :
POST /transactions,GET /chain/head,/chain/blocks/{id},POST /admin/chain/mine. OK - faire Génération de bloc périodique simple / cron.
Phase 4 Synchro multi-nuds
- Script
backend/OBB_node_K/tools/sync_mock.py: synchro blocs (HTTP pull + import admin). OK - Mode clé USB : export/import des blocs (
blocks/*.json). OK - faire Définir quotas/priors par lien.
Phase 5 Signatures & crypto sur laptopdetails
- ed25519 via PyNaCl : génération clés maires/communes/nuds. OK
- Signature JSON JCS côté client, vérification serveur + anti-rejeu. OK
- Scripts forum send/receive (CLI outbox/inbox). OK
- faire Choisir format COSE/CBOR ou conserver JSON signé.
Phase 5B Forum (affichage low-tech)details
- Page lab forum (lecture inbox_valid.jsonl, sans crypto). OK
- Affichage boîtier low tech (texte + badge signature). OK
- Thumbnails images en priorité basse (buffer à prévoir). faire
- faire Intégrer au flux bundle/blockchain plus tard.
Phase 6 Chiffrement .enc réel
- Chiffrement libsodium (nonce, MAC) pour docs.
- ESP32 peut transporter .enc avant déchiffrement complet.
- faire Définir rotation clés document.
Phase 7 Forum des maires
- Tx FORUM_THREAD / FORUM_POST.
- API forum + UI simple (FastAPI + Jinja2).
- faire Définir filtres TTL/portée par classe (P0..P3).
7
Backlog court terme
Technique immédiat
- OK Repo
backend/obambu_node(FastAPI skeleton). - OK READMEs dans
devices/*avec objectifs. - OK Script sync mock (USB + HTTP) :
backend/OBB_node_K/tools/sync_mock.py - OK Format meta document (.json) + exemples.
Achats prioritaires
- acheter 2 ESP32 avec u.FL + câbles/antennes.
- acheter 2 CPE Wi-Fi ext. (TP-Link CPE210 ou équivalent).
- acheter 1 routeur OpenWRT (GL.iNet) low-power.
- acheter Panneau solaire + contrôleur + batterie 7Ah (pour kit K).
Infos à collecter
- Info à trouver Réglementation radio locale (puissance/bande 2.4/5 GHz).
- Info à trouver Conditions météo/obstacles pour placement relais.
- Info à trouver Besoins exacts mairie pour UI (vote, attestation, révocation).