Generación de multihash IPFS fuera de línea – SwapyNetwork

Escrito por Philipe Atela

En nuestra búsqueda para hacer que Swapy sea lo más descentralizado posible, es imperativo encontrar una solución descentralizada para el almacenamiento temporal y permanente de datos. Al considerar a IPFS como una de las alternativas de almacenamiento distribuido más maduras, el punto se convierte en encontrar una manera de calcular la ruta a un archivo específico en IPFS fuera del nodo. Aunque IPFS utiliza hash multihash para indexar archivos en su sistema de archivos, no es posible recuperar el hash deseado simplemente copiando los datos de destino por completo. De hecho, antes de almacenar los datos, IPFS primero los organiza en un DAG de 256Kb trozos.

Como lo señaló David Dias en este hilo en IPFS, el proceso para calcular el hash de cierta información en IPFS sería:

1) Procesar los datos para obtener trozos de 256kb;

2) Calcular un nodo DAG para cada fragmento;

3) Enlace cada fragmento para obtener el DAG final;

4) Hash (algoritmo multihash) el DAG final;

Para evitar implementar todo este proceso desde cero, por lo tanto, exploramos la biblioteca javascript ipld-dag-pb:

Código para la generación multihash sin conexión

En el fragmento de código anterior, primero creamos un objeto Unixfs desde el búfer de datos, luego creamos la estructura DAG (`DAGNode.create`) a partir de un objeto Unixfs codificado en protobuf (` unixFs.marshal`) para finalmente recuperar el multihash de la estructura (`dagNode.toJSON (). multihash`).

Swapy está utilizando el proceso de obtención de un multihash de archivos IPFS fuera del nodo en tareas como:

* Intercambio de datos entre usuarios

* Autenticación descentralizada

* Sesión descentralizada.

* Más características próximas

Ya que tomó un tiempo encontrar una solución a este problema, pensamos que sería interesante compartirlo con la comunidad. ¡Esperamos que este fragmento de código pueda ser valioso para otros desarrolladores que trabajan con IPFS!

Sitio web
Gorjeo
Telegram (sólo anuncios)
Telegram (chat abierto)