Documentation Meshbell

Meshbell est un instrument d'urgence à l'échelle du quartier. Son principe de conception est inhabituel pour une application grand public : la vérification est le socle, pas une fonctionnalité. Voici comment cela fonctionne.

Aperçu

Dans Meshbell, une alerte de danger est un petit enregistrement signé — une assertion. Les assertions sont adressées par leur contenu (nommées par le hachage de leurs propres octets), signées avec une clé d'appareil et jamais modifiées : une correction est une nouvelle assertion qui référence l'ancienne. C'est cette immuabilité qui permet à un avertissement et à sa correction de voyager ensemble à travers un réseau maillé, et qui permet à n'importe quel appareil de re-vérifier n'importe quel message qu'il reçoit.

Tout ce qui se trouve au-dessus du réseau est conçu de sorte que perdre une connexion, un serveur ou un modèle vous coûte une annotation, jamais l'alerte.

Le modèle de confiance

Meshbell garde deux questions séparées, parce que ce sont des faits différents et que les confondre est la manière dont la désinformation se répand :

QuestionCe qui y répondCe qu'elle peut dire
De quel enregistrement s'agit-il, et est-il intact ?Adresse par contenu + vérification de signature sur votre appareillié / aperçu / altéré
Qui l'a signé, et puis-je le vérifier ?Le trousseau de clés sur l'appareilvérifié · impossible de vérifier qui a signé · falsifié

Le second axe est délibérément à trois valeurs. Une falsification (vérifiée par rapport à une clé connue, échouée) n'est pas la même chose qu'une clé inconnue (encore aucun moyen de vérifier) — les regrouper en un seul « invalide » masquerait exactement la distinction dont une personne a besoin. Un message n'est stocké comme digne de confiance que lorsque le trousseau dit verified.

Vérifié directement sur les ondes, sans copie préalable

Une courte trame radio est un aperçu — un pointeur vers un enregistrement. Mais un enregistrement peut aussi être envoyé en entier sous forme d'enveloppe auto-authentifiante, répartie sur plusieurs trames et réassemblée à l'arrivée. Un appareil qui n'a jamais vu l'enregistrement auparavant peut alors le reconstruire, re-dériver son adresse par contenu et vérifier sa signature — atteignant un verdict verified sur un quartier purement radio, sans aucun accès Internet dans la boucle.

Le pare-feu d'instructions

La seule chose qu'une application d'urgence ne doit jamais faire, c'est transformer une rumeur en ordre. Meshbell fait respecter cela structurellement, pas par une discipline de relecture :

La promesse, en une ligne : l'application ne transforme jamais une rumeur en instruction — et cette phrase est une propriété du code, pas une déclaration d'intention.

La couche de coordination

Les alertes vérifiées répondent à « que se passe-t-il, et puis-je m'y fier ? » Mais un quartier en situation d'urgence a aussi une logistique ordinaire à gérer : qui est recensé, où se trouve l'abri, qui a un générateur. Meshbell transporte une seconde couche, délibérément séparée, pour ce travail — accessible nativement dans l'onglet Quartier de l'application, et dans un navigateur pour quiconque n'a pas l'application.

Cette couche est non vérifiée par conception. Elle n'est pas adressée par contenu, pas signée et ne fait pas partie du canal vérifié. C'est un état partagé modifiable que les voisins écrivent et modifient — traitez-la comme un mot scotché sur une porte. Le pare-feu d'instructions tient toujours : rien ici ne peut jamais s'afficher comme une instruction officielle, et le modèle de confiance ci-dessus ne régit que les alertes.

Ce qu'elle contient

SurfaceCe que c'estForme de confidentialité
Appel de sécuritéSe signaler en sécurité en un geste ; chacun ne voit qu'un décompte agrégé par rapport à un total approximatif de foyers.Aucun nom, aucune adresse, aucune localisation. Le décompte est retenu jusqu'à ce qu'une poignée de personnes se soient signalées, afin qu'un foyer isolé ne puisse pas être déduit.
Listes de ressourcesListes partagées et modifiables — abri/réchauffement, eau/fournitures, énergie/recharge, et une liste « qui peut aider » où l'on s'inscrit soi-même. Les éléments peuvent porter une étiquette de lieu.Toute personne sur la passerelle peut ajouter ou modifier. Inscription volontaire uniquement ; personne n'est ajouté par quelqu'un d'autre.
Tableau d'affichageDe courts messages étiquetés par canal (info, offre, demande, question) et filtrés par récence, publiés sous un nom saisi librement.Le nom que vous saisissez — aucun compte, aucune identité vérifiée.
Instantané imprimableUn rendu d'une page /coord/print de l'appel, des listes et du dernier tableau, pour quand les batteries s'épuisent.Même appel agrégé uniquement ; peut être affiché sans risque sur un panneau physique.

Pourquoi elle est tenue à l'écart

Mêler des notes de voisins modifiables à un journal d'alertes signé et en ajout-seul briserait les deux. La mémoire de coordination est donc une chose à part : uniquement en réseau local, modifiable, et servie par la passerelle à côté — jamais à l'intérieur — du flux vérifié. Un opérateur détient un jeton d'administration pour l'entretien (effacer des données de test, élaguer un tableau qui déborde) ; publier et se signaler ne nécessitent aucune justification d'identité. Les deux couches partagent un écran, jamais une frontière de confiance.

Fonctionnement hors ligne

La dégradation est l'état attendu, pas une erreur. Lorsqu'une voie de données est coupée, Meshbell sert les dernières données valides connues étiquetées avec leur ancienneté (« à partir d'il y a 40 minutes ») plutôt qu'un vide à l'apparence assurée. Le niveau sans apprentissage automatique — un vieux téléphone sans modèle embarqué — est un niveau de produit à part entière : une application d'urgence qui ne fonctionne que sur le matériel le plus récent laisse tomber les personnes les plus susceptibles d'en avoir besoin.

Radios et matériel

Meshbell fonctionne sur votre téléphone seul. Les radios étendent sa portée quand le réseau est coupé. Un réseau maillé de quartier se construit à partir de matériel LoRa bon marché et prêt à l'emploi, exécutant le micrologiciel ouvert MeshCore :

ÉlémentRôle
Une radio LoRa compagnon (par ex. un nœud Heltec)Votre téléphone s'y appaire par Bluetooth pour envoyer et entendre des bulletins sur le réseau maillé.
D'autres radios dans le quartierChacune est un saut. Trois ou plus commencent à former une véritable portée multi-sauts à travers les pâtés de maisons et les crêtes.
Un nœud toujours actif optionnel (par ex. un Raspberry Pi)Fait le pont entre le réseau maillé et l'Internet plus large dès qu'un lien montant est disponible, et conserve un journal durable — « le téléphone est la tête, le réseau maillé est le corps ».
Réglages radio pour les États-Unis : le banc de référence de Meshbell fonctionne à 910.525 MHz, 62.5 kHz de bande passante, SF7 — à l'intérieur de la bande sans licence 902–928 MHz. Relisez toujours la configuration de votre radio avant d'émettre ; la valeur par défaut de la région peut être une bande que vous n'êtes pas autorisé à utiliser.

Mettre en place une passerelle

Une « passerelle » est un nœud toujours actif dans la rue — généralement un Raspberry Pi — qui transporte le flux vérifié et la couche de coordination sur le Wi-Fi local, afin que le téléphone ou le navigateur de chaque voisin puisse les atteindre sans réseau cellulaire ni Internet. Meshbell est conçu pour que deux personnes très différentes y parviennent sans mode d'emploi.

Si vous êtes l'hôte (un voisin préparé)

L'installateur de passerelle est livré à l'intérieur de l'application. Une configuration guidée vous accompagne pour flasher le nœud, et il démarre autonome : il sert les écrans de coordination de l'application, une application web installable pour les voisins qui n'ont que le navigateur, et une vue d'administration pour l'entretien. Il n'y a rien à configurer à la main et aucun compte à créer — le nœud s'annonce sur le réseau local, et c'est l'application qui fait la recherche.

Si vous êtes un voisin (jamais entendu parler d'un réseau maillé)

Rejoignez le Wi-Fi de la rue et ouvrez l'onglet Quartier. L'application recherche la passerelle automatiquement et s'y connecte ; les écrans de coordination sont natifs, ils fonctionnent donc même là où un simple navigateur ne peut pas atteindre le nœud. Quand la détection a besoin d'un coup de main, l'application propose un diagnostic en langage clair — est-ce le bon réseau ? la passerelle est-elle éveillée ? — et un champ d'adresse manuel comme solution de repli, ainsi qu'une vue intégrée de l'application web du navigateur si vous préférez l'utiliser.

La passerelle achemine ; elle ne décide jamais. Une passerelle peut faire suivre une alerte vérifiée, mais elle ne peut pas la rendre vraie — les signatures sont toujours vérifiées sur votre propre appareil, de sorte qu'une passerelle compromise ou malveillante peut abandonner ou retarder des messages mais ne peut jamais en falsifier un digne de confiance. C'est pourquoi le modèle de confiance vit sur le téléphone, pas sur le nœud.

Architecture

La logique métier est pure et portable — elle se compile et se teste sur un Raspberry Pi sans aucun matériel Apple dans la boucle, de sorte que les parties qui décident si un message est digne de confiance sont vérifiées en continu, pas seulement à la publication. L'application iOS n'est qu'un mince moteur de rendu par-dessus.

Limites assumées

Énoncées franchement, parce qu'un outil d'urgence qui se survend est dangereux :

← Retour à l'aperçu