Tabla de contenidos
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.
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.
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
sudo snap install ipfs-desktop
Ahora necesita ejecutar el comando para inicializar su nodo.
inicio de 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"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "POST"]'
sudo sysctl -w net.core.rmem_max=2500000
Con eso fuera del camino, puede iniciar el demonio IPFS.
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.
La interfaz web
Pegue la dirección webui http://127.0.0.1:5001/webui
en su navegador para conectarse a la interfaz web de IPFS.
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.
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.
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.
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.
El ícono de «Compañeros» abre un mapa mundial que traza dónde se encuentran sus conexiones IPFS en todo el mundo.
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.
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.
¿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.