黑犇科技丨Filecoin存储挖矿指南

由于上周“黑犇科技 IPFS分布式存储技术交流会”的顺利举行,不断有圈内圈外的朋友向我们咨询有关 Filecoin的情况。今天,在讨论 Filecoin社区日益壮大的成员以及最近宣布的一些激励措施和机遇的同时,我们再次向大家普及 Filecoin挖矿指南。需要注意的是, Filecoin还在改进之中。测试网络提供的关于实验的新见解正在积极地融入最终的规范。所以,在主网开机之前,网络的重要参数仍然要改变。在投入巨资前,我们强烈鼓励采矿者购买小型硬件,用于测试、测试和基准测试。加入 Filecoin网络后,当前节点可在 Filecoin网络中扮演两大角色:存储和获取。我希望矿工们能专门从事一些特殊的工作,而在 Filecoin网络中,节点可以与客户签订协议,在约定的时间内存储数据,以换取 Filecoin。向 Filecoin网络提供存储器的节点叫做存储器矿工。定期授权这些节点使用他们自己创建的块来扩展 Filecoin区块链。他们创建了一个新的区块,矿工就会得到新生成的 Filecoin奖励,并且可以通过交易费用向试图将消息包含到区块中的其他节点征收费用。获取市场,节点也可以参与获取契约,向客户提供指定的文件,以换取获取文件。这样可以鼓励位置好的节点参与网络,拥有高吞吐量、高带宽的连接,促进文件的广泛和快速分发,特别是那些要求高的文件,许多其他作用(例如,促进网络自我修复的“修复”节点)也正在开发中,但尚未在任何实现中最终确定或支持。但如果不对建议进行改进,网络也可以全面运行,存储器开发说明了存储器开发人员的任务是代表 Filecoin网络保存文件。储存者必须以加密方式证明他们已经履行了存储这些文件的承诺,这种承诺是通过复制证明(PoRep)和时空证明(PoSt)机制实现的。承诺给 Filecoin网络存储需要 Filecoin。它们用作保证,以确保储矿者履行其合同义务。在 Filecoin网络中,数据是以固定大小存储的。一般情况下,储存者为客户所储存的数据会被填入这些部门,而客户会在特定时期内与储存者服务签约。但矿主们并不是被强迫交易的。若储存者对现有的交易计划都不感兴趣,他们也可以选择作出容量承诺,用任意数据填充该部门。这样,他们就能证明自己是在为网络保留空间。如有必要,为承担能力承诺而建立的部门可以稍后“升级”,为将来的交易提供合同储备。当扇区被填满后, PoRep将看到存储矿工对扇区进行密封,密封是一个计算密集的过程,导致数据的唯一表示(可通过开启来重建原始表示),当数据密封后,存储矿工:生成证明;压缩证明运行 SNARK;最后,将压缩结果提交到区块链,作为存储承诺的证明。在这个过程中为网络保留的存储器叫做抵押存储器,当 PoRep完成时,储存者必须不断地证明他们仍然在储存他们所承诺的数据。PoSt是一种向存储矿工发出加密挑战的过程,只有直接与密封区取得联系才能对此做出正确反应。储存者必须在严格的时间限制下应对这个挑战;密封的计算难度保证了储存者必须随时保持对密封部分的访问和完整性。PoSt在 Filecoin中面临着两种不同的挑战: WindowPoSt和 WinningPoSt。windowpoSt是一个机制,可以用来审核存储矿工做出的承诺。他把每24小时的循环分成一系列窗口,与此相对应,每个储矿机的担保扇区集被分成子集,每个窗口有一个子集。每一个储存者必须在给定窗口中为其自子集的每个扇区提交 PoSt。这样就需要能够立即访问每一个面临挑战的部门,并把 SNARK压缩的证据作为消息发布到区块链中,通过这种方式,保证储存库的每个部门在每24小时内至少审计一次,并保存一个永久的、可验证的公共记录,以证明每个储存库的所有者的持续投入。文件控制网络期望存储文件的持续可用性。不按照规定提交 WindowPoSt文件将导致系统失效,并减少存储矿工提供的文件。这就是说,他们的抵押品中有一部分会被没收,而他们的存储容量(见下文)会减少。储存者将有有限的时间从故障中恢复,直到储存者被认为完全放弃储存承诺,如有必要,储矿者也会有先发制人的过失,这会减轻处罚,但仍然必须在合理的时间内解决。winningPoSt

winningPoSt是一种奖励储存矿工贡献的机制。在 Filecoin网络中,时间被分解为一系列 epoch,区块链高度与经过的 epoch数相对应。每一个历元开始时,一小部分矿工被挑选出来开采新的矿块(Filecoin利用 tipset,它允许在同一高度上挖掘多个矿块)。每一个成功创建区块的当选矿工都会得到 Filecoin,并且有机会向其他节点收取费用,将信息包含到区块中。储煤者的当选概率与其储煤量相对应。与底层 WindowPoSt相似,存储矿工的任务是在 epoch结束之前提交特定扇区的压缩存储证书。存储矿工如果没有在必要的窗口中完成 WinningPoSt,就会失去开采区块的机会,但不会因为没有完成而受到惩罚。Filecoin存储矿工的能力相当于选择存储矿工开采区块的可能性,大约相当于他们在网络上密封下的存储数量。为进一步鼓励存储“有用的”数据,而非简单的容量承诺,矿工有更多的机会竞争由可靠客户提供的特殊交易。这类客户已被证明能够提供包含存储有意义数据的交易意图,而且存储矿工为这些交易所获得的权力将会通过倍增法得到加强。有了这个乘数,一个给定储存者所拥有的总电量就叫做质量调整电量。实现 Filecoin,一种具有大量实现的开放标准的分布式存储网络。写这篇文章时,最成熟的实现(应该用来访问当前测试网的)是基于 Go的 Lotus。Lotus客户端可以在 Linux和 macOS上运行;关于 Lotus的安装和使用的详细说明可以通过文档获取。目前,至少还有三个其它实现正在积极开发中。这些方案包括go-filecoin (另一个 Go实现)、 forest (ChainSafe实现)和 fuhon (Soramitsu实现)。关于硬件, Filecoin网络的参与者需要确保他们的系统拥有足够的设备,以完成他们想要完成的任务。运行 Lotus客户端而不进行挖掘,如果您不想挖矿,但仍想运行 Lotus客户端,以便保留钱包或连接到网络, Lotus客户端有2-4个 CPU内核,8 GiB RAM,以及用于 Filecoin存储的系统区块链应该是足够的(目前的测试链每周增长大约12 GiB;正在进行改进,以减少存储需求),存储器挖掘,值得注意的是,在其当前状态下, Filecoin存储器挖掘需要非常强大的硬件来满足存储器和验证的需求。这类要求主要是受到 PoRep和 PoSt机制的设计限制,而且还要求在可访问性、计算可行性和加密安全性之间取得平衡。filecoin储存采矿不是工作证明,密封存储是在网络中获得存力的唯一途径。但是快速高效的硬件要求在可接受的时间范围内计算出必要的证明。协定实验室目前正在研究如何减少这些需求(例如,通过引入效率验证机制本身,或通过将 SNARK计算外包以消除对昂贵 gpu的需求),但同时,在大规模投资硬件之前,未来的储存者应该仔细考虑并测试他们系统的构成,以确保他们能达到预期的性能。例如采矿机和基准,最好的系统组成将在很大程度上依赖于储存矿工的操作模式,包括资本支出和操作成本;因此, Protocol实验室不能提供任何具体建议。不过,我们也发布了一些自己的设计,其中包括目前适用于小型试验和采矿的机器。我们想让存储矿工能够根据自己的需要调整他们的配置;可以使用替代配置在测试网络上进行挖掘,我们还想让其中很多配置的效率超过我们自己构建的效率。我们鼓励有兴趣的社区成员参与 GitHub,分享他们自己的基准评分。尽管我们不能提出具体的建议,但是可以提出一些一般性的准则。中央处理器:根据经验,具有高时钟频率的多核中央处理器会加快密封过程,使储存者能更快地在网络中进行存储,Protocol实验室自己的测试表明,现代的 AMD处理器拥有 SHA扩展能力,比其他处理器有更大的优势。GPU:必须有很强的 GPU来完成 SNARK计算而不受时间限制。目前, Lotus是为了支持 NVIDIA公司生产的芯片而设计的。未来我们也会推出其他厂商的支持卡片。基准可以帮助你更好地理解芯片的成功之处。内存:目前的 Filecoin网络只支持32 GiB和64 GiB两个扇区。对这些较大的扇区进行必要的计算需要增加相应的 RAM。提出了至少128 GiB的采矿系统。储存:选择一个合适的储存方案需要考虑很多因素,或许最重要的是采矿作业中使用的具体的收入模式。目前,储存者需要保证原始储藏储量为1 TiB (或经质量调整的等值数量);对于主网络,储存者将增加到100 TiB,以开采区块,但在这一要求之外,还有很多因素需要考虑,他们也许会认为有用,第一,最重要的是,矿工们要记住,数据丢失将会受到严厉的惩罚,即使是数据被翻倒,也会导致严重的惩罚。所以矿工可能会想要考虑开销,以实现数据冗余,如果存储矿工试图加入检索市场,他们也可以考虑合并其他存储,为提供密封数据的“热”副本做准备,虽然肯定可以打开一个扇区来恢复原始数据,但支持该用例的 Filecoin实现将消除这种计算负担(Lotus目前正在开发该功能)。另一个需要考虑的问题是 Filecoin网络对高可用性的期望。尽管理论上,矿工们可以使用大多数商品的硬盘、固态硬盘或其他适合的、非冷却的存储方式,但并非所有的存储方式都能在24/7作业中取得最佳效果。目前,矿工的存储器也需要足够的空间来存储区块链本身。Lotus积极地开发了减少磁盘上区块链占用空间的功能,实现 Filecoin可能还需要额外的磁盘存储,这相当于结算所需存储的一小部分。最终,协议实验室在测试中发现,在 RAM (128 GiB)减少的系统中,可以使用 NVMe存储作为交换空间,作为系统的补充。另外,储存器在某些操作过程中可能会出现内存不足的问题(特别是密封需要大量的内存),Network:如果使用的是分布式 Lotus Seal员工(请参见下面的“高级挖掘注意事项”),建议使用高性能网络(建议使用10 GbE网卡和交换机)。当使用网络连接存储时,也建议使用高性能网络。正如前面提到的, Filecoin存储挖掘主要是由于担心 PoRep和 PoSt机制。PoRep本身通过几个阶段和 Lotus实现, Filecoin则通过这些阶段的不同机器组合方便地利用最大效率 seal工人,ProtocolLabs开发了一种样例架构,其设计目的是将这些功能用于大规模挖掘。本文分析了相似系统设计中需要考虑到的不同瓶颈。密封性预付款阶段1:在这一阶段,用 PoRepSDR编码。这一阶段受 CPU的限制,而且是单线程的(根据设计它不适合并行处理),这个阶段预计要花几个小时,确切的时间取决于要密封的扇形的大小,当然也取决于机器的规格,正如前面提到的, Protocol实验室(以及其他)发现,带有 SHA扩展的 AMD处理器大大加速了这一进程。采用时钟频率更高的 cpu也会提高性能。密封性预付款阶段2:在该阶段中,使用 Poseidonhash算法生成 Merkle树。这个过程主要与 GPU相关, CPU可以作为一个替代,但是它的速度应该会慢很多。在 GPU中,这一阶段预计要花45分钟到一小时。密封性提交阶段1:这是进行生成证书所需准备的中间阶段。这是一个 CPU限制,通常在几十秒内完成。封印提交阶段2:最后,封印阶段涉及到 SNA的创建。

提示:如果您觉得本文不错,请点击分享给您的好友!谢谢
相关推荐
新闻聚焦
猜你喜欢
热门推荐
 
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。