¿Qué es el Sistema de archivos interplanetarios (IPFS) y cómo se usa?

Varios mosaicos hexagonales con símbolos "humanos" conectados en una red.
Andrii Yalanskyi / Shutterstock

El Sistema de Archivos Interplanetarios (IPFS) es una red de intercambio de archivos punto a punto distribuida que está bien posicionada para convertirse en la base de una nueva web descentralizada. Así es como funciona y cómo puede comenzar a usarlo.

Una Internet descentralizada

Aunque es global, la World Wide Web sigue siendo una  red centralizada  . El almacenamiento de datos detrás de Internet son predominantemente servidores, físicos o virtuales, en granjas de servidores masivas o plataformas en la nube . Estas instalaciones son propiedad de una sola empresa. Los servidores son propiedad de otras empresas o los alquilan, y están configurados y expuestos para que sean accesibles al mundo exterior.

Cualquiera que quiera acceder a la información en esos servidores debe hacer una conexión HTTPS desde su navegador al servidor apropiado. El servidor está en el centro, atendiendo todas las solicitudes de acceso a los datos que contiene.

Esta es una simplificación, por supuesto, pero describe el modelo general. Para permitir la escalabilidad y brindar robustez, las organizaciones pueden poner en juego servidores espejo y redes de entrega de contenido . Pero incluso entonces, todavía hay una cantidad relativamente pequeña y finita de ubicaciones a las que las personas pueden ir para acceder a esos archivos.

IPFS es una implementación de una  red descentralizada  . Uno de los sistemas descentralizados más populares es Git , el software de control de versiones. Git es un sistema distribuido porque cada desarrollador que ha clonado un repositorio tiene una copia del repositorio completo, incluido el historial, en su computadora. Si se borra el depósito central, se puede usar cualquier copia del depósito para restaurarlo. IPFS toma ese concepto distribuido y lo aplica al almacenamiento de archivos y la recuperación de datos.

IPFS fue creado por Juan Benet y es mantenido por Protocol Labs , la empresa que fundó. Tomaron la naturaleza descentralizada de Git y las técnicas distribuidas de ahorro de ancho de banda de torrents y crearon un sistema de archivo que funciona en todos los nodos de la red IPFS. Y está aquí ahora, y funcionando.

Cómo funciona el IPFS

La web descentralizada de IPFS está formada por todos los ordenadores conectados a ella, conocidos como nodos . Los nodos pueden almacenar datos y hacerlos accesibles para cualquier persona que los solicite.

Si alguien solicita un archivo o una página web, se almacena en caché una copia del archivo en su nodo. A medida que más y más personas soliciten esos datos, existirán más y más copias en caché. Cualquier nodo (o combinación de nodos) que tenga el archivo puede cumplir con las solicitudes posteriores de ese archivo. La carga de entregar los datos y cumplir con la solicitud se reparte gradualmente entre muchos nodos.

Esto requiere un nuevo tipo de dirección web. En lugar del  enrutamiento basado  en direcciones en el que debe conocer la ubicación de los datos y proporcionar una URL específica para esos datos, la web descentralizada utiliza  el  enrutamiento basado en contenido .

No dices dónde están los datos; usted solicita lo que quiere, y se encuentra y recupera para usted. Debido a que los datos se almacenan en muchas computadoras diferentes, todas esas computadoras pueden enviar partes de los datos a su computadora a la vez, como una descarga de torrent . Esto tiene como objetivo reducir la latencia, reducir el ancho de banda y evitar cuellos de botella causados ​​por un único servidor central.

Relacionado:  Novedades de Chrome 89, disponible ahora

Alejarse del modelo centralizado significa que no hay un punto focal para que los piratas informáticos ataquen. Pero la preocupación inmediata para la mayoría de las personas será la idea de que sus archivos, imágenes y otros medios se almacenarán en las computadoras de otras personas.

No es tan así. IPFS no es algo a lo que te conectas y subes. No es un Dropbox comunal distribuido. Es algo en lo que usted participa, alojando un nodo o pagando para usar un nodo provisto profesionalmente alojado por un servicio en la nube. Y a menos que elija compartir o publicar algo, nadie más podrá acceder a él. De hecho, el término «subir» es engañoso. Lo que realmente estás haciendo es importar archivos a tu propio nodo.

Si desea que otros puedan acceder a un archivo, pero necesita mantener el contenido restringido a unos pocos seleccionados, debe cifrarlo antes de importarlo. La transmisión de datos está encriptada en ambas direcciones, pero los archivos importados no están encriptados de manera predeterminada. Esto deja la elección de la tecnología de encriptación en sus manos. IPFS no impulsa una forma de cifrado de almacenamiento de archivos como el cifrado «oficial».

Cómo se almacenan los datos

Los datos se almacenan en fragmentos de 256 KB, denominados objetos IPFS. Los archivos más grandes que eso se dividen en tantos objetos IPFS como sea necesario para acomodar el archivo. Un objeto IPFS por archivo contiene enlaces a todos los demás objetos IPFS que componen ese archivo.

Cuando se agrega un archivo a la red IPFS, se le otorga una ID de hash única de 24 caracteres, llamada  ID de contenido o CID. Así es como se identifica y referencia dentro de la red IPFS. Volver a calcular el hash cuando se recupera el archivo verifica la integridad del archivo . Si la comprobación falla, el archivo se ha modificado. Cuando los archivos se actualizan legítimamente, IPFS maneja la  versión  de los archivos. Eso significa que la nueva versión del archivo se almacena junto con la versión anterior. IPFS funciona como un sistema de archivos distribuido y este concepto de control de versiones proporciona un grado de inmutabilidad a ese sistema de archivos.

Supongamos que almacena un archivo en IPFS en su nodo y alguien llamado Dave lo solicita y lo descarga en su nodo. La próxima persona que solicite ese archivo podría obtenerlo de usted, o de Dave, o de forma similar a un torrente con partes del archivo provenientes de su nodo y del nodo de Dave. Cuantas más personas descarguen el archivo, más nodos habrá para participar y ayudar con las solicitudes de archivos posteriores.

Relacionado:  Cómo desarchivar un correo electrónico en Gmail

La recolección de elementos no utilizados eliminará periódicamente los objetos IPFS almacenados en caché. Si desea almacenar permanentemente un archivo, puede  anclarlo  a su nodo. Eso significa que no se limpiará durante la recolección de basura. Puede pagar por el almacenamiento en proveedores de almacenamiento en la nube que exponen sus datos a la red de IPFS y los mantienen anclados de forma permanente, y existen servicios específicamente diseñados para alojar sitios web a los que se puede acceder mediante IPFS.

Si algo en su sitio web se vuelve viral y genera oleadas masivas de tráfico a su sitio web, las páginas se almacenarán en caché en todos los nodos que recuperan esas páginas. Esas páginas almacenadas en caché se utilizarán para ayudar a atender más solicitudes de páginas, ayudándole a subirse a la ola y satisfacer la demanda.

Por supuesto, todo esto depende de que haya una cantidad suficiente de nodos encendidos y disponibles, y con suficientes datos anclados y en caché. Y eso requiere participantes.

Cómo instalar IPFS

Los usuarios de Windows pueden descargar y ejecutar el archivo EXE que se encuentra en la página de lanzamiento de IPFS . Si está en una Mac, descargue el archivo DMG y arrástrelo a Aplicaciones como lo haría normalmente. Si tiene problemas, consulte la documentación oficial .

Para fines de demostración, recorreremos la instalación en Ubuntu . Hay paquetes Snap disponibles para IPFS y para el cliente de escritorio de IPFS en cualquier distribución de Linux. Si solo instala IPFS, tendrá un nodo IPFS completamente funcional que puede controlar y administrar mediante un navegador. Si instala el cliente de escritorio, no necesita usar el navegador, el cliente proporciona todas las mismas funciones.

Para instalar el uso de Snaps:

sudo snap instalar ipfs

Instalación del complemento básico de IPFS

sudo snap install ipfs-desktop

Instalación del complemento del cliente de escritorio IPFS

Ahora necesita ejecutar el comando para inicializar su nodo.

inicio de ipfs

Inicializar un nodo IPFS

IPFS sugiere los siguientes comandos si tiene dificultades y el daemon no se ejecuta o no puede conectarse a él. En todas las computadoras de prueba que probamos, se requerían estos, por lo que también podría seguir adelante y emitirlos ahora:

ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["webui://-", "http://localhost:3000", "http://127.0.0.1:5001", "https ://webui.ipfs.io"]'

Configuración de solicitudes de origen cruzado en IPFS

ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "POST"]'

Configuración de métodos de acceso en IPFS

sudo sysctl -w net.core.rmem_max=2500000

Ajuste del tamaño del búfer de red

Con eso fuera del camino, puede iniciar el demonio IPFS.

demonio ipfs

Inicio del demonio IPFS

Cuando se inicia el demonio, informa las dos direcciones que puede usar para conectarse. Uno es para el escritorio de IPFS y el otro es para IPFS “webui” o interfaz de usuario web.

Las direcciones de conexión del demonio IPFS

La interfaz web

Pegue la dirección webui http://127.0.0.1:5001/webuien su navegador para conectarse a la interfaz web de IPFS.

Relacionado:  ¿Qué es el contraste en la fotografía y cómo se usa?

La página predeterminada es la pantalla «Estado». Este es un tablero que muestra el estado y la actividad de su nodo. Muestra el tamaño de los archivos que está alojando, además del tamaño total de los objetos IPFS almacenados en caché que aloja su nodo. Estos son datos de otras partes de la red IPFS. El tablero también muestra dos indicadores en tiempo real que muestran el tráfico IPFS entrante y saliente, y un gráfico en tiempo real que muestra el historial de ese tráfico.

Pantalla de estado IPFS webui

Para cambiar a una pantalla diferente, haga clic en uno de los iconos en la barra lateral izquierda. La pantalla «Archivos» le permite ver los archivos que ha importado a IPFS. Puede usar el botón azul «Importar» para buscar archivos o carpetas en su computadora que desee importar a IPFS.

Pantalla de archivos IPFS webui

IPFS hace uso de los árboles de Merkle. Estos son un superconjunto muy eficiente de árboles hash binarios,  inventados en 1979 por Ralph Merkle . Si tienes muchos árboles, tienes un bosque. El ícono «Explorar» abre una pantalla que le permite navegar a través de diferentes tipos de información almacenada dentro de IPFS y su bosque Merkle.

Pantalla de archivos IPFS webui

Hay un archivo de dibujos animados del conocido sitio web XKCD . Al hacer clic en esa opción y seleccionar una caricatura, se le entrega la caricatura elegida a través de IPFS.

Dibujos animados XKCD entregados a través de IPFS

El ícono de «Compañeros» abre un mapa mundial que traza dónde se encuentran sus conexiones IPFS en todo el mundo.

Pantalla IPFS webui Peers

En pocos minutos teníamos conexiones desde Australia, Bielorrusia, Bélgica, Canadá, China, Finlandia, Francia, Alemania, Japón, Malasia, Países Bajos, Noruega, Polonia, Portugal, Rumania, Rusia, Singapur, Corea del Sur, Suecia, Taiwán, Turquía, Reino Unido y, por supuesto, Estados Unidos.

Prueba positiva, si se necesitara alguna, de que IPFS ha generado un revuelo mundial. Por supuesto, no se conectará a todos los nodos disponibles. Eso sería ineficiente.

El cliente de escritorio IPFS

Busque IPFS Desktop en el iniciador de aplicaciones de su sistema. En GNOME, con el demonio IPFS  detenido , presione la tecla «Super» y escriba «ipfs». Verá el ícono azul del cubo IPFS.

Haga clic en este icono y se iniciará el cliente de escritorio. Iniciará el propio demonio.

El aspecto y la funcionalidad del cliente de escritorio son exactamente iguales a los de la interfaz web, pero esta vez se ejecuta como una aplicación independiente.

El cliente de escritorio IPFS

Una característica adicional que proporciona la aplicación es un indicador de aplicación en el área de notificación.

Esto le brinda acceso rápido a un menú de opciones y un indicador de semáforo del estado de su nodo. El indicador es verde para el funcionamiento normal, rojo para un error y amarillo para el arranque.

El menú indicador de la aplicación IPFS

¿Que viene despues?

Nada va a reemplazar repentinamente la web centralizada existente, pero con el tiempo las cosas evolucionarán. Quizás el IPFS sea un vistazo de lo que podría convertirse.