4
Roadmap (phases)
Phase 0 – Environment Readydetails…
- Repo
backend/obambu_node(Python 3.11, FastAPI, SQLite). OK - Initial endpoints:
/health,POST /api/v1/device/hello. OK - Stack FastAPI + run
uvicorn app.main:app --reload. OK
Phase 1 – Radio slice (no security yet)details…
- Device endpoints: hello, config, content_index, content. OK
- Simple storage (JSON:
devices.json,docs/folder). OK - ESP32: hard Wi‑Fi, POST hello, fetch config, download content, LED blink. OK
- To do Implement API + ESP32 sketch.
Phase 2 – Docs + .enc files (fake crypto)details…
- Document CRUD endpoints. OK
- Structure
storage/docs/*.bin+meta/*.json(cleartext for tests). OK - ESP32: base64 → SPIFFS.
- OK Unified meta (sha256, size, enc flag, tags, timestamps).
Phase 3 – Mini-blockchain
- Tx pool + blocks as files (
blocks/00000001.json). OK - API:
POST /transactions,GET /chain/head,/chain/blocks/{id},POST /admin/chain/mine. OK - To do Simple periodic block generation. Append-only baseline.
Phase 4 – Multi-node sync
sync.pyto pull/push blocks and docs. First replication.- USB mode: import/export blocks. Air-gap resilience.
- To do Define link quotas/priorities. Flow control per link.
Phase 5 – Signatures & laptop cryptodetails…
- ed25519 via PyNaCl: keygen for mayors/communes/nodes.
- Client-side transaction signing, server-side verification. Trust anchored in keys.
- To do Choose COSE/CBOR or signed JSON. Interoperable envelopes.
Phase 5B – Forum (low-tech display)details…
- Lab forum page (reads inbox_valid.jsonl, no crypto). OK
- “Low tech box” display (text + signature badge). OK
- Thumbnails for images at low priority (buffer to plan). To do
- To do Integrate in bundles/blockchain later.
Phase 6 – Real .enc encryption
- libsodium encryption (nonce, MAC) for docs.
- ESP32 can carry .enc without full decrypt. Transport opaque payloads.
- To do Define document key rotation. Limit exposure if a key leaks.
Phase 7 – Mayors’ forum
- Tx FORUM_THREAD / FORUM_POST.
- Forum API + simple UI (FastAPI + Jinja2). Deliberation on-chain/off-chain hashes.
- To do Define TTL/scope per class (P0..P3). Keep urgent debates flowing.
7
Short-term backlog
Immediate technical
- To do Init repo
backend/obambu_node(FastAPI skeleton). Scaffold shared codebase. - To do Add empty READMEs in
devices/*with objectives. Guide field teams. - To do Prepare mock sync script (USB + HTTP). Exercise bundle/chain flows.
- To do Define document meta format (.json) + examples. Consistent metadata across nodes.
Priority purchases
- Buy 2× ESP32 with u.FL + cables/antennas.
- Buy 2× outdoor Wi‑Fi CPE (TP-Link CPE210 or similar).
- Buy 1× low-power OpenWRT router (GL.iNet).
- Buy Solar panel + controller + 7Ah battery (for K kit).
Info to collect
- Info needed Local radio rules (power/band 2.4/5 GHz). Compliance.
- Info needed Weather/obstacles for relay placement. Site survey.
- Info needed Exact town hall UI needs (vote, attestation, revocation). Design UX accordingly.