DEV Community

Ben
Ben

Posted on

IPFS el internet del futuro

Alt Text

¿Qué es IPFS?

IPFS es una tecnología desarrollada por Juan Benet desde Septiembre del 2015 el cual se compone de estas 3 características:

1.-Direccionamiento de contenido y datos vinculados

2.-Directed Acyclic Graphs (DAGs)

3.-Distributed Hash Table (DHT)

De forma general lo que hacen estas herramientas es conectarnos a un cluster de servidores, tambien conocidos como nods donde mediante un link o una secuencia de caracteres conocido como hash se vincula a una tabla de hashes donde está situados todos los servidores donde se mapea la informacion a consultar que esta distribuida por por DAGS.

¿Cómo podemos empezar con ipfs?

Hay varias formas de empezar como usarlo en el escritorio, desde linea de comandos, como un cluster pero la que usaremos es una integración con javascript, en este caso usaremos esta integración junto con docker para ello vamos a crear la siguiente estructura de archivos:

├── Dockerfile
├── index.js
└── package.json

Docerfile nos permite poner las intrucciones de como se levatará el servicio

Dockerfile

FROM node:10.15.0
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
CMD [ "npm", "start" ]

index.js es nuestra conectividad con IPFS donde enviaremos la información del promp a la red de IPFS

index.js

const prompt = require('prompt');
const IPFS = require("ipfs-mini");
const ipfs = new IPFS({host: 'ipfs.infura.io', port:5001, protocol:'https'});
prompt.start();
prompt.get(['ipfs'], function (err, result) {
console.log('Command-line input received:');
console.log('  IPS: ' + result.ipfs);


ipfs.add(result.ipfs, (err,hash)=> {
   if(err){
   return console.log(err);
   }
   console.log('https://ipfs.infura.io/ipfs/'+hash)
})
});

package.json sólo es un archivo de configuración donde indicamos como levantar el servicio de index.js

package.json


{
 "name": "ipfs",
 "version": "1.0.0",
 "description": "un ejemplo del uso de ipfs",
 "main": "index.js",
 "scripts": {
   "start": "node index.js"
 },
 "keywords": [
   "ipfs",
   "file",
   "system",
   "docker"
 ],
 "author": "uracilo",
 "license": "MIT",
 "dependencies": {
   "ipfs-mini": "^1.1.5",
   "prompt": "^1.0.0"
 }
}

Construir nuestra imagen para levantar el servicio:

docker build -t ipfs:v1 .

Correr nuestro contenedor y tener nuestro servicio:

docker run --rm -it --name=ipfs ipfs:v1

Este es el resultado del promp escribimos el texto en este caso escribí
hola mundo!

> ipfs@1.0.0 start /usr/src/app
> node index.js

prompt: ipfs:  hola mundo! 
Command-line input received:
  IPS: hola mundo! 
https://ipfs.infura.io/ipfs/QmPf7iRzvQn7QMmon1oeY5ptmVSe8zzbeHxrfMQKbEr9nr

Nos da como respuesta un link ya nuestra información esta formando parte del sistema de IPFS

https://ipfs.infura.io/ipfs/QmPf7iRzvQn7QMmon1oeY5ptmVSe8zzbeHxrfMQKbEr9nr

Como siguiente paso puedes subir un sitio web por ejemplo, pero te invito que entres a la página oficial.

https://ipfs.io

Alt Text

Top comments (0)