Index <= Page index / Language => << ENG >>

Sécurité & nœuds Obambu

De la première API FastAPI jusqu’à la blockchain locale des maires : comment un nœud Obambu stocke, signe et transporte les documents, aujourd’hui et demain (Roadmap dev Sécurité).

1. Vue générale : qu’est-ce qu’un nœud Obambu ?

Un nœud Obambu est un petit serveur (laptop, mini-PC, RPi, etc.) qui joue trois rôles :

Techniquement, le nœud actuel est une application FastAPI avec un stockage SQLite, quelques dossiers de fichiers, et une couche de sécurité admin.


2. Stockage : fichiers + métadonnées

Le code de stockage (storage.py) organise les données dans une arborescence très simple :

À l’enregistrement d’un document via l’API admin (/api/v1/admin/docs), le nœud :

Pour les boîtiers ou téléphones, l’API « coté appareil » permet simplement de :


3. Sécurité admin : token & signatures ed25519

Les opérations sensibles (ajouter des documents, gérer les profils de station, importer des bundles) sont protégées par une double mécanique :

3.1. Principe des signatures admin

L’outil admin_sign.py génère une paire de clés (secrète + publique) et signe les requêtes d’administration :

Pour chaque requête sensible, on calcule une signature sur :

METHOD + "\n" + PATH + "\n" + TIMESTAMP + "\n" + BODY

Les en-têtes envoyés deviennent alors :

Le nœud vérifie que :


4. Bundles « LuckyBlocks » : transport opportuniste sécurisé

Pour traverser les zones sans réseau permanent, Obambu utilise des bundles, aussi appelés LuckyBlocks : des paquets de documents compressés, signés et transportés physiquement (USB) ou via des porteurs (téléphones, laptops, boîtiers S/H).

4.1. Contenu d’un bundle

L’API /api/v1/bundles/export fabrique un bundle à partir des documents du nœud :

L’outil bundle_carrier.py permet de faire très simplement :

4.2. Rôle de la station K agent

Le script station_k_agent.py joue le rôle d’agent minimal pour une station K (mairie/relais) sur laptop ou RPi :

Cet agent représente le comportement minimal d’une mairie dans la couche LuckyBlock : absorber ce qui la concerne, relayer le reste.


5. Feuille de route logicielle (version lisible)

La base actuelle (nœud FastAPI + stockage + bundles + scripts de transport) est déjà suffisante pour tester le modèle en labo. La roadmap suivante détaille comment passer d’un « serveur de fichiers intelligent » à une blockchain locale des maires.

Phase 0 – Nœud de base (déjà présent)

Objectif simple : un nœud qui répond, stocke des documents et alimente les boîtiers.

Phase 1 – Sécurité admin robuste

Rendre sérieux l’accès admin avant de multiplier les nœuds.

Phase 2 – Bundles & ferries en conditions réelles

Tester les LuckyBlocks avec de vrais transports humains (USB, Termux, laptops).

Phase 3 – Journal d’événements type blockchain

Passer d’un simple stockage de fichiers à un vrai journal d’événements signés.

Phase 4 – Synchro de la chaîne entre nœuds

Propager les événements (blocs) en plus des documents.

Phase 5 – Forum des maires & votes

Utiliser la chaîne pour des usages politiques concrets.

Phase 6 – Optimisation & simplification pour terrain

Aller vers un système que des non-techniciens peuvent maintenir.


6. Conclusion

Le système actuel n’est pas encore une « blockchain complète » au sens académique. C’est volontaire : la priorité est de disposer d’un nœud simple, transportable et sécurisé que les mairies peuvent utiliser, même avec trois laptops et deux ESP32.

La blockchain locale des maires émergera progressivement en ajoutant un journal d’événements signés, des blocs, puis une synchronisation entre nœuds par LuckyBlocks et liens Wi-Fi.