Adrián Arroyo Calle

Iniciar IPFS

ipfs init

o

ipfs init --profile server

ipfs id

Iniciar el nodo IPFS

ipfs daemon

Obtener archivos

ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

o

ipfs cat QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

ipfs cat QmWYhH2Nac5vSgTmc6NULncakvhCXgAci33M5NXHjjBuU8 > Comuneros.jpg

FUSE

ipfs mount

GATEWAY HTTP



IPFS.io: https://ipfs.io/ipfs/QmWYhH2Nac5vSgTmc6NULncakvhCXgAci33M5NXHjjBuU8 (se prepone https://ipfs.io a la URL de IPFS).



CloudFare: https://cloudflare-ipfs.com/ipfs/QmWYhH2Nac5vSgTmc6NULncakvhCXgAci33M5NXHjjBuU8 (se prepone https://cloudfare-ipfs.com a la URL de IPFS).



Añadir archivos

Pining

ipfs pin add QmWYhH2Nac5vSgTmc6NULncakvhCXgAci33M5NXHjjBuU8

ipfs pin rm -r QmWYhH2Nac5vSgTmc6NULncakvhCXgAci33M5NXHjjBuU8

Más cosas

Imagina la web sin servicios centralizados. Donde puedas acceder a un vídeo o a una galería de fotos y que no haya una única manera de acceder a contenido. Eso y mucho más es IPFS son las siglas dey se trata de una red descentralizada de intercambio de archivos. Nos puede recordar a BitTorrent y en efecto, una buena descripción para IPFS es Torrent 2.0. No obstante IPFS implementa bastantes mejoras sobre BitTorrent, mejoras que lo hacen más útil.En un post próximo explicaré como podemos sacar partido a IPFS ahora mismo, pero antes vamos a ver algunos conceptos fundamentales de IPFS.Siendo más técnicos, IPFS es una red P2P inspirada en BitTorrent, Git y Kademlia. El protocolo es una red de distribución de contenido (CDN) y define un sistema de archivos donde el identificador es el propio contenido (a través de su hash). En IPFS nada desaparece sino que se versiona.Vamos a ver como usar IPFS desde la terminal. Existen varios clientes, en diferentes lenguajes, como js-ipfs (que tendrá mucha utilidad en aplicaciones web descentralizadas usando JavaScript), pero de momento el cliente más maduro es go-ipfs. Desde la web puedes descargarlo Una vez IPFS esté instalado hay que ejecutar lo siguiente:La segunda opción es para centros de datos, ya que reduce el tráfico interno. Este comando genera las claves RSA del nodo, necesarias para la comunicación con la red IPFS. Además se nos informa de nuestro ID de nodo. Para acceder a este ID en cualquier momento podemos escribir:Para acceder al contenido IPFS necesitamos ejecutar un nodo. Este nodo se inicia con. Una cosa importante es que por ejecutar el nodo no se va a descargar nada que no pidamos. IPFS es explícito, pero necesita estar activo.Ahora vamos a descargar nuestros primeros archivos de la red IPFS.Para obtener un archivo existen varias formas:Podemos usar el comandode IPFS, que funciona de forma similar a cat de Unix.Las URL de IPFS todavía no han sido definidas de forma definitiva pero de momento siguen el siguiente formato: /protocolo (omitible)/hash/fichero (si es una carpeta). Es el hash el que identifica el bloque de contenido y es lo que sirve para encontrar el contenido en la red IPFS. Internamente usa una DHT (Distributed Hash Table). IPFS no usa trackers como las primeras versiones de BitTorrent. En cambio usa una DHT basada en Kademlia (bastante rápida).Para obtener un fichero binario usamos el operador de redirección de Linux.También se puede acceder a IPFS por dos métodos más:Podemos montar un sistema de ficheros en Linux gracias a FUSE que es una puerta a IPFS.Y tendrás acceso a carpetas /ipfs/hash/ integradas en tu sistema. Muy útil si lo queremos integrar en aplicaciones.Podemos usar IPFS sin tener instalado nada, usando la puerta de acceso que alguien generosamente proporcione a la red. La puerta se encargará de llevar el contenido IPFS al mundo cliente-servidor de HTTP. Existen varias, de hecho cada nodo tiene un servidor HTTP en localhost para esto mismamente, pero aquí voy a mencionar dos: la de IPFS.io y la de CloudFare.Esto sirve para llevar IPFS a cualquier ordenador a través de un navegador web tradicional como Chrome, Firefox o Safari. También facilita la tarea de integrar IPFS en aplicaciones que no tengan desarrollada una librería específica.Ahora vamos a poner en la red IPFS nuevos archivos. Para ello usamos Esta operación genera el hash que identifica al contenido en la red y que tendremos que enviar a las personas que queramos que accedan al contenido.La red IPFS de este modo es semi-privada, ya que sin saber el hash no podemos acceder al contenido en cuestión.Y ya estaría, así de simple. También podemos añadir carpetas. El último hash que se ve en la pantalla hace referencia a la carpeta entera.Por defecto, IPFS almacena los archivos propios del nodo (los que hemos añadido con ipfs add). Pero entonces IPFS no supone ninguna ventaja respecto a HTTP. No es distribuido, solo hay una copia de los ficheros en el universo.Cuando descargamos un fichero, IPFS guarda en caché una copia para ofrecer a la red, haciendo que sea un sistema distribuido de verdad. No obstante si estamos realmente interesados en conservar el fichero en nuestro nodo a disposición de la red IPFS tenemos que hacer pinCuando nos deje de interesar conservar el fichero a la red, podemos quitar el pin).Todavía nos quedan muchas cosas de IPFS que ver, como el versionado, el sistema de nombres IPNS, el sistema de enlazado semántico IPLD y como podemos usar IPFS para páginas y aplicaciones web.