Pinata和Eternum标志并排排列。后台显示的是手写的分类账。

重复对象的IPFS固定服务收费过高

固定服务星际文件系统(IPFS)是一种商业托管服务,它为您的IPFS文件对象提供“pin”(IPFS术语中的“永久分发”)服务,收费。

我已经测试过两种服务,伊特纳姆(0.01美元/吉布/天)和平纳塔云(1 GiB免费,之后每月每GiB收费0.30美元),发现他们在存储帐户中对重复的IPF对象收费过高。

更新():时间云现在,对重复数据消除后的存储大小收费,而不是对重复数据块多次收费。

IPFS对象可以由单个文件或对其他IPFS对象的一组引用组成。在本文中,我将后者称为“目录对象”。例如,假设我们有一个IPFS目录对象,该对象包含对文件File_1和文件_2的唯一内容散列的引用。您将拥有三个不同的IPFS对象:directory对象和两个文件。当您锁定这样一个目录对象时,还可以间接锁定这两个文件对象。如果再将另一个文件file_3添加到目录中,则有五个IPFS对象:包含两个文件的原始目录对象、包含三个文件的新目录对象以及三个单独的文件。

由于File_1和File_2的内容从不更改,因此它们的IPFS对象保持不变。即使文件存储在两个不同的目录对象中,也不会存储它们的单独副本。目录对象只通过散列引用文件对象。IPFS应该是“永久的web”,您只需保留旧的directory对象就可以保留对象的历史记录。除了任何新的或修改过的文件数据外,保留旧版本目录的存储成本仅为几个字节。

一个IPFS节点不会存储同一个IPFS对象的多个副本。它只需要存储每个对象的一个副本,即使它们可能被多个对象引用。两个目录对象的完整大小及其引用的所有内容都在存储层上进行了重复数据消除,因此每个文件只存储一次。

IPFS还将大文件分成多个块;每个块也可以在存储中进行重复数据消除。这意味着IPFS的实际存储需求可能小于常规非重复数据消除文件系统上所有文件的总和。

pinning服务的问题是,它们总是按pinned IPFS对象的累积大小收费。虽然他们利用重复数据消除后的IPFS对象散列和块来满足自己的存储需求,但这些节省不会转嫁到客户身上。这在传统的文件托管服务中是没有问题的。然而,文件和数据块的重复数据消除是在IPF中进行的,客户希望从中获益。

不过,我不认为商业寄售服务故意收费过高。我已经和Eternum的联合创始人以及一个尚未推出的pinning服务的开发人员讨论过这一点,他们对为客户使用的实际重复数据消除存储空间付费的想法持肯定态度。这将使更多的博客和网站能够保留它们在IPFS上的历史,同时简化部署。

IPFS不支持计算对象的实际存储大小,尽管我已经建议将其添加到IPF通过创建一个由所有客户的固定对象组成的新IPFS对象,并递归地遍历每个唯一引用的对象并汇总它们的大小,可以获得每个客户的准确存储记帐。