Propuesta Técnica: Red Descentralizada de Espejos sobre IPFS para Distribuciones RPM

Identificador Técnico: [TECH-007]

Resumen Ejecutivo

Esta propuesta técnica (RFC) presenta el diseño, arquitectura y validación operativa de la primera red comunitaria de espejos de software libre sobre IPFS para los proyectos Fedora Linux y CentOS Stream en México y América Latina (mirrors.mx-os.mx).

El modelo traslada el paradigma de distribución de software desde granjas de servidores HTTP centralizados hacia un sistema direccionado por contenido (content-addressed storage). Esto elimina la duplicación de tráfico WAN en redes locales, reduce los costos de egreso para la infraestructura de los proyectos upstream y proporciona resiliencia ante contingencias de red.

Motivación y Problemática Actual

  1. Saturación en lanzamientos masivos: La publicación de versiones mayores (como Fedora 43 o actualizaciones masivas de paquetes) genera picos de demanda extrema que congestionan los espejos regionales tradicionales.

  2. Desperdicio de ancho de banda en redes locales: En oficinas, universidades, laboratorios de cómputo y hogares con múltiples equipos, cada máquina descarga de forma redundante exactamente los mismos paquetes RPM a través de enlaces residenciales o corporativos.

  3. Brecha de infraestructura en América Latina: La densidad de espejos de alta capacidad en la región es limitada, forzando a los usuarios a conectarse con servidores en Estados Unidos o Europa, lo que incrementa la latencia y degrada la experiencia con dnf.

Principios de la Arquitectura Propuesta

1. Direccionamiento por Contenido con UnixFS

Los árboles de paquetes y metadatos se procesan con Kubo generando grafos acíclicos dirigidos (DAGs) con bloques SHA-256. Debido a que cada archivo idéntico produce exactamente el mismo identificador de contenido (CID), los paquetes compartidos entre versiones o arquitecturas se almacenan y transfieren una sola vez en toda la red global.

2. Enclavillado Comunitario Granular

A diferencia de los espejos HTTP que exigen sincronizar cientos de gigabytes para ser útiles, la arquitectura de MxOS permite custodia fraccionada:

  • Un usuario con cuota limitada puede enclavillar únicamente las imágenes ISO (~3.5 GB) o el repositorio BaseOS (~15 GB).

  • Las universidades o empresas pueden alojar el catálogo completo (~300 GB) en sus servidores locales.

  • La red P2P (Bitswap) descubre automáticamente a todos los custodios de un bloque, agregando el ancho de banda de subida de toda la comunidad.

3. Doble Modalidad de Consumo

Para garantizar compatibilidad absoluta:

  • Modo Estándar, sin cambios para el usuario: El gateway perimetral https://mirrors.mx-os.mx actúa como proxy inverso transparente hacia Kubo; cualquier cliente DNF estándar consume paquetes por HTTPS convencional.

  • Modo P2P Nativo: Los usuarios con un demonio Kubo local configuran baseurl=http://127.0.0.1:8080/ipns/mirrors.mx-os.mx/...; la descarga se realiza entre pares, aprovechando la velocidad de la red de área local sin consumir tráfico WAN.

Modelo de Seguridad y Confianza Criptográfica

La arquitectura mantiene una postura de cero confianza (Zero-Trust):

  1. Inmutabilidad de datos: Los bloques de IPFS se autodocumentan criptográficamente mediante su hash; si un atacante altera un solo bit en un RPM, el hash cambia y Kubo lo rechaza antes de entregarlo.

  2. Validación GPG en DNF: El gestor de paquetes valida cada archivo RPM contra la llave pública oficial del proyecto (Fedora o CentOS) almacenada localmente en /etc/pki/rpm-gpg/. Ningún operador intermediario ni nodo guardián puede falsificar firmas.

  3. Identidad soberana Ed25519: Las publicaciones del catálogo se firman con la llave dedicada mxos-mirrors (k51qzi5uqu5di6ed3qtnwrdlvpmfil07ib6qfzb1t259nux49jenn8my4dtg0v), permitiendo la resolución y verificación sin requerir servicios comerciales de DNS.

Integración con Fedora MirrorManager

El servidor cabecera de MxOS (web0.mx-os.mx) cumple con los requerimientos técnicos de la infraestructura de Fedora:

  • Soporte de protocolos: Puntos finales HTTP (puerto 80) y HTTPS (puerto 443) con certificados TLS modernos y HTTP/2.

  • Rastreador de sincronización: Respuestas inmediatas a solicitudes HEAD sobre archivos de metadatos (repodata/repomd.xml).

  • Ubicación estratégica: Alojado en centro de datos en Querétaro, México (ASN 272373, HOBOPS.IO), proveyendo baja latencia y excelente conectividad nacional con operadores mexicanos.

Ruta de Evolución hacia Soporte Nativo en DNF

A mediano plazo, se propone explorar dos líneas de desarrollo upstream:

  1. Módulo de transporte para librepo: Diseñar un backend o conector para que librepo reconozca esquemas de URL ipfs:// o ipns://, comunicándose con la API RPC local de Kubo cuando esté disponible.

  2. Complemento DNF5 (dnf5-plugin-ipfs): Implementar un plugin de descubrimiento que reescriba dinámicamente las URLs de espejos hacia el gateway local cuando se detecte un demonio IPFS en ejecución en el equipo.