Arrancando Motores con IPFS: Primeros Pasos
Tags: descentralized, blockchain, webdev, ipfs
Published: 2020-04-16 16:31:50

##Breve introducción

Para los que recién han llegado al mundo de las redes descentraliza. El **Sistema InterPlanetario de Archivos**( **IPFS** , por sus siglas en inglés ) es un protocolo revolucionario en donde la información no es encontrada a través de la dirección en donde se aloja la misma, sino por el contenido de la propia información.Esto se a cabo por medio de métodos criptográficos muy complejos y los cuales merecen otro artículo. De este modo,resulta fácil encontrar el archivo y no se sufre de duplicación de contenido, como sucede con el protocolo HTTP.**IPFS** hace uso de la tecnología Blockchain por lo cual varias de **sus características son la seguridad , transparencia y el anonimato**.Por ello, ha sido llamado como **uno de los precursores de la Web3.0**.

##Instalando IPFS

NOTA: La PC que utilizo en el momento de redactar este tutorial tienen como **Sistema Operativo** a **GNU/Linux**.Le recomiendo verificar [la documentación oficial](https://docs.ipfs.io/guides/guides/install/) según el SO que utilice usted.

Primero debemos instalar ipfs-update, un actualizador para IPFS.Haciendo click al enlace, lo llevara a la pagina de descargar del paquete. Una vez descargado realice lo siguiente.

Vaya a la carpeta de Descargar en mi caso es ~/Downloads y dele click derecho encima del archivo. Le aparecerá un menú contextual, dele click a la opción para extraer archivo. Una vez extraido el archivo, entre a la carpeta recién creada.

[En mi caso, solo aparecen dos archivos el instalador y el binario del paquete `ipfs-update`]

Abra la terminal con `CTRl + ALT + T`[ ← en los Sistemas Operativos GNU/Linux o MacOS ].

Escriba el siguiente comando:

`cd ~/Downloads/ipfs-update
sudo ./install.sh`

… y listo!! El comando ahora se encuentra alojado en la siguiente ruta: `/usr/local/bin/ipfs`

Ahora toca instalar la última versión de IPFS, ejecute el siguiente commando:

`ipfs-update install latest`

Se debe enfatizar que **la última versión disponible no siempre es la más estable** por lo que la propia documentación oficial recomienda escoger la versión exacta que quiere usted instalar. Para saber que version puede instalar , ejecute el siguiente comando.

`ipfs-update versions`

El resultado será una lista de versiones.

##Iniciando el Repositorio

Antes de poder usar IPFS primero debemos configurar los ajustes necesario. En palabras de la documentación oficial, “IPFS almacena todo sus configuraciones y datos internos en un directorio llamada el ‘repositorio’”. Así que antes de empezar a jugar con ipfs, debemos iniciar el repositorio. Para ello, ejecutaremos el siguiente comando:

`ipfs init`

Aquí un dato interesante, el hash de `peer identity: <HASH>`, es , como su nombre lo indica, tu tarjeta de ID en la red de IPFS. Con ese hash los demás nodos en la red podrán en comunicarse con tu nodo y realizar diversas actividades.

Ya iniciado el repositorio, podemos empezar a jugar con los commandos de ips. Por lo pronto, para poder descargar cualquier archivo desde la red, siempre debemos utilizar el comando `ipfs cat`, seguido de `/ipfs/<HASH>`. Esto resulta muy parecido al convencional `https://....`. Funciona de la misma manera.

Aqui se debe hacer hincapie en que `<HASH>` es la 'dirrecion' o mejor dichos el **Idenctificador Unico del Contenido** del archivo que quieres descargar.Esto al pricipio puede ser un poco complejo de entender. Para todos aquellos que quieren entender esto a profundidad le recomiendo la documentacion oficial.

Ahora que ya iniciamos la repo, Vamos a entrar en materia.
Agreguemos un archivo a nuestro nodo. En mi caso ejecutar los siguientes comandos en la terminal para crear un archivo .txt con el saludo `Hello, IPFS`:

`cd ~
mkdir ipfs-box && cd ipfs-box
echo “Hola , IPFS!!” > hello.txt
ipfs add hello.txt`

Para ver el archivo ejecutamos lo siguiente:
`ipfs cat <HASH-DEL-ARCHIVO-CREADO>`

**OJO**: Cuando se acceda a la red desde el CLI , siempre utilizaremos `ipfs cat` para bajar el archivo de la red.

Para subir una carpeta:
`ipfs add -r <FOLDER-PATH>`

Si queremos ver los archivos subidos al nodo, ejecutamos lo siguiente:
`ipfs ls <HASH-DEL-OBJETO-CREADO>`

Nuevamente,si quieres conocer más de las características de IPFS. Les invito a leer [la documentación oficial](https://docs.ipfs.io/).

##Una nuevo panorama se asoma en el Horizonte

Dejémonos de tanta charla y entremos a la red.Ejecuta el siguiente comando  iniciando otra instancia del terminal `CTRL+ALT+T`:

`ipfs daemon`

Ve al navegador web y escribe lo siguiente en la URL → `localhost:5001/webui`

En el momento de escribir este tutorial ,**IPFS** va por la **version 0.5.0**.Se puede inferir la etapa embrionaria de proyecto. Aun así, vale la pena jugar un poco con el protocolo y ver todas las posibilidades que ofrece. Hay que resaltar que debido a la arquitectura de ipfs solo los archivos con mayor relevancia permanecerán activos en la red.Eso quiere decir que si el contenido tiene poca descargas en la red , probablemente sea borrado. Por esp, probablemente en el momento de haber llegado a este punto del tutorial, no exista mucho trafico de datos en la red.

Se pronostica que en los siguientes 5 años con la aceptación de la tecnología Blockchain en gran parte de nuestra sociedad, proyectos como estos tomen notoriedad y quien sabe si sustituya el protocolo HTTP. El ser humano, en general, le cuesta mucho adaptarse al cambio. Muchos nos sentimos cómodos utilizando tecnologias como HTTP. Veremos qué le depara el futuro a tecnologías como estas.

-------------------------------------------------------------------------
PD: Si te ayudo en algo este tutorial o te parecio interesante. Deja un Feedback en los comentarios.