Toc
  1. 一、IPFS简介
  2. 二、前端使用IPFS
Toc
0 results found
bbcfive
存放数据至去中心化服务器IPFS上

一、IPFS简介

IPFS(InterPlanetary File System)是一个基于libp2p库的去中心化服务器,遵循P2P协议。

二、前端使用IPFS

  1. 安装依赖

    yarn add ipfs-core

  2. 在前端文件里引入IPFS

    import * as IPFS from ‘ipfs-core’;

  3. 写数据到IPFS

    1
    2
    3
    4
    5
    const ipfs = await IPFS.create()
    const { cid } = await ipfs.add("Stay hungry, stay foolish")

    console.info(cid.toString())
    // QmTxPaRKovztC9assAEas69CMTxagzPuYBq2TirSHYCjz9
  4. 从IPFS中读取数据

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    const stream = ipfs.cat(cid.toString())
    let data = ''

    for await (const chunk of stream) {
    // chunks of data are returned as a Buffer, convert it back to a string
    data += chunk.toString()
    }

    console.log(data)
    // "Stay hungry, stay foolish"
  5. 结果预览

image.png
通过http查看:https://ipfs.io/ipfs/QmTxPaRKovztC9assAEas69CMTxagzPuYBq2TirSHYCjz9

  1. 存储数组等其他数据格式

写:

ipfs.add(JSON.stringify(mockArray))

读:

console.log(JSON.parse(data))

  1. 关于地址

一个地址只对应一个数据,例如QmTxPaRKovztC9assAEas69CMTxagzPuYBq2TirSHYCjz9这个地址对应的就是Stay hungry, stay foolish这句话,如果更改了这句话的内容,比如Hello world!!!, ipfs将会创建一个新的地址用来存放新的数据。
所以对于原先不用的数据,如果未及时删除,就会被永久存储在ipfs上的某个地址,造成浪费。

  1. 其他

IPFS官网:https://js.ipfs.io/zh-CN/
IPFS支持的操作: https://github.com/ipfs/js-ipfs/pull/107
IPFS Core Api:https://github.com/ipfs/js-ipfs/tree/master/docs/core-api

本文作者:bbcfive
版权声明:本文首发于bbcfive的博客,转载请注明出处!