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

Security & Obambu nodes

From the first FastAPI to the local mayors’ blockchain: how an Obambu node stores, signs, and transports documents, today and tomorrow (Security dev roadmap).

1. Overview: what is an Obambu node?

An Obambu node is a small server (laptop, mini-PC, RPi, etc.) playing three roles:

Technically it’s a FastAPI app with SQLite, some folders, and an admin security layer.


2. Storage: files + metadata

The storage code (storage.py) organizes data simply:

When a document is saved via the admin API (/api/v1/admin/docs), the node:

For boxes or phones, the “device-side” API lets them simply:


3. Admin security: token & ed25519 signatures

Sensitive operations (add documents, manage station profiles, import bundles) are protected by two mechanisms:

3.1. How admin signatures work

The admin_sign.py tool generates a key pair (private + public) and signs admin requests:

For each sensitive request, we sign:

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

The headers sent are then:

The node checks that:


4. “LuckyBlock” bundles: secure opportunistic transport

To cross areas without permanent network, Obambu uses bundles, aka LuckyBlocks: compressed, signed packets of documents carried physically (USB) or by couriers (phones, laptops, S/H boxes).

4.1. Bundle contents

The /api/v1/bundles/export API builds a bundle from the node’s documents:

The bundle_carrier.py tool makes it simple to:

4.2. Role of the K-station agent

The station_k_agent.py script acts as a minimal agent for a K station (town hall/relay) on laptop or RPi: