Hace poco se dio a conocer el lanzamiento de la nueva versión del sistema descentralizado de archivos IPFS 0.6 (InterPlanetary File System), que forma un almacenamiento de archivos versionado global desplegado en forma de una red P2P formada a partir de sistemas miembros. IPFS combina ideas implementadas previamente en sistemas como Git, BitTorrent, Kademlia, SFS y Web y se asemeja a un solo «par» de BitTorrent (pares que participan en la distribución) intercambiando objetos Git.
IPFS difiere al abordar por contenido en lugar de ubicación y nombres arbitrarios. El código de implementación de referencia está escrito en Go y se distribuye bajo las licencias Apache 2.0 y MIT.
En IPFS, un enlace para acceder a un archivo está directamente relacionado con su contenido e incluye un hash criptográfico de los contenidos. La dirección del archivo no se puede renombrar arbitrariamente, solo puede cambiar después de cambiar el contenido.
Del mismo modo, es imposible realizar un cambio en el archivo sin cambiar la dirección (la versión anterior permanecerá en la dirección anterior, y la nueva estará disponible a través de una dirección diferente, ya que el hash del contenido del archivo cambiará).
Dado que el identificador de archivo cambia con cada cambio, para no enviar nuevos enlaces cada vez, se proporcionan servicios para vincular direcciones permanentes que tienen en cuenta diferentes versiones del archivo ( IPNS ), o para corregir un alias similar al FS y DNS tradicionales ( MFS (Sistema de archivos mutables) y DNSLink ).
IPFS ayuda a resolver problemas tales como la confiabilidad del almacenamiento (si el almacenamiento original está fuera de servicio, el archivo puede descargarse de los sistemas de otros usuarios), la oposición a la censura del contenido (el bloqueo requerirá bloquear todos los sistemas de usuario que tienen una copia de los datos) y organizar el acceso en ausencia de acceso directo Conexiones a Internet o cuando la calidad del canal de comunicación es deficiente (puede descargar datos a través de los participantes más cercanos en la red local).
¿Qué hay de nuevo en IPFS 0.6?
La nueva versión es notable por la inclusión de un transporte predeterminado basado en el protocolo QUIC, que es un complemento sobre el protocolo UDP que admite la multiplexación de varias conexiones y proporciona métodos de cifrado equivalentes a TLS / SSL.
En IPFS, un socket para recibir conexiones UDP se inicia automáticamente en la misma dirección y puerto de red que el controlador de transporte basado en TCP. QUIC se utiliza para conexiones entrantes y salientes, y cuando se conecta a nuevos nodos, si QUIC no está disponible, se revertirá a TCP.
La segunda innovación importante fue el soporte del transporte seguro NOISE, basado en el protocolo Noise y desarrollado como parte de libp2p, una pila de red modular para aplicaciones P2P.
Después de la coordinación inicial de la conexión, todo el intercambio de datos posterior entre los participantes se cifra y se protege contra escuchas. NOISE reemplazó el transporte SECIO, pero TLS 1.3 continúa utilizándose como método prioritario para cifrar conexiones entre nodos.
NOISE es bastante simple de implementar y se posiciona como un transporte universal multiplataforma que se puede implementar en varios lenguajes de programación.
La nueva versión también brinda la oportunidad de agregar sus propias páginas «404 no encontradas» y agregar soporte opcional para el método de codificación Base36, que es óptimo para datos alfanuméricos sin diferencias entre mayúsculas y minúsculas, como los nombres de dominio (cuando se usa Base32, las claves Ed25519 IPNS son dos bytes mayores que el límite en el tamaño del subdominio, y con Base36 cabe en el límite).
Además, la opción de «emparejamiento» se ha agregado a la configuración, que define una lista de nodos para conectarse, mantener una conexión y reconectarse para determinar conexiones «fijas» entre pares de uso frecuente.
Finalmente si estás interesado en conocer mas al respecto sobre esta nueva version, puedes consultar los detalles, dirigiéndote al siguiente enlace.
¿Cómo usar IPFS en Linux?
Para quienes estén interesados en poder implementar IPFS en su sistema, podrán hacerlo siguiendo las instrucciones que se detallan en este artículo.
Esto es una cosa que ya había visto antes, pero no alcanzo a comprender qué utilidad podría tener. Creo que hay servicios o aplicaciones que lo utilizan ya para sus cosas, pero aún no me puse a probar ninguna.