Ingesta de Repositorios y Telemetría

Identificadores Técnicos: [TECH-001], [TECH-004]

Flujo de Ingesta Upstream

El ciclo de actualización del nodo central de MxOS se ejecuta de manera automatizada mediante temporizadores de systemd y comprende cuatro etapas:

  1. Sincronización diferencial con rsync: Se obtienen los paquetes y metadatos actualizados desde los espejos de nivel 1 (Tier-1) de Fedora y CentOS Stream hacia un directorio de preparación (staging) local.

  2. Generación del grafo UnixFS (Filestore): Para evitar la duplicación de cientos de gigabytes en el disco del servidor, se utiliza la función --nocopy de Kubo con el subsistema filestore habilitado:

    ipfs add -r --nocopy --cid-version=1 --hash=sha2-256 /srv/mirrors/staging/
    
  3. Actualización de Registros DNSLink: El CID raíz resultante de la ingesta se publica automáticamente en el servidor de nombres de MxOS mediante actualización dinámica de DNS (RFC 2136 mediante nsupdate) o vía la API de gestión de zona.

  4. Anuncio en el enjambre: El nodo central anuncia la provisión de los nuevos CIDs a la DHT de IPFS.

Descubrimiento de Nodos y Telemetría Pasiva

Para alimentar el tablero público en mirrors.mx-os.mx sin violar la privacidad de los colaboradores, el servicio recolector opera de la siguiente forma:

  1. Consulta a la DHT: Se invoca periódicamente la interfaz RPC de Kubo o la instrucción de línea de comandos para consultar proveedores del CID raíz activo:

    ipfs dht findprovs -n 0 <CID_RAÍZ>
    
  2. Extracción de multiaddrs: El comando retorna los identificadores de par (PeerID) y las direcciones de red asociadas (IPv4/IPv6 y puertos de escucha).

  3. Geolocalización aproximada en memoria: Las direcciones IP públicas se contrastan contra una base de datos local MaxMind GeoLite2 para extraer únicamente el país y estado o región.

  4. Almacenamiento temporal: Los datos agregados (número de pares, concentración geográfica y latencia de respuesta) se consolidan en una base de datos SQLite/libSQL o en memoria para ser consumidos por la interfaz web reactiva.