33 lines
2.3 KiB
ReStructuredText
33 lines
2.3 KiB
ReStructuredText
====================================
|
|
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:
|
|
|
|
.. code-block:: bash
|
|
|
|
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:
|
|
|
|
.. code-block:: bash
|
|
|
|
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.
|