ipfs 配置文件 Datastore 详解

配置文件

"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 信息。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • •王越:VMware存储API整理,比如核心的存储池与卷两者的CURD。可以参考:VMware in OpenSt...
    笨手笨脚越阅读 5,713评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,933评论 18 139
  • 2018年,最火爆且值得期待的区块链项目莫过于EOS和IPFS。EOS在最近写的一篇《EOS简介与环境搭建》有介绍...
    良__阅读 43,671评论 16 82
  • 后来有人说 再也没见过她 /一个站在窗前 瞳孔反应出她的内心独白 却一直让烟缭绕的女人 于是作为听者的我微笑且故作...
    张三者阅读 146评论 0 0
  • KEYBOARD NOT FOUND. PRESS F1 TO CONTINUE 《美团点评点餐前后端分离实践》 ...
    知行社阅读 325评论 0 5