Aller au contenu

Wattch

Une frontière daemon/CLI en Rust pour la capture locale d'énergie et de télémétrie, fondée sur des classes de preuve explicites, la validation déterministe et des traces rejouables.

Rôle
Chakib a conçu la frontière daemon/client, le protocole et le modèle de validation, réalisé le prototype RAPL puis l'a fait évoluer vers une base indépendante du backend, centrée sur les traces et les scénarios déterministes.
État actuel
Le prototype Rust v0 public prouve RAPL, le framing protobuf et la collecte Unix socket. Une réécriture protocol-first locale ajoute traces rejouables et validation déterministe ; elle n'était pas publiquement accessible pendant l'audit.
Transcription du daemon de test déterministe Wattch
Sortie réelle du scénario déterministe versionné ; preuve de protocole, pas mesure énergétique matérielle.
01

Contexte et problème

Les compteurs énergétiques matériels peuvent exiger des privilèges, tandis que développeurs et outils de benchmark ont besoin d'un workflow sûr, reproductible et non privilégié qui ne surinterprète pas le bruit.

02

Responsabilité et contribution

Chakib a conçu la frontière daemon/client, le protocole et le modèle de validation, réalisé le prototype RAPL puis l'a fait évoluer vers une base indépendante du backend, centrée sur les traces et les scénarios déterministes.

Responsabilités

  • Implémentation du daemon, de la CLI et des crates partagées en Rust.
  • Définition du framing protobuf du prototype v0 et d'une enveloppe versionnée stricte dans Wattch Core.
  • Ajout de scénarios déterministes et de validations golden avant les affirmations matérielles.
  • Documentation des privilèges, de l'authentification des pairs, des compteurs et des échecs.
03

Architecture et flux de données

Un daemon d'acquisition privilégié lit les compteurs bruts et sert un protocole strict sur socket local. Les clients CLI et Python non privilégiés capturent des descripteurs et lots d'échantillons dans des artefacts rejouables ; l'interprétation reste hors ligne.

  1. RAPL powercap Linux ou source déterministe
  2. Daemon d'acquisition Rust
  3. Protocole local Unix socket encadré
  4. Client CLI / Python
  5. Artefact de trace brute immuable
  6. Inspection et validation hors ligne
04

Décisions d’ingénierie

Séparer acquisition privilégiée et clients non privilégiés.

RAPL peut demander une élévation ; la socket Unix devient une frontière étroite et auditable.Alternative écartée: Laisser chaque processus Python ou CLI lire directement les compteurs protégés.

Garder le daemon sans interprétation.

Les preuves brutes restent rejouables et les baselines, agrégations et conclusions évoluent hors ligne.Alternative écartée: Calculer joules/token, scores ou rapports dans le chemin d'acquisition critique.

05

Fiabilité, sécurité et évaluation

  • Les invariants rejettent sources inconnues et séquences non monotones.
  • Un daemon déterministe valide le protocole sans présenter les valeurs synthétiques comme mesures matérielles.
  • Le daemon orienté production documente permissions de socket, identité Linux du pair, récupération des sockets obsolètes et pannes partielles.
06

Résultats et état actuel

Le prototype Rust v0 public prouve RAPL, le framing protobuf et la collecte Unix socket. Une réécriture protocol-first locale ajoute traces rejouables et validation déterministe ; elle n'était pas publiquement accessible pendant l'audit.

Groupes technologiques

Systèmes

Rust, Linux, RAPL, Unix sockets

Protocole

Protobuf, Frames binaires, Descripteurs typés

Validation

Daemon déterministe, Golden tests, Traces rejouables

07

Preuves et sources