Skip to content

Roadmap

Raiznet is pre-1.0. This page is the honest map of what exists versus what is designed — every other page in these docs marks design-stage features accordingly.

Implemented today

  • Signed telemetry ingestion — Ed25519 signature over a deterministic raw string, verified against the registered device key; idempotent batched ingest.
  • Device registryPOST /v1/devices with lazy registration from the firmware.
  • Per-field privacyplain / encrypted / omit dispositions with per-destination overrides, enforced at ingestion (Privacy Model).
  • Dual endpoints, dual databases — public (:3000, raiznet_public.db) and local (:3001, raiznet_private.db) in one process, isolated at the database level.
  • Node identity — BIP-39 mnemonic at DATA_DIR/identity.mnemonic, Ed25519 keypair derived deterministically.
  • Reference firmware — ESP32 captive-portal provisioning, BIP-39 owner identity, flash-wear-aware seq management, retransmission until confirmation.

In design

These are specified (in this documentation and in ADRs) but not implemented. Details may change:

  • Rust node (raiznetd) — behaviour-parity reimplementation of the node as a static single binary, targeting very small ARM boards with no runtime dependencies.
  • Signed event log — append-only, hash-chained log per node as the source of truth, with SQLite rebuilt from it as a derived index (ADR-002).
  • Node-to-node replication (ADR-004) — sync v1: HTTP pull between configured peers (LAN, VPN, public IP); sync v2: dial-by-pubkey transport built on an existing Rust P2P foundation (iroh as primary candidate, validated on real rural 4G/CGNAT links before adoption), with community-runnable relays — never a privileged gateway.
  • Networks, filters and catalogs — topics, NetworkManifest, composable MAC filters, CropCatalog (Networks & Filters).
  • Local endpoint authentication — owner challenge-response with the User key (Local API).
  • Combined owner view — merging public + private readings by (device_pubkey, seq) on the local endpoint.
  • Canonical Protobuf encoding — binary wire format from the schemas in Proto Schemas; JSON stays for compatibility (ADR-001).
  • Ingestion hardening — strict cross-check between the signed raw string and the JSON convenience fields.
  • ESP-NOW device mesh — battery sensors relaying through mains-powered neighbors.

Future

  • DeviceClaim / DeviceTransfer — ownership chain events (Device Lifecycle).
  • Desktop app (Tauri) bundling a full node, and a mobile app.
  • Intelligence layer — MCP server over the local endpoint, regional aggregations, collective crop calibration (Collective Intelligence).

Compatibility policy

The contracts documented in the Public API and Telemetry pages are treated as frozen for the current firmware generation: changes that would break a device in the field (status codes, duplicate semantics, the raw string grammar) are made only behind explicit versioning.