ipfs pin和MFS之间有什么连接?

12

IPFS有两个概念,它们之间的联系对我来说不是很清楚:IPFS pin和IPFS MFS。

据我所知,ipfs pin可以使您在节点上保留内容,以防止垃圾回收自动删除它。在这种情况下,如果我使用ipfs add <file>自己添加内容,那么它将被自动固定,然后只能手动取消固定并删除。

另一方面,IPFS MFS允许像在文件系统中一样操作对象。例如,我可以使用ipfs files cp <id> <name>将特定的外部对象复制到MFS中。之后,我可以使用ipfs files stat <name>找出其ID。

问题如下:

  1. MFS中的文件是否受到垃圾回收器的保护?
  2. 如果受到保护,为什么它们在ipfs pin ls中没有显示?
  3. 如果我使用ipfs add <file>将数据添加到MFS中,然后使用ipfs files cp <id> <name>将其添加到MFS中,并使用ipfs pin rm <id>取消固定,那么数据会被保存吗?
  4. IPFS MFS是处理数据的更可靠方式吗?
1个回答

11
  • 在回答这些问题之前,它们都很好!分别回答:
    1. MFS中的文件是否受到垃圾收集器删除的保护?

    默认情况下它们并未被锁定。如果您想要Pinner跟踪它们,您需要将这些文件也锁定。您可以执行ipfs files stat /somePath,获取哈希值,然后锁定该哈希值。

    令人困惑的是,GC将进行“尽力而为”的锁定,其中由MFS DAG的根访问的文件也不会被GC。

    举个例子:

    • 您将文件添加到MFS中
    • 您对MFS上的文件进行修改
    • 旧版本将被GC清理
    • 最新版本将受到保护,不会被GC清理

    如果您希望保护旧文件,则可以使用Pin API。

    1. 如果已受保护,那么为什么它们不在ipfs pin ls中显示?

    如问题1所回答的,您需要手动锁定它们才能看到它们被跟踪在锁定系统中。

    1. 如果我使用ipfs add <file>将数据添加,然后使用ipfs files cp <id> <name>将其添加到MFS中,并使用ipfs pin rm <id>来取消锁定它,那么数据会保存吗?

    也许您现在已经有所了解。为了澄清:

    • 固定是一种垃圾回收(GC)的保护机制。如果被固定,GC 将不会删除它
    • MFS 不会自动固定文件。GC 只试图与 MFS 友好相处,而不是 GC 根据 MFS 可达的文件。
    1. IPFS MFS 是否是一种更可靠的处理数据的方式?

    它更为熟悉,因为您可以获取常规的目录结构和类Unix API 来操作文件。它为您处理了图形操纵。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接