Mundo Descentralizado: Introducción a IPFS
--
Estos dias todos estan hablando de blockchain, de redes p2p y sobre la serie Silicon Valley cuando quieren crear la nueva internet Bueno su momento ha llegado!!! .
Para conocer mejor IPFS tenemos que ver un poco sobre que significa las redes P2P.
P2P (peer to peer) Aunque la alternativa entre pares también sea aceptada, se prefiere la anterior para evitar confusiones, reforzando la idea de que todos los nodos de una red P2P son iguales (es decir, no se distinguen servidores de clientes) y evitando el equívoco que supondría pensar que siempre se realizan comunicaciones entre parejas de nodos. No obstante, en los medios de comunicación españoles se ha venido empleando tradicionalmente el término “entre pares”, y será el que se emplee en este informe.
Básicamente, una red informática P2P se refiere a una red que no tiene clientes y servidores fijos, sino una serie de nodos que se comportan a la vez como clientes y servidores de los demás nodos de la red. Este modelo de red contrasta con el modelo cliente-servidor tradicionalmente empleado en las aplicaciones de Internet. Así, en una red P2P todos los nodos se comportan igual y pueden realizar el mismo tipo de operaciones, pudiendo no obstante diferir en configuración local, velocidad de proceso, ancho de banda de su conexión a la red y capacidad de almacenamiento.
IPFS(InterPlanetary File System) es un protocolo y una red diseñados para crear un método p2p, DFS (Distributed File System) que utiliza concepto de blockchain capaz de mantener la integridad y optimización de la transferencia de archivos distribuido de forma extremadamente segura en infraestructuras de redes con ancho de banda de enlaces muy limitados.
Instalar:
- Descargar la version recomendada de IPFS
https://dist.ipfs.io/#go-ipfs
- Una vez descargado el archivo, tenemos que descomprimirlo y ejecutar el script ./install.sh
$ tar xvfz go-ipfs.tar.gz // en mi caso ha descargado el archivo go-ipfs_v0.4.17_linux-amd64.tar.gz$ cd go-ipfs$ ./install.sh
- luego ejecutamos el comando:
$ ipfs init
Subir Archivos:
- Primero vamos a crear un archivo .txt
$ echo "hello world!" > hello_world.txt
- Ahora agregamos el archivo a ipfs
$ ipfs add hello_word.txt
- al momento de agregarlo este nos da un HASH unico
added QmeV1kwh3333bsnT6YRfdCRrSgUPngKmAhhTa4RrqYPbKT hello_world.txt
- y para leer el contenido que se encuentra en IPFS
// ipfs cat <HASH GENERADO>$ ipfs cat QmeV1kwh3333bsnT6YRfdCRrSgUPngKmAhhTa4RrqYPbKThello world!
- al momento de ejecutar ipfs cat este nos ha devuelto el contenido del archivo y no el archivo
$ echo "hello world!" | ipfs addadded QmeV1kwh3333bsnT6YRfdCRrSgUPngKmAhhTa4RrqYPbKT QmeV1kwh3333bsnT6YRfdCRrSgUPngKmAhhTa4RrqYPbKT
- ahora vamos a realizar un cambio en el tecto de archivo
$ echo "hello world! version 2" > hello_world.txt
- ahora agregamos el mismo archivo a ipfs
$ ipfs add hello_world.txtadded Qmd8tPVEYDyFQvVxnr5xqbbKvjjfonqCUrt1nZTBAsKwg8 hello_world.txt
- como se ha cambiado el contenido del archivo esto al momento de agregarlo te genera un nuevo hash
- para poder subir el directorio ipfs -w <file>
- Ejecutamos le comando
$ ipfs daemonInitializing daemon...
- Luego vamos a ver nuestro archivo subido a ipfs hay que recordar el HASH
// hello_world.txt > Qmd8tPVEYDyFQvVxnr5xqbbKvjjfonqCUrt1nZTBAsKwg8// aqui esta la URL completa
http://localhost:8080/ipfs/Qmd8tPVEYDyFQvVxnr5xqbbKvjjfonqCUrt1nZTBAsKwg8