Documentación de Meshbell

Meshbell es un instrumento de emergencia a escala de vecindario. Su principio de diseño es poco común para una app de consumo: la verificación es el sustrato, no una función. Así es como funciona.

Panorama general

Una advertencia de peligro en Meshbell es un registro pequeño y firmado: una aseveración. Las aseveraciones se direccionan por contenido (se nombran mediante el hash de sus propios bytes), se firman con una clave de dispositivo y nunca se alteran: una corrección es una nueva aseveración que hace referencia a la anterior. Esa inmutabilidad es lo que permite que una advertencia y su corrección viajen juntas por una red en malla, y lo que permite a cualquier dispositivo volver a comprobar cualquier mensaje que reciba.

Todo lo que hay por encima de la red está diseñado para que perder una conexión, un servidor o un modelo te cueste una anotación, nunca la alerta.

El modelo de confianza

Meshbell mantiene separadas dos preguntas, porque son hechos distintos y mezclarlos es como se propaga la desinformación:

PreguntaQué la respondeQué puede decir
¿Qué registro es este y está intacto?Direccionamiento por contenido + comprobación de firma en tu dispositivovinculado / vista previa / alterado
¿Quién lo firmó y puedo comprobarlo?El llavero en el dispositivoverificado · no se pudo comprobar quién firmó · falsificado

El segundo eje tiene deliberadamente tres valores. Una falsificación (comprobada contra una clave conocida, que falló) no es lo mismo que una clave desconocida (aún no hay forma de comprobarla): fusionarlas en un solo "no válido" ocultaría justo la distinción que una persona necesita. Un mensaje se almacena como confiable solo cuando el llavero dice verificado.

Verificado en el aire, sin copia previa

Una trama corta de radio es una vista previa: un puntero a un registro. Pero un registro también puede enviarse completo como un sobre autoautenticable, dividido en varias tramas y reensamblado en el otro extremo. Un dispositivo que nunca ha visto antes el registro puede entonces reconstruirlo, volver a derivar su dirección de contenido y verificar su firma, alcanzando un veredicto verificado en un vecindario de pura radio, sin internet en ningún punto del circuito.

El cortafuegos de instrucciones

Lo único que una app de emergencia nunca debe hacer es convertir un rumor en una orden. Meshbell lo impone de forma estructural, no por disciplina de revisión:

La promesa, en una línea: la app nunca convierte un rumor en una instrucción, y esa frase es una propiedad del código, no una declaración de intenciones.

La capa de coordinación

Las alertas verificadas responden a "¿qué está pasando y puedo confiar en ello?". Pero un vecindario en una emergencia también tiene una logística ordinaria que resolver: quién está localizado, dónde está el refugio, quién tiene un generador. Meshbell lleva una segunda capa, deliberadamente separada, para ese trabajo, accesible de forma nativa en la pestaña Vecindario de la app, y en un navegador para quien no tenga la app.

Esta capa es no verificada por diseño. No se direcciona por contenido, no está firmada y no forma parte del canal de alertas. Es estado compartido mutable que los vecinos escriben y editan: trátalo como una nota pegada a una puerta. El cortafuegos de instrucciones sigue vigente: nada de aquí puede mostrarse jamás como una instrucción oficial, y el modelo de confianza de arriba rige únicamente las alertas.

Qué contiene

SuperficieQué esForma de privacidad
Pase de lista de seguridadConfirmación de "Estoy a salvo" con un toque; todos ven solo un recuento agregado frente a un total aproximado de hogares.Sin nombres, direcciones ni ubicaciones. El recuento se retiene hasta que se hayan registrado unos cuantos, para que no se pueda inferir un solo hogar.
Listas de recursosListas compartidas y editables: refugio/calor, agua/suministros, energía/carga, y un "quién puede ayudar" de autoinscripción. Los ítems pueden llevar una etiqueta de lugar.Cualquiera en el puente puede agregar o editar. Solo de autoinscripción; nadie es agregado por otra persona.
TablónPublicaciones cortas etiquetadas a un canal (info, oferta, solicitud, pregunta) y acotadas por antigüedad, publicadas bajo un nombre escrito libremente.El nombre que escribas: sin cuenta, sin identidad verificada.
Instantánea imprimibleUna vista de una página /coord/print del pase de lista, las listas y el tablón más reciente, para cuando se agoten las baterías.El mismo pase de lista solo agregado; seguro para colocar en un tablón físico.

Por qué se mantiene aparte

Mezclar notas mutables de vecinos en un registro de alertas firmado y de solo anexado rompería ambas cosas. Por eso el almacén de coordinación es algo propio: solo en la LAN, mutable y servido por el puente junto al feed verificado, nunca dentro de él. Un operador posee un token de administración para el mantenimiento (borrar datos de prueba, podar un tablón desbordado); publicar y registrarse no requieren ninguna credencial. Las dos capas comparten una pantalla, nunca una frontera de confianza.

Funcionar sin conexión

La degradación es el estado esperado, no un error. Cuando una ruta de datos está caída, Meshbell sirve los últimos datos válidos conocidos etiquetados con su antigüedad ("hace 40 minutos") en lugar de un espacio en blanco de apariencia confiada. El nivel sin ML —un teléfono antiguo sin modelo en el dispositivo— es un nivel de producto de primera clase: una app de emergencia que solo funciona en el hardware más nuevo les falla a las personas que más probablemente la necesiten.

Radios y hardware

Meshbell funciona en tu teléfono por sí solo. Las radios amplían su alcance cuando la red está caída. Una red en malla de vecindario se construye con hardware LoRa económico y comercial que ejecuta el firmware abierto MeshCore:

PiezaFunción
Una radio LoRa complementaria (p. ej. un nodo Heltec)Tu teléfono se empareja con ella por Bluetooth para enviar y escuchar boletines en la red en malla.
Más radios por el vecindarioCada una es un salto. Tres o más empiezan a formar un alcance real de múltiples saltos a través de manzanas y crestas.
Un nodo opcional siempre encendido (p. ej. una Raspberry Pi)Conecta la red en malla con internet en general siempre que haya algún enlace ascendente disponible, y mantiene un registro duradero: "el teléfono es la cabeza, la red en malla es el cuerpo".
Ajustes de radio para EE. UU.: el banco de referencia de Meshbell funciona a 910.525 MHz, ancho de banda de 62.5 kHz, SF7, dentro de la banda libre de licencia de 902–928 MHz. Lee siempre la configuración de tu radio antes de transmitir; el valor por defecto de la región puede ser una banda para la que no tienes licencia.

Configurar un puente

Un "puente" es un nodo siempre encendido en la calle —por lo general una Raspberry Pi— que transporta el feed verificado y la capa de coordinación por Wi-Fi local, para que el teléfono o el navegador de cada vecino pueda alcanzarlos sin cobertura móvil ni internet. Meshbell está hecho para que dos personas muy distintas lleguen ahí sin un manual.

Si eres el anfitrión (un vecino preparado)

El instalador del puente viene dentro de la app. La configuración guiada te lleva paso a paso por el flasheo del nodo, y este arranca autocontenido: sirve las pantallas de coordinación de la app, una app web instalable para los vecinos que solo tienen navegador y una vista de administración para el mantenimiento. No hay nada que configurar a mano ni cuenta que crear: el nodo se anuncia en la red local y la app se encarga de encontrarlo.

Si eres un vecino (nunca has oído hablar de una red en malla)

Conéctate al Wi-Fi de la calle y abre la pestaña Vecindario. La app busca el puente automáticamente y se conecta; las pantallas de coordinación son nativas, así que funcionan incluso donde un navegador normal no puede alcanzar el nodo. Cuando el descubrimiento necesita ayuda, la app ofrece diagnósticos en lenguaje claro —¿es esta la red correcta? ¿está despierto el puente?— y un campo de dirección manual como respaldo, además de una vista dentro de la app de la app web del navegador si prefieres usar esa.

El puente entrega; nunca decide. Un puente puede pasar una alerta verificada, pero no puede hacerla verdadera: las firmas se siguen comprobando en tu propio dispositivo, así que un puente comprometido o malicioso puede descartar o retrasar mensajes, pero nunca puede falsificar uno confiable. Por eso el modelo de confianza vive en el teléfono, no en el nodo.

Arquitectura

La lógica de dominio es pura y portátil: se compila y se prueba en una Raspberry Pi sin hardware de Apple en el circuito, de modo que las partes que deciden si un mensaje es confiable se verifican de forma continua, no solo en el lanzamiento. La app de iOS es un renderizador delgado sobre ella.

Límites honestos

Dicho con claridad, porque una herramienta de emergencia que se sobrevende es peligrosa:

← Volver al panorama general