IPFS: El sistema de ficheros interplanetario

Feb 05 2020

Por Sergio G. Miranda

Una tecnología innovadora que propone un modelo disruptivo con el objetivo de hacer más rápido, óptimo y resistente, tanto el almacenamiento de recursos, como su acceso a través de internet. IPFS puede servir como un potente elemento tecnológico que podemos integrar de forma trasparente y desacoplada, dentro de la arquitectura de distintos tipos de soluciones que precisen de un modelo de almacenamiento ágil y rápido. 

El Sistema de ficheros interplanetario debe su particular nombre a un planteamiento que está alineado con su ambicioso propósito: el de facilitar el trasiego de ficheros entre ubicaciones remotas -como el que podría tener lugar en sistemas de comunicaciones entre distintos planetas-. Para ello, desacopla lo que es la URL o dirección web, la ubicación física del fichero y su contenido -que es lo que a menudo verdaderamente importa-. 

Con este escenario en mente, si desde un planeta distante deseamos recuperar un fichero ubicado en la tierra mediante su URL, tendremos que hacer una petición que teóricamente puede tardar minutos en ir y volver hasta darnos una respuesta. Este mismo proceso se repetiría cada vez que el mismo fichero fuese solicitado desde este u otro planeta.  

IPFS se plantea hacer más rápido el acceso a los recursos, facilitando su descarga desde ubicaciones más cercanas que ya tienen una copia.  

De esta forma, otros planetas no tendrían que esperar respuesta a su petición desde la Tierra, sino que lo harían sucesivamente solo desde la ubicación más cercana del recurso solicitado en cuestión. 

Pero, ¿por qué necesitamos IPFS? ¿Por qué necesitamos un nuevo protocolo si ya disponemos de una gran cantidad de tecnologías que hoy en día nos garantizan el acceso a recursos por internet? 

Una de las principales razones es la de ofrecer una alternativa al direccionamiento tradicional de Internet. Direccionamiento Basado en la ubicación. 

De forma simplificada podemos decir que cuando deseamos consultar un recurso, primero necesitamos conocer la dirección IP del servidor del recurso en cuestión. Posteriormente, realizamos una petición HTTP a ese servidor… Y finalmente, como respuesta, recibimos el recurso solicitado.  

Esta forma de dar servicio funciona bien, pero podría mejorarse. Para entenderlo, Hagamos una reflexión con el siguiente ejemplo, Antonio recomienda a Eva leer un libro que le parece interesante. Para ello, basta con que Antonio informe del título y autor para que Eva consiga el libro en algún sitio. 

¿Simple verdad? Hacia ese modelo de comunicación es donde IPFS pretende llevarnos. 

Sin embargo, con direccionamiento basado en ubicación, lo que haría Antonio sería indicar a Eva algo parecido a: “En Madrid, dirígete a la calle Valle de Alcudia 2, sube a la planta 1, entra en la sala de formación y coge el libro que está sobre la mesa de la entrada”. Probablemente, alguien que estuvo antes en esa sala pudo haber cogido el libro y situarlo en una estantería. Así que, “si no lo encuentras, haz algo similar en otra ciudad y si no, en otra y así sucesivamente”.  

Esto claramente no es lo más eficiente, ¿verdad? Eva podría haber recorrido toda España y no encontrar el libro que Antonio le había recomendado leer. O bien, podría encontrarse otro libro completamente distinto en esa misma ubicación. 

Ese mismo problema, ocurre a diario en internet, si un recurso fue eliminado o movido dentro de un servidor vamos a recibir un error 404 indicando que en esa ubicación no se encuentra. Entonces tendremos que buscarlo en otras ubicaciones. 

También puede ocurrir que en la ubicación del servidor efectivamente exista un recurso, un recurso que bien pudo haber sido actualizado con otra información y a la hora de recuperarlo, en lugar de consultar un libro nos encontramos con algo que no tiene nada que ver con lo que buscamos.  

El protocolo IPFS focaliza el direccionamiento en base al contenido de ficheros. Y para ello se sirve de la utilidad de la función resumen o hash. De esta forma podemos coger el contenido de cualquier fichero, sea cual sea su tamaño y representarlo con un texto hash de longitud fija. 

Así, para un fichero con contenido determinado podemos obtener un hash calculado con una función a partir de su contenido y que servirá como su identificador único dentro de la red IPFS

Otro fichero con contenido distinto tendrá un identificador distinto dentro de la red. Cualquier alteración al contenido de un fichero, por pequeña que parezca, repercutirá en un identificador hash completamente distinto, convirtiéndolo en un fichero distinto. 

De esta manera, un recurso concreto estará identificado por su contenido evitando así la posibilidad de obtener un recurso no deseado. 

IPFS actúa por sí solo como un sistema que autocertifica la integridad de los ficheros que se almacenan en la red. Es precisamente este, uno de los grandes beneficios que aporta IPFS y al que se le puede sacar mayor provecho en distintas soluciones de negocio. 

Sergio González-Miranda


Comparte este artículo

Utilizamos cookies propias y de terceros para ofrecerte una mejor experiencia y servicio, dentro de nuestra Web de acuerdo a tus hábitos de navegación. Si continúas navegando, consideramos que aceptas expresamente su utilización. Puedes obtener más información de cómo gestionar y configurar las cookies en nuestra Política de Cookies.