Linux Adictos Darkcrizt  

Passim, un servidor de almacenamiento en caché local

Passim

Passim es un servidor de almacenamiento en caché local que utiliza mDNS

Hace poco el creador de una gran cantidad de aplicaciones de Gnome, dio a conocer mediante una publicación de blog, su nuevo proyecto, el cual tiene como nombre «Passim», el cual es un servidor de distribución de archivos de almacenamiento en caché local que utiliza hashes de contenido para abordar contenido similar a IPFS.

La idea detrás de Passim, es básicamente abordar la problemática detrás de la entrega del mismo contenido que es descargado una gran cantidad de veces desde servidores o CDN globales. Y es que tal y como se describe en la publicación de blog:

Como parte de la ejecución de los proyectos passim/LVFS, he visto cómo la descarga de este archivo «pequeño» una vez cada 24 horas se convierte en decenas de millones de solicitudes por día, lo que equivale a ~10 TB de ancho de banda. Todo el mundo descarga el mismo archivo desde un CDN…

¿Qué pasaría si pudiéramos descargar el archivo desde Internet CDN en una máquina, y la siguiente máquina en la red local que lo necesita lo descarga desde la primera máquina? Podríamos poner un límite al número de veces que se puede compartir, y la antigüedad máxima para que no almacenemos para siempre los metadatos de ayer…

Podríamos reducir el tráfico de CDN en al menos un orden de magnitud, pero posiblemente mucho más. Esto es mejor para la persona que paga la factura de la nube, la persona que paga la conexión a Internet y el planeta en su conjunto.

Sobre Passim

Passim puede ser usado con el fin de aumentar la capacidad de desempeño de las apps que suelen descargar datos y archivos secundarios para gestionar otras peticiones. La idea principal es usar Passim como una forma de entregar contenido de almacenaje en caché para uso de los sistemas de red locales, sin necesidad de interactuar directamente con los servidores primarios y sin utilizar un CDN globales.

Un ejemplo de uso que es mencionado para Passim, es que se puede usar en la distribucion de actualizaciones de software, los metadatos del sistema de protección contra anuncio, actualizaciones del administrador, etc..En la práctica, se planean utilizar Passim con el fin de planificar la distribución de fwupd y el proyecto LVFS.

Tambien se menciona que el proyecto utiliza un modelo de direccionamiento de archivos basado en SHA-256 de su contenido, y el uso del hash también permite la identificación de archivos con el mismo contenido, por lo que la búsqueda de similitudes no se basa en los nombres simbólicos que se les asignen. Para evitar la falsificación de archivos en el lado del cliente, el valor hash debe verificarse utilizando el valor hash calculado a partir del contenido de los datos descargados.

Los datos en el almacenamiento se pueden agregar de forma automática o manual, y se reducen a copiar el archivo en el directorio /var/lib/passim/data y establecer la vida útil máxima y los límites en la cantidad de descargas a través de atributos extendidos (xattr).

Después de la expiración de la vida útil o superando el límite en el número de descargas, el archivo se elimina automáticamente. Los archivos presentes en el repositorio se reflejan en un índice compartido que todos los usuarios pueden obtener utilizando mDNS o descargando el índice a través de HTTP.

Sobre el funcionamiento de Passim, se menciona que este:

Utiliza un servidor HTTP simple de un solo subproceso para cargar archivos. Los archivos y el índice se proporcionan sin autenticación y sin cifrado (HTTPS no es compatible), ya que el sistema está diseñado para la distribución pública de datos en la red local. La descarga se realiza mediante el envío de una solicitud HTTP en el formulario, en el que el hash es el identificador clave (los archivos no se devuelven sin un hash) . El hash de verificación inicial y la firma GPG se descargan a través de una llamada a un CDN externo.

Inicialmente, para organizar el acceso a las actualizaciones de firmware en LVFS, se consideró la posibilidad de utilizar almacenamiento basado en un sistema de archivos descentralizado, como lo es IPFS, pero finalmente se decidió crear una alternativa propia, más simple, destinada a descargar solo desde servidores en la red local.

Se menciona que la principal razón para el rechazo de IPFS fueron los posibles problemas legales causados ​​por IPFS que caen bajo las restricciones de exportación ITAR (Reglamento de tráfico internacional de armas) y EAR (Reglamento de administración de exportaciones) debido al uso de encriptación avanzada.

Entre otros inconvenientes de IPFS que surgen al resolver el problema de entregar firmware en una red local, se menciona la complejidad de la instalación, la falta de paquetes listos para usar en las distribuciones, el gran tiempo que lleva encontrar recursos, la necesidad de utilizar una puerta de enlace para acceder a IPFS a través de HTTP y la falta de acceso prioritario para los clientes locales.

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.