ipfs 配置文件 Datastore 详解

作者: 橙小肠 | 来源:发表于2018-10-28 14:31 被阅读9次

    配置文件

    "Datastore": {
        "StorageMax": "10GB",           // 最大存储空间, 实际上, 存储量超过该值仍可以继续存储
        "StorageGCWatermark": 90,       // 存储空间警戒线, 只有 已使用存储空间/最大存储空间 超过该值, 定时自动 GC 才会生效, 否则不会 GC
        "GCPeriod": "1h",               // 每过 1h, 检查是否需要 GC
        "Spec": {
          "mounts": [
            {
              "child": {
                "path": "blocks",
                "shardFunc": "/repo/flatfs/shard/v1/next-to-last/2",
                "sync": true,
                "type": "flatfs"
              },
              "mountpoint": "/blocks",  // 文件块存储路径(相对于 ~/.ipfs)
              "prefix": "flatfs.datastore",
              "type": "measure"
            },
            {
              "child": {
                "compression": "none",
                "path": "datastore",
                "type": "levelds"
              },
              "mountpoint": "/",
              "prefix": "leveldb.datastore",
              "type": "measure"
            }
          ],
          "type": "mount"
        },
        
        ...
    },
    

    ipfs 定时 GC 功能

    如配置所示,StorageMax 表明 ipfs 的最大存储空间,StorageGCWatermark 表明存储空间警戒线,GCPeriod 为检查是否 GC 的间隔时间。
    当到达检查时间时,如果已用存储空间 > StorageMax * StorageGCWatermark,则会发生 GC。

    注意: 使用 ipfs daemon 启动 ipfs,并不会自动启动 ipfs 的定时GC功能。
    需要开启相应的参数, 即 ipfs daemon --enable-gc, 才会启动 ipfs 的定时GC功能。

    ipfs 数据持久化

    Spec 是 ipfs 数据持久化的规格说明书,说明了 ipfs 有哪些存储结构。下图是 ipfs 的 Spec 对应生成的 datastore 结构。

    datastore.png
    measure datastore

    用于统计信息,如 GC 次数等。

    mount datastore

    用于存储有实际存储功能的 datastore。

    flatfs datastore

    用于存储 Block。

    leveldb datastore

    用于存储 KV 信息。

    相关文章

      网友评论

        本文标题:ipfs 配置文件 Datastore 详解

        本文链接:https://www.haomeiwen.com/subject/jowptqtx.html