Multi-AP Phone Mesh · DTN Store-and-Forward · On-Phone ValueFlows Node (VF-Full v1.0) · Agent-Led Commune OS
This is the full, optimum-case specification for building a Solarpunk commune network on repurposed phones—Android-first—where:
- Phones form multiple AP “islands”
- Everyone carries at least one bridge node
- Data moves via DTN bundles with TTL, cache budgets, and speculative caching
- Phones can (optimum-case) do multi-hop routing (not just syncing)
- Every node can run a ValueFlows-compatible local node for offers/needs/inventory/plans
- AI agents help with matching, scheduling, permaculture planning, and education, with explicit guardrails
A commune-scale “network commons”: local-first coordination for:
- food sharing, pantry/tool/seed libraries
- mutual aid requests and offers
- work parties and seasonal planning
- education that maps directly onto tasks
- “Everyone carries the whole internet”
- cryptocurrencies, tokens, global ledgers
- always-online SaaS dependencies
All roles use the same software family; configuration differs.
- low storage + battery-first
- can publish and receive offers/needs
- can bridge opportunistically, but not required
- larger cache
- prioritized forwarding for time-sensitive bundles
- aggressive index sync + query response
- runs Wi‑Fi AP on schedule / high uptime
- publishes indexes frequently
- optionally hosts local portal + search
- stores large knowledge bundles and serves chunks
- best solar powered, high uptime
- Several Wi‑Fi APs exist simultaneously:
- Garden AP
- Kitchen AP
- Workshop AP
- Library AP
- Phones join whichever AP is nearby.
- Local services (portal, search) are reachable inside the current island.
Bridging happens via store-and-forward DTN bundles:
- Bridge nodes walk/bike/drive between islands
- They carry pending bundles and forward them on contact
This yields “mesh behavior” even if IP routing is imperfect.
You requested phones do routing, not routers. This is included as an optimum-case mode (with fallback).
All payloads move as bundles:
{
"bundleId": "b:sha256:...",
"createdAt": "2025-12-17T10:00:00Z",
"expiresAt": "2025-12-20T00:00:00Z",
"priority": "normal",
"audience": "local",
"topic": "mutual-aid",
"tags": ["food","perishable"],
"payloadType": "vf:Listing",
"payload": { "...": "..." },
"hopLimit": 20,
"receiptPolicy": "none",
"signature": "sig:..."
}inbox: received, unprocessedoutbox: created locally, not yet forwardedpending: awaiting forwarding (may include duplicates)delivered: acknowledged delivery (optional)expired: dropped due to TTLquarantine: invalid signatures / policy violations
- emergency: 6–24 hours
- perishable food offers: 24–72 hours
- time-sensitive needs: 24–72 hours
- tool lending: 7–30 days
- skill offers: 30–90 days
- plans/processes: until end + 30 days
- protocols/lessons: 180–365 days
- indexes: 1–7 days
Each node has budgets:
- storage budget (MB/GB)
- bandwidth budget (per hour/day)
- battery budget profile (aggressive / balanced)
Bundles are dropped when:
- expired
- over hopLimit
- over budget and low priority
Nodes may store bundles they are not subscribed to if:
- high utility (emergency, perishables)
- high request rate (“hot” bundles)
- steward/lib role
- never forward expired
- forward emergency first
- forward perishables and time-sensitive coordination next
- forward trusted/private only to eligible peers
- use remaining bandwidth for:
- public posts
- indexes
- knowledge chunks
public: anyone may carrylocal: only within a defined community boundary (keyrings / AP domain)trusted: only nodes meeting trust thresholdprivate: encrypted direct delivery only
Trust methods (choose one baseline):
- manual trust lists
- web-of-trust scoring
- steward-issued membership tokens (non-monetary, revocable)
Because not everyone stores everything, discovery relies on rolling indexes.
InventoryIndex: what ResourceSpecs and Listings exist locallyServiceIndex: what skills/education are availableKnowledgeIndex: what files/protocols/lessons exist (hashes)
Indexes:
- are small
- have short TTL
- are aggressively replicated
Nodes can broadcast query bundles:
- “need childcare within 7 days”
- “offer tomatoes within 3 days”
- “protocol compost” Peers respond with:
- matching references (bundleIds)
- optional small previews
- where to fetch chunks (library nodes)
- every file has
contentHash - metadata bundles reference hashes
- split into 256KB–1MB chunks
- chunks are bundles with TTL and priority
Nodes fetch chunks:
- from nearby library nodes
- from speculative caches
- opportunistically via bridge nodes
You want multi-hop routing done by phones. This is difficult but spec’d.
Requirements
- LineageOS (rooted)
- kernel with batman-adv support (built-in or module)
- ability to create mesh interface (bat0)
Behavior
- nodes participate in a batman mesh
- assign addresses from
10.44.0.0/16 - route traffic multi-hop over bat0
Reality constraint Most phones struggle with AP + mesh simultaneously on one Wi‑Fi interface. Optimum-case assumes one of:
- dual radio (USB Wi‑Fi via OTG)
- device supports concurrent AP + P2P in driver
- accept reduced reliability
- no kernel modules
- device-dependent
- gives near-mesh behavior; may approximate multi-hop at app/virtual layer
- no routed IP mesh across islands
- still full functionality via DTN bundles and indexes
Hard requirement: all core apps must work in Mode C.
Agents
- people, groups, places
Locations
- physical places with optional lat/lon
ResourceSpec
- categories/types (tomatoes, shovel, tutoring)
ResourceInstance
- trackable instances/batches (a specific shovel; a batch of tomatoes)
Listing
- offers and needs (UX primitive)
Match
- suggested/accepted pairing of offer+need
Exchange
- negotiated arrangement with constraints and window
Event
- handoff/work/delivery/harvest/class etc
Process
- transforms inputs→outputs (permaculture, cooking, repairs)
Commitment
- promises to do work/deliver/teach etc
Plan
- container of processes/commitments + dependencies (weekly/seasonal)
Protocol
- repeatable method (compost recipe)
Lesson
- microlearning tied to tasks
- UX stays simple: Offer/Need + category + quantity + where/when
- Backend stores the richer objects so agents can plan and audit
- Each object is signed by its authoring Agent.
- DTN bundles carry signatures; invalid signatures go to quarantine.
Agents emit proposals, not unilateral allocations (initially).
- Commons Router Agent
- decides what this node caches/forwards given its role and budgets
- Mutual Aid Matchmaker
- proposes Matches/Exchanges
- Perishables Dispatcher
- prioritizes short-TTL food redistribution
- Scheduler / Work Party Agent
- proposes sessions and commitments
- Permaculture Seasonal Planner
- goals → seasonal plan → weekly processes
- Education Pathfinder
- recommends lessons/protocols tied to next work
- Inventory/Pantry Agent
- suggests replenishment, predicts shortages (opt-in)
- human ratification for allocations/commitments (configurable later)
- every proposal bundle includes:
- explanation (short)
- inputsUsed (bundleIds)
- constraints (dietary/access/privacy)
- no surveillance requirement to participate
- LineageOS (Android) + root (optimum-case)
- F-Droid
- Termux
- Briar (secure messaging + forums)
- Manyverse (SSB) (social feed / bulletin)
- Syncthing (file distribution)
- Kiwix (offline knowledge)
- Organic Maps (offline maps)
- DTN bundle daemon (Android service)
- ValueFlows node (local store + API + UI)
- Index publisher and query responder
- Agent modules (proposal-only)
- small cache (e.g., 256–1024MB)
- TTL enforcement strict
- forwards only public/local + time-sensitive
- medium cache (e.g., 2–8GB)
- forwards perishables/emergency aggressively
- stores indexes and responds to queries
- hotspot schedule
- high uptime settings
- publishes indexes frequently
- optional portal hosting
- large cache (tens of GB if available)
- serves file chunks
- hosts kiwix + knowledge portal
- Patchwork mesh (multi-AP + bridge nodes)
- DTN bundle daemon (TTL + caches + forwarding policies)
- VF node storage + listing UI
- Rolling indexes + queries
- Files: chunking + retrieval
- Agents: matchmaker + scheduler (proposal-only)
- Permaculture: plans/processes/protocols/lessons
- Optimum-case phone routing Mode A/B experiments
- Multi-AP islands operate independently
- Bridge nodes propagate time-sensitive bundles within hours
- Users can discover offers/needs via indexes without full replication
- VF node supports end-to-end flows: offers→match→exchange→event→audit
- Agents generate useful weekly plans + education modules
- Multi-hop routing works for at least a subset of devices; DTN fallback always works