Ce qui est fait, ce qui reste
Vue d’ensemble du travail accompli et du travail restant, jusqu’à un réseau de nœuds qui réplique et vérifie la chaîne. Un point n’est marqué « Fait » que s’il est livré et vérifié ; les essais sur carte sont précisés.
1 · Fondations8/11
Le produit fonctionne de bout en bout : dessiner, valider, miner, afficher.
- FaitPipeline complet dessin → candidat → votes → bloc → écransArchitecture pull : aucun ESP n’est contacté directement.
- FaitPod Studio : page de dessin pixel-exacte (Essentiel / Studio / Pro)Moteur pur, replay identique à l’image, brouillon local.
- FaitChaîne de blocs liée par SHA-256, conservée sans expirationRegistre unique dans Redis (voir « Décentralisation »).
- FaitÉcrans : OLED, e-ink 2,7″ / 2,9″, TFT 1,8″ / 2,8″Le TFT 2,8″ tactile a voté en v2 (blocs #100, #103, #118). La station UNO R4 + TFT 1,8″ + capteurs (r4tft18-2.3) est intégrée mais seulement partiellement observée : voir « Station R4 ».
- FaitCartes : ESP8266 et UNO R4 WiFiMêmes protocoles, firmwares par famille.
- FaitProfils d’artistes, appairage des écrans, autorisation d’un autre équipement
- FaitPage Réseau en direct (constellation, flux observés ou reconstitués)Les flux reconstitués sont signalés par une astérisque.
- FaitOutil « Ancien ➜ Nouveau » pour migrer les blocs d’une carte reflashée
- En coursCercles privés d’artistes : invitations avec consentement, droits côté serveur, messages texteLivré et testé en mémoire ; à essayer avec deux profils réels. Aucun média.
- À fairePartage d’images dans les cercles (PNG, JPEG, GIF)Demande un stockage objet privé (jamais Redis) : service et coût à choisir.
- En coursRemix : œuvre dérivée d’un bloc (filiation engagée dans le hash) et reprise d’un dessin rejetéLivré et testé côté serveur et studio ; pas encore essayé avec un vrai vote en production. Aucune animation pour l’instant.
2 · Animations3/5
Une animation est un bloc comme un autre, avec son atelier de création.
- FaitAnimations dans le consensus (clip PBC1, bloc kind: animation, galerie)
- FaitLecture sur TFT 2,8″, TFT 1,8″ et OLEDMultiscreen : animation sur l’OLED, image fixe sur l’e-ink, vérifié. Station R4 + TFT 1,8″ (clip PBC1 lu depuis la carte SD) : intégrée et compilée, jamais observée sur la carte.
- FaitAtelier d’animation refait : plein écran, 3 modes, 7 brosses, fantôme, retour/annulerVérifié dans l’aperçu ; essai sur téléphone réel à faire.
- À faireCanvas maître 256×128 exporté par écran avec trameSans reflash. Étape suivante de l’atelier.
- À faireAnimations VALIDÉES par calcul (racine, empreinte et métriques par image)Spécification relue par l’audit et référence de calcul livrée (TypeScript et C++ identiques sur plus de 200 clips) ; l’automate de lecture du clip est aussi compilé pour l’ESP8266 et l’UNO R4 (moins de 2 Ko de RAM, jamais essayé sur carte) ; aucun firmware ne l’utilise encore : aujourd’hui les animations sont encore votées en v1, écho du score serveur. Depuis le 28/10 un vote v1 « écho » est de nouveau admis pour les animations seulement (ANIM_V1_VOTE, transitoire) : ce n’est pas une validation du contenu.
3 · Validation réelle par les appareils8/12
Les cartes recalculent l’image et signent : fini l’écho du score du serveur (images fixes).
- FaitMétriques entières « pod-metrics-2 » (entropie, transitions, runs)Identiques sur serveur, ESP8266 et R4 au ppm près (test différentiel C++/TypeScript).
- FaitVote v2 : SHA-256 du contenu + métriques + verdict, signé Ed25519
- FaitVotes atomiques (script Redis) et refus v2 non bloquants pendant le canari
- FaitVote v2 sur ESP8266 (e-ink 2,9″, multiscreen, TFT 1,8″) et R4 (e-ink 2,9″, 2,7″, 2,7″+OLED, TFT 1,8″)Essai réel à 4 appareils, 06/10/2026 ; le 14/10/2026, R4 e-ink 2,9″, R4 TFT 2,8″, ESP8266 e-ink 2,9″ et multiscreen ont voté en v2 sur la carte (blocs #100, #101, #103).
- FaitRéseau de vote réel : seuls les firmwares qui savent voter en v2 comptent, reçoivent et votentEn production le 14/10/2026 : un vote « écho » v1 ne suffit plus à miner (au moins un vote v2 exigé), les appareils non appairés, inactifs, capteurs ou à l’ancien firmware sont exclus du quorum et du vote. Interrupteur de retour arrière documenté. Le 27/10/2026 l’électorat réel ne comptait qu’un appareil (animations impossibles à voter depuis le 14/10, seuil d’exclusion à un seul manque) : fiabilisation en cours, voir « Toute carte capable vote tout dessin ».
- En coursToute carte capable de valider vote sur tout dessin, quel que soit son écranLe serveur invite déjà tous les appareils capables, sans filtrer l’écran. Corrections locales non flashées (28/10) : candidat conservé quand une image arrive, tampon pris à la demande, refus « blank » R4 corrigé pour les fonds colorés, quorum à trois manques consécutifs, électorat figé dans le candidat. Les capteurs seuls restent exclus du quorum aujourd’hui ; les validateurs sans écran passeront par une capacité explicite (non implémentée). Plan : docs/PLAN_RESEAU_VALIDATEURS_ET_STATION_R4_2026_10_28.md.
- En coursBWR + OLED : écran capteur propre et animations du réseau sur l’OLEDInstallé le 29/10/2026 chez le porteur (eink29bwr-2.13) : la mise à jour a fonctionné, mais l’OLED n’a encore reçu aucune animation (aucune animation n’a été minée). Remix d’une animation corrigé (l’animation entière se rouvre dans l’atelier), l’OLED apparaît comme second écran dans la vue réseau, qui rejoue la boucle des écrans animés. Chantier suspendu (28/10/2026) : la carte du cousin est figée depuis la réception de la première animation, en attente de son redémarrage ; la cible reste un BWR qui déclare lui-même ses deux écrans comme le 2,7″ + OLED.
- En coursVote v2 sur l’ESP8266 e-ink 2,7″ « seul »Firmware eink27bw-2.1 compilé ; essai sur la carte à faire.
- FaitVote v2 sur R4 + TFT 2,8″ tactileVote v2 observé sur la carte le 14/10/2026 (blocs #100 et #103 : R4 + TFT 2,8″ parmi les validateurs). Historique : un canari SANS vote avait été préparé (client TLS borné, JSON et carte SD sur piles dédiées, instrument de pile) : compilé et vérifié sur l’hôte, jamais essayé sur la carte ; le vote, lui, reste à reprendre dans un lot suivant (marge de pile encore trop étroite).
- FaitEd25519 sur les cartes UNO R4 : calcul sur une pile dédiéeValidé sur carte : Ed25519 sur pile dédiée (PodEd), plus aucun appel direct hors de cette enveloppe ; marge relevée à chaque signature.
- FaitRéseau sécurisé (TLS) des cartes UNO R4 : transactions sur une pile dédiéeValidé sur carte (UNO R4) : toute transaction TLS tourne sur une pile dédiée, client TLS borné (PodBoundedSSL), appels Wi-Fi enveloppés ; les marges sont relevées sur chaque firmware R4 compilé.
- À faireArchiver une trace série par variante (octets, hash, métriques, verdict)Preuve reproductible à joindre aux notes de canari.
4 · Preuves vérifiables hors du serveur0/9
Rendre un bloc vérifiable par n’importe qui, sans faire confiance au serveur.
- En coursConserver les votes signés dans le bloc, liés au parentHashCode livré derrière un interrupteur, éteint par défaut, pas encore essayé sur le réseau réel : aujourd’hui les votes sont supprimés après le minage. La liaison au parentHash attend le vote v3 (firmware).
- En coursVérificateur public (recalcule hash, métriques, signatures, comité)Vérificateur et outil en ligne de commande livrés (hash, reçus, signatures, contenu) ; le comité et un second vérificateur indépendant restent à faire.
- En coursUn vote par profil, auteur exclu, appairage exigé pour voterCode livré derrière un interrupteur, éteint par défaut ; à essayer en mode « ombre » avant de l’activer. Aujourd’hui un appareil non appairé peut encore voter.
- À fairePreuve de possession de la clé à l’enregistrement, épinglage et récupération par le profil
- En coursComité déterministe de 7 profils, seuil 2/3, mineur rejouableCode livré derrière un interrupteur, éteint par défaut, pas encore essayé sur le réseau réel ; remplacera le quorum de 51 % et le tirage aléatoire. Verrouillé deux fois (un accusé explicite du risque est exigé) : la tolérance aux profils malhonnêtes ne doit pas être annoncée tant que le tirage reste calculable à l’avance par l’auteur.
- À faireRègles N2 versionnées, motif de refus signé, revérifiées par le serveur
- En coursRéputation par profil sur mensonges objectivement prouvablesCompteurs livrés derrière l’interrupteur du comité (observation seulement, aucun effet bloquant) ; aucun taux de menteurs n’est affiché ni annoncé.
- En coursSimulation avec une fraction d’appareils malhonnêtes (taux de tolérance mesuré)Simulateur en mémoire livré ; il montre qu’un auteur peut choisir son comité si la graine est calculable à l’avance : la tolérance ne doit pas être annoncée avant une balise aléatoire postérieure à la soumission.
- À faireAncrage périodique de la tête de chaîne (dépôt public ou horodatage)
5 · Noyau de consensus réutilisable (consensusPoD)0/5
Séparer la gestion des écrans du consensus, pour que d’autres appareils puissent participer.
- En coursExtraire un noyau portable sans écran ni réseau (flux → hash + métriques + message de vote)Noyau C++ livré (règles, hash salé, vote v3, reçus, comité, mineur, bloc) et identique à la référence TypeScript ; aucun firmware ne l’utilise encore, l’adoption se fera au grand reflash.
- En coursVecteurs de test officiels exécutés sur TypeScript, ESP8266, R4 et PCPlus de mille vérifications générées par la référence TypeScript et retrouvées à l’identique par le noyau C++ sur PC ; ESP8266 et R4 : l’auto-test compile, il n’a jamais tourné sur une carte.
- En coursAdaptateurs ESP8266, R4, ESP32 et PC/Raspberry PiAdaptateurs de calcul SHA-256 pour PC, ESP8266 et R4 livrés (compilés, jamais essayés sur carte) ; l’automate d’animation y est compilé avec ses budgets mémoire mesurés à la compilation ; ESP32 et Raspberry Pi natif restent à faire.
- À faireNœuds de validation sans écran (rôle validator)Aujourd’hui un profil capteur seul est EXCLU du quorum. Cible décidée : une capacité de validation explicite et déclarée, sans écran ; non implémentée.
- À fairePublication ouverte (spécification, licence, exemples) en version expérimentaleAprès gel du protocole v3.
6 · Firmware : mises à jour et finitions1/7
Un seul reflash groupé, puis des mises à jour à distance signées.
- FaitIdentifiants Wi-Fi hors du binaire (portail de configuration)Parcours à deux QR observé sur ESP8266 (TFT 1,8″, e-ink 2,9″ BWR, multiscreen) et sur UNO R4 e-ink 2,9″ ; la matrice de compatibilité donne le niveau de preuve par profil.
- En coursMises à jour à distance signées (manifeste dans /api/pull, anti-retour arrière, déploiement par vagues)Prouvée sur certaines familles ESP8266 (tft18 2.7→2.8, eink29bwr 2.4→2.5, multiscreen 2.6→2.7). UNO R4 : le produit complet r4tft18 a été mis à jour UNE fois en laboratoire (clés de test, serveur HTTP local) ; aucune OTA R4 distribuée sur Internet n’est prouvée.
- En coursCartels e-ink : zone sûre puis réglage par appareil (superposé / cadre / masqué)Livré : l’éditeur hachure les bandes du cartel (ce que l’écran efface) et prévient avant l’envoi. Reste le réglage par appareil (superposé / cadre / masqué), qui demande le grand flash.
- À faireGénération des clés avec une source d’aléa matérielle (ESP8266)
- À faireConnexions TLS authentifiées (empreinte ou certificat)
- En coursStation UNO R4 + TFT 1,8″ + DHT22 + SGP40 + microSD (r4tft18-2.3)Observé sur la carte : DHT22, SGP40 (brut), SD, enregistrement et pull ; un refus signé « blank » (corrigé localement). Intégré mais jamais observé : affichage d’une œuvre du réseau, ACK, animation depuis la SD, vote d’acceptation, indice COV Sensirion face à une référence.
- À faireHash salé par appareil et signature spatiale de l’imageRecherche : détecter copies et réponses recopiées.
7 · Réseau décentralisé et PoDScan0/5
Passer d’une chaîne centralisée à témoins signés à un réseau de nœuds qui la répliquent.
- À faireNœuds Raspberry Pi : miroir de la chaîne, vérification complète, validateurs puissants
- À faireAuditeurs de geste : rejouer le dessin pour vérifier qu’il est fait à la main
- À faireCo-signature de la tête de chaîne par le comité
- À fairePoDScan : explorateur public de blocs, de votes signés et de validateursÉquivalent d’un explorateur de chaîne.
- À faireRéplication de la chaîne au-delà d’un registre unique