======================================== Red de Espejos Comunitarios sobre IPFS ======================================== .. note:: Conforme a la política de documentación de Fundación MxOS, esta sección expone la visión panorámica, el marco operativo y la arquitectura de referencia de los espejos descentralizados. Los manuales paso a paso, especificaciones funcionales y códigos de automatización se mantienen de forma autocontenida en el `repositorio canónico mirrors.git `_ y `vigia.git `_. .. toctree:: :maxdepth: 2 :caption: Documentación Operativa operador-guardian Visión General ============== La Red de Espejos Comunitarios de Fundación MxOS es una infraestructura de distribución de software libre diseñada bajo principios de soberanía tecnológica, resiliencia territorial y eficiencia en el uso de ancho de banda. A diferencia de los espejos tradicionales basados en granjas de servidores HTTP centralizados, este sistema desacopla los datos del servidor que los aloja: 1. **Almacenamiento direccionado por contenido:** Los paquetes RPM y las imágenes ISO se indexan en Kubo (IPFS) mediante árboles de datos UnixFS con hashes criptográficos SHA-256; un archivo idéntico comparte el mismo bloque en toda la red sin duplicación. 2. **Enclavillado comunitario:** Cualquier estación de trabajo, servidor institucional o nodo local puede fungir como nodo guardián, enclavillando (*pinning*) los módulos que decida custodiar para compartirlos con su red de área local y con el enjambre de internet. 3. **Resolución canónica mediante DNSLink:** El registro de nombres ``_dnslink.mirrors.mx-os.mx`` apunta al identificador de contenido (CID) raíz más reciente; cada actualización se propaga globalmente a través del sistema de nombres de dominio convencional. 4. **Observabilidad comunitaria con Vigía:** Monitoreo en tiempo real (`https://mirrors.mx-os.mx/vigia/ `_) que audita la redundancia territorial de los repositorios y expone métricas públicas. Servicios y Dominios Públicos: ipfs.mx-os.mx y mirrors.mx-os.mx =============================================================== Fundación MxOS delimita con claridad la función de sus dos puntos de acceso públicos: Úsanos de gateway de IPFS: ipfs.mx-os.mx ---------------------------------------- El dominio ``ipfs.mx-os.mx`` (con alias ``gateway.mx-os.mx``) opera como la **pasarela pública y neutral de IPFS** de Fundación MxOS, alojada sobre la infraestructura soberana de HOBOPS.IO. * **Propósito:** Brindar a toda la comunidad técnica, académica y desarrolladora un punto de resolución HTTP/HTTPS gratuito para consultar cualquier contenido publicado en la red global IPFS, pertenezca o no a la fundación. * **Formatos de resolución universal:** * Por identificador de contenido: ``https://ipfs.mx-os.mx/ipfs/`` permite descargar cualquier bloque o archivo UnixFS del enjambre. * Por nombre interplanetario: ``https://ipfs.mx-os.mx/ipns/`` resuelve registros mutables Ed25519 y DNSLink. * **Integración:** Compatible con la extensión **IPFS Companion** en navegadores web (Firefox, Chromium, Chrome, Brave) y con descargas en terminal vía ``curl`` o ``wget``. * **Perfil operativo:** Opera estrictamente como un proxy inverso de alta velocidad y acceso efímero sin almacenamiento permanente ni enclavillado de terceros. El espejo de software libre de Fundación MxOS: mirrors.mx-os.mx --------------------------------------------------------------- El dominio ``mirrors.mx-os.mx`` es el **portal web canónico y catálogo oficial de distribución** de paquetes y medios de software libre curado por Fundación MxOS. * **Propósito:** Mostrar el catálogo oficial de la red de espejos, exhibir las notas de liberación y avisos técnicos de la fundación, ofrecer guías paso a paso de configuración de clientes DNF/DNF5, guías de enclavillado granular para operadores guardianes y la cartografía territorial de salud del enjambre (`Vigía`). * **Acceso dual:** Accesible mediante web convencional en `https://mirrors.mx-os.mx `_ o mediante el protocolo nativo descentralizado en ``ipfs://mirrors.mx-os.mx`` y ``/ipns/mirrors.mx-os.mx``. Servicios y Distribuciones Soportadas ===================================== El catálogo oficial publicado bajo ``/ipns/mirrors.mx-os.mx`` comprende: * **CentOS Stream 10:** Suite completa de repositorios y metadatos para arquitectura ``x86_64``: * ``BaseOS``: Paquetes esenciales y núcleo del sistema operativo (~15 GB). * ``AppStream``: Módulos de desarrollo y aplicaciones de usuario (~45 GB). * ``CRB``: CodeReady Linux Builder con bibliotecas y encabezados de compilación (~30 GB). * ``HighAvailability``: Paquetes para clústeres de alta disponibilidad (~500 MB). * ``NFV`` y ``RT``: Virtualización de funciones de red y extensiones de tiempo real (~5 GB). * ``SIG Extras``: Paquetería complementaria comunitaria (``extras-common``; ~50 MB). * **Fedora Linux:** Imágenes netinst ISO (~10 GB) y repositorios completos de paquetería (``Everything``; ~125 GB por versión) para las versiones 43, 44 y 45 (desarrollo/branched). Ciclo de Sincronización Cuatridiario ==================================== Los repositorios de upstream se actualizan cuatro veces al día mediante temporizadores coordinados de systemd (``mxos-mirror.timer``): * **Expresión de programación:** ``OnCalendar=*-*-* 00,06,12,18:00:00`` (cada 6 horas exactas). * **Retardo aleatorio de cortesía:** ``RandomizedDelaySec=900`` (ventana de 15 minutos para dispersar la carga hacia los servidores upstream). * **Persistencia operativa:** ``Persistent=true``, garantizando que ejecuciones omitidas durante suspensiones o reinicios se recuperen inmediatamente. * **Control de concurrencia:** Bloqueo exclusivo mediante descriptor de archivo en ``/tmp/mxos-repo-sync.lock`` para evitar ejecuciones simultáneas. Resolución DNSLink y Resolvedores DoH en Kubo ============================================== Para evitar desfases originados por cachés DNS locales o de enrutadores LAN, los nodos de la red utilizan resolución DoH directa hacia Cloudflare: .. code-block:: bash ipfs config --json DNS.Resolvers '{"mx-os.mx.": "https://cloudflare-dns.com/dns-query", ".": "auto"}' Esto asegura que las actualizaciones del registro TXT ``_dnslink.mirrors.mx-os.mx`` se interpreten en el enjambre de forma instantánea. Vigía: Tablero de Observabilidad y Cartografía P2P ================================================== El proyecto Vigía (`https://git.mx-os.mx/MxOS/vigia `_) proporciona visibilidad transparente y auditoría abierta del enjambre: * **Directorio de Custodios:** Tabla responsiva estructurada con las columnas canónicas: * ``Rol``: Distintivos visuales protegidos en una sola línea (``⭐ Gateway Oficial``, ``🛡️ Guardián Pionero``). * ``Custodio``: Alias, nombre completo y enlace verificado al sitio del operador. * ``Módulos custodiados``: Componentes alojados localmente por el nodo. * ``Ubicación territorial``: Ubicación canónica en texto completo sin abreviaturas (por ejemplo, ``Ixtlahuacán de los Membrillos, Jalisco, México``). * ``Afiliación``: Entidad, empresa o colectivo al que pertenece el nodo (por ejemplo, ``EVALinux`` o ``HOBOPS.IO``). * **Copiado de identidad con un clic:** Transferencia del identificador de par (Peer ID / DI) al portapapeles con confirmación visual táctil inmediata. * **Filtrado reactivo por etiquetas:** Aislamiento en tiempo real de nodos según el módulo custodiado, activando una barra de control con botón de restablecimiento. * **Canales de telemetría:** * Interfaz web: `https://mirrors.mx-os.mx/vigia/ `_ * Instantánea estática JSON: `https://mirrors.mx-os.mx/vigia/telemetry.json `_ * API REST dinámica: ``/api/v1/telemetry`` * Exportador de métricas: ``/metrics`` en formato estándar de Prometheus. Gestión de Almacenamiento con Btrfs y Subvolúmenes ================================================== Para maximizar el rendimiento de entrada/salida y facilitar la administración granular del disco en los nodos guardianes y servidores maestros, la infraestructura de espejos de MxOS aprovecha las propiedades nativas de **Btrfs** y la copia en escritura (**CoW**; *Copy-on-Write*): * **Eliminación atómica e instantánea:** Cada módulo del catálogo reside en su propio subvolumen Btrfs independiente. Borrar un repositorio completo de más de 100 GB se ejecuta en milisegundos mediante ``btrfs subvolume delete``, sin requerir costosos borrados recursivos archivo por archivo. * **Instantáneas con costo de almacenamiento cero:** Mediante ``btrfs subvolume snapshot -r`` se generan instantáneas de respaldo antes de cada sincronización. Los bloques compartidos no duplican espacio en disco gracias al diseño CoW. * **Clonación y ramificación instantánea:** La derivación de módulos y repositorios de prueba se efectúa con *reflinks* (``cp -a --reflink=always``). * **Operación sin privilegios de superusuario:** Al incluir la opción ``user_subvol_rm_allowed`` en el montaje de Btrfs en ``/etc/fstab``, los operadores pueden administrar subvolúmenes e instantáneas bajo perfiles de usuario estándar sin necesidad de elevación con ``sudo``. * **Automatización:** El repositorio canónico provee el script de gestión ``bin/mxos-btrfs.bash`` (subcomandos ``list``, ``init``, ``snapshot``, ``delete`` y ``rollback``). Soberanía Criptográfica y Gestión de Llaves IPNS ================================================ Las actualizaciones del catálogo maestro se firman con la llave criptográfica dedicada ``mxos-mirrors`` (algoritmo Ed25519; identificador permanente ``k51qzi5uqu5di6ed3qtnwrdlvpmfil07ib6qfzb1t259nux49jenn8my4dtg0v``), permitiendo la resolución autónoma de los repositorios mediante la ruta ``/ipns/k51qzi5uqu5di6ed3qtnwrdlvpmfil07ib6qfzb1t259nux49jenn8my4dtg0v`` sin depender de DNS. El respaldo de la llave se efectúa en memoria compartida (``/dev/shm``) en formatos estándar PEM PKCS#8 y Protobuf libp2p, cifrado simétricamente con ``age`` o ``gpg`` para su custodia en frío fuera de línea. La especificación técnica completa y los manuales de recuperación ante desastres se detallan en la `Especificación de Gestión de Llaves IPNS `_. Enlaces de Referencia y Recursos Canónicos ========================================== * **Punto de acceso web público:** `https://mirrors.mx-os.mx/ `_ * **Gateway público en HOBOPS.IO:** `https://ipfs.mx-os.mx/ `_ * **Repositorio de ingeniería y automatización:** `MxOS/mirrors en Git `_ * **Sistema de observabilidad y telemetría:** `MxOS/vigia en Git `_ * **Manual de enclavillado para operadores:** :doc:`operador-guardian`