interplanetary-edge-orchest.../README.md

2.0 KiB

Interplanetary Edge Orchestrator: Privacy-Preserving Federated Optimization

This repository contains a minimal, working Python simulation of a privacy-preserving federated optimization layer designed for fleets of robotics operating with offline-first connectivity in space habitats. It demonstrates a simple, DP-friendly aggregation of local updates from multiple clients to form a global model.

Usage highlights:

  • Lightweight Client and Server implemented in Python.
  • Local data training using gradient descent for linear regression.
  • Privacy-preserving flavor via optional noise on aggregated updates.
  • Offline-first capability via local update caching (non-connected clients save updates to disk).

Privacy controls

  • The system supports DP-friendly clipping of updates to bound sensitivity.
  • Client.train accepts an optional clip_norm parameter (default None). If provided, per-update deltas are clipped to have L2 norm at most clip_norm before sending to the server.
  • Server.aggregate also supports an optional clip_norm parameter to clip all incoming updates prior to averaging, providing an additional privacy safeguard.
  • You can combine clipping with Gaussian noise (noise_scale) for stronger privacy guarantees.

Enhancements added (Planning Lens MVP)

  • PlanDelta provenance fields: The PlanDelta data model now includes optional provenance metadata (timestamp, author, contract_id, signature) to support auditing and deterministic replay in offline/offline-first scenarios.
  • Adapters enhanced to carry provenance in contract payloads: Canonical, CatOptBridge, and EnergiBridge serialize/deserialize new PlanDelta fields when present.
  • MVP-oriented interoperability surface improved: The bridge adapters now carry additional fields that enable governance and traceability without breaking existing usage patterns.
  • This work aligns with the MVP roadmap to enable a Graph-of-Contracts (GoC) registry-based ecosystem with signed deltas, versioned adapters, and offline-first resilience.

How to run tests:

  • This repository provides a test script via test.sh (see below).