http://www.xiaoyenzi.com

IPFS和Filecoin集成

Filecoin是回答“谁将数据保存在IPFS中?”这一问题的激励层。为了实现这一目标,我们需要一种方法来使IPFS中的内容由Filecoin保留,并且Filecoin可以使IPFS网络可以访问该内容。换句话说,我们需要一个接口来支持常见的IPFS开发人员使用案例,例如存储数据备份或为他们的应用程序配置分布式Web托管和内容交付。并非所有的IPFS开发人员都希望直接与Filecoin集成,因此我们的界面还可以支持固定服务的生态系统,自动化Filecoin中的数据存储和可用性 - 并进行智能缓存,使IPFS网络更可用的流行内容。
Filecoin
 

界面

接口主要由一组实用程序定义,这些实用程序可以轻松地将数据从IPFS移动到Filecoin中,反之亦然。接口可以获取文件(由IPFS散列引用)并将其存储在Filecoin中,然后通过从Filecoin检索文件并将其缓存到IPFS网络来付费以使该内容可访问。许多人希望减轻检索和缓存存储在Filecoin中的文件的责任,以使其可用于IPFS网络,这将创建固定服务的生态系统,或运行IPFS和Filecoin的“桥接节点”,从而简化该过程。
在较高级别,界面允许您保留数据,以便即使您删除了本地副本,也可以知道它正在存储。它允许您确保数据的可用性,即使您不是托管它的人。

通过哈希存储

IPFS开发人员的一个常见用例是确保在IPFS中冗余,分散地存储数据。界面支持通过提供“付费保存”选项直接在Filecoin中存储数据。

付钱保存

任何人都可以请求接口存储给定的IPFS散列,持续一段时间。此过程首先通过IPFS网络获取数据,然后与矿工签约,以便在Filecoin网络中存储。此交易的证明将返还给请求者。

通过哈希检索

Filecoin是一个双面市场。这意味着存储需要付款,并且需要单独进行检索。这使得矿工可以在两个市场中单独竞争价格。因此,界面用户需要单独支付检索费用。
对于希望直接与Filecoin集成为扩展存储层的开发人员,他们可以使用该接口来确保FileFSin中存储的内容可供IPFS网络使用。这将允许存储受限的IPFS节点将数据卸载到Filecoin,直到在IPFS网络上请求为止。这包括根据需要从Filecoin检索矿工获取数据并将其提供给请求IPFS节点,采用智能缓存策略以避免频繁提取(这将是昂贵的)。

接口

界面应提供大致以下功能签名:
type  FilInterface  interface {
   Preserve(c Cid,d Duration,p Payment)

  确保可用性(c Cid,d 持续时间,p 付款)

  ListPreserved()[] Pair <Cid,EOL >

  ListAvailable()[] 对 <Cid,EOL >

  IsPreserved(c Cid)(bool,EOL)

  IsAvailable(c Cid)(bool,EOL)
}
提供某些内容可用性的接口节点会在其数据存储区中添加额外的逻辑,大致如下所示:
// someone requests an IPFS hash from us func (fd *FilInterfaceBlockstore) Get(c Cid) (Block, error) { b, err := fd.normalBlockstore.Get(c) if err == nil { return b, nil } // we didn’t have it locally, let’s check if we’ve agreed to keep it available if !fd.AvailabilityManager.ProvidingData(c) { return nil, ErrNotFound } // we’re responsible for this data, get it from filecoin b, err := fd.FilecoinRetrieval.Get(c) if err != nil { // Oh no! we have failed to uphold our agreement! return nil, err } // We got it! Cache it locally for later fd.normalBlockstore.Put(b) // Return it to the requestor return b, nil } 

在Filecoin上固定服务

任何人都可以使用这些原语在Filecoin上运行钉扎服务(使用许多存储矿工和许多检索矿工)。固定服务有效地起到了跨越Filecoin <> IPFS接口的作用,以监听IPFS网络上特定哈希的请求,从相应的Filecoin检索矿工获取该内容,并在IPFS网络上提供/缓存所请求的数据它可用。

支付可用性

固定服务用户可以请求给定文件在特定时间段内保持可用,持续一定金额。然后,接口将通过ipfs网络为该文件提供请求,方法是保持文件在本地缓存,或按需检索。这种智能缓存机制将包含“付费可用性”功能的大部分功能。

支付持续时间而不是每次检索

对于固定服务,每次检索付费很难证明,并且整体上也提供了更差的用户体验。钉扎服务运营商可以将其抽象出来,允许用户在一定时间内简单地支付检索费用。每个“可用时间”的成本完全由运营商决定,运营商应该考虑存储成本,带宽成本和一般使用统计数据,以便计算合理的价格。运营商可能包括每小时/每天的带宽上限,以防止单个托管内容消耗不成比例的资源。

信任固定服务运营商

恶意固定服务运营商可能只是选择拿钱而不提供文件。支付文件币中的检索需要客户端和检索器之间的一点信任,因为没有简单的方法来证明某人做了或者没有提供一些数据以换取金钱。这意味着大多数检索矿工(因此,在检索市场上运行的大多数固定服务)可能是相当熟知的实体。

问责制

如果钉扎服务生成其活动的签名声明,则可以“呼叫”操作员以防止不当行为。信誉系统可以表现为客户能够选择可靠的钉扎服务。

未来固定服务改进

付款视存储而定

当前的设计允许恶意操作员“拿钱并运行”而不是存储内容。为了补偿,固定服务必须是“众所周知的” - 如果它们是恶意的,你将不再使用钉扎服务。
也就是说,我们可以设计一个系统,只有当文件以客户想要的方式存储时,才能兑换客户付款。这与filecoin客户支付filecoin存储矿工的方式类似(但更棘手)。

可验证的检索

目前,内容请求者发送付款以检索矿工,而不保证他们将使用所请求的数据进行响应。未来工作和调查的一个领域是确保以某种方式验证检索和/或可用性。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。