Reciprocal Intelligence (PoC)
A consent‑first, offline‑friendly relay for moving small messages across communities with little or intermittent connectivity.
This project prototypes a community‑governed communications bridge that can hop short messages across nearby phones (Bluetooth/Nearby), LoRa/Meshtastic, Delay/Disruption Tolerant Networking (DTN), and ultimately SMS—all while enforcing explicit, reversible consent and data minimization.
Status: Proof‑of‑Concept (for research & field prototyping). Not production‑ready.
Why it exists
In places where internet is unreliable or expensive, communities still need ways to coordinate: alerts, check‑ins, small surveys, logistics. This PoC aims to:
Deliver tiny messages without internet by exploiting whatever transport is available (BT, LoRa, DTN, SMS).
Center consent & governance (grant/deny/revoke, community oversight) rather than collect data by default.
Minimize identifiers & risk (salted hashes, short TTLs, local storage, no surveillance).
How it works (at a glance)
Local hops (Android app) The Android OfflineRelayApp advertises and discovers peers using Google Nearby Connections (P2P, point‑to‑point). It can pass small JSON payloads between nearby devices, letting messages “walk” toward a node that has a modem or other uplink.
Gateway node (Python agent + GSM modem) On a node with a GSM modem running gammu-smsd, inbound SMS arrive as text files in a spool directory. The Python agent watches that inbox, parses messages, and enforces consent before acting.
Consent ledger & auto‑replies A tiny SQLite ledger records consent events (granted/denied/revoked) keyed by salted+hashed identifiers (no plaintext numbers in the DB). The agent replies automatically with bilingual (ES/EN) messages:
CONSENT YES → records consent and sends a welcome.
REVOKE → revokes consent and confirms.
Other texts without consent → politely blocked.
Outbound queue (PoC) The CLI can queue outbound SMS. For safety in this PoC, queue processing won’t send when only a hash is known (prevents accidental disclosure). Direct sends use gammu-smsd-inject.
Optional transports
DTN (IBR‑DTN): Example config to bundle and forward payloads with long delays or disruptions.
Meshtastic/LoRa: Minimal example to push JSON over a LoRa mesh.
Ethos
Guided by CARE Principles & UNESCO AI Ethics (2021):
Consent & Revocation: People can opt‑in and opt‑out at any time via SMS.
Local Control: Keep plaintext identifiers out of the DB; use salts & hashes.
Data Minimization: Keep only what’s needed, for as short as needed (TTL).
No Surveillance: No background scraping, tracking, or remote analytics.
Community Governance: Add community (ayllu) approval steps before deployments.