Filecoin存储挖矿指南

自我们发布了关于矿工在 Filecoin测试网上的最新指南以来,已经有了很多改变!在那时,我们刚刚开始了测试网的第一次迭代,我们的通知反映了新网络的不确定性和实验性。对所有参与(并将继续参与)测试网的人表示非常感谢,感谢你们的支持,我们已迅速完善了我们的协议和实现。目前,我们已经进入了第二阶段的测试网络,并在稳步推进主网络的启动。本文提供了 Filecoin储存挖掘技术的最新指导,并讨论了最近公布的一些鼓励措施和机遇,以帮助 Filecoin社区日益壮大的成员。需要注意的是, Filecoin还在改进之中。来自测试网的关于实验的新见解正在积极地融入最终的规范。所以,在主网开机之前,网络的重要参数仍然要改变。在投入巨资前,我们强烈鼓励采矿者购买小型硬件,用于测试、测试和基准测试。加入 Filecoin网络后,当前节点在 Filecoin网络中扮演着两大角色:存储和检索。我希望矿工们能探索出具体的工作岗位,在 Filecoin网络中,节点能够与客户签订协议,在约定的时间内存储数据,以换取 Filecoin。向 Filecoin网络提供存储器的节点叫做存储器矿工。通过使用自己创建的区块来扩展 Filecoin区块链,这些节点将定期得到功能。一旦建立了一个新的区块,矿工们就会得到新铸件的 Filecoin奖励,并且可以通过交易费用向试图将消息封装在区块中的其他节点征收税款。获取市场,节点可以参与获取,向客户提供指定的文件,以换取 Filecoin。这种机制激发了具有高通量、高带宽连接、位置合理的节点参与网络,从而促进了文件,特别是高需求文件的广泛和快速分发。其它角色,目前正在开发许多其他角色(例如,为网络自我修复提供便利的“修复”节点),但尚未在任何实现中得到最后确定或支持。然而,如果没有这些建议的改进,网络就会完全正常工作,储存者的任务是代表 Filecoin网络来保存文件。储存者必须以加密方式证明他们已经履行了存储文件的承诺——这是通过复制证明(PoRep)和时空证明(PoSt)机制实现的。把储存抵押给 Filecoin网络本身就需要 Filecoin作为保证,确保储存矿工履行他们的合同义务。在 Filecoin网络中,数据存储在一个固定大小的扇区中。一般情况下,储矿者在这些扇区中填入代表客户的数据,客户在特定的时间段内通过交易与储矿者服务签订合同。但储矿者不会被强迫进行交易,如果储矿者没有发现任何有吸引力的交易建议,他们可以选择作出一个容量承诺,在扇区中填充任意数据。这样,他们就能证明自己在为网络保留存储空间。如有必要,您可以稍后“升级”这些扇区,以作为为未来交易提供合约存储空间的容量承诺。当该扇区被填满后,复制证明(PoRep)发现,储存矿工密封扇区-密封是计算密集过程和生成所述数据的唯一表示(原始表示可通过重构来解封)。当数据密封后,存储矿工:生成证明,对证明运行 SNARK进行压缩,最后,压缩结果作为存储承诺提交给区块链。在这个过程中为网络保留的存储器叫做抵押存储器,时间和空间的证明,在复制证明完成之后,矿工们必须不断地证明,他们仍然保存着他们所承诺要储存的数据。通过时空验证(PoSt)可以实现, PoSt是一个向存储矿工发出加密挑战的过程,只需直接访问密封扇区,就可以正确响应挑战。储存者必须在严格的时间限制下面对这一挑战;密封的计算难度保证了储存者必须随时保持对密封部分的访问和完整性。PoSt在 Filecoin中面临着两种不同的挑战: WindowPoSt和 WinningPoSt。windowsPoSt,是一种可以用来审核存储矿工承诺的机制。他把每24小时的循环分成一系列的窗口。与此相对应,每个储矿机的备用扇区集被分成多个子集,每个窗口中有一个。每个储存者必须在给定窗口中为其自身子集的每个扇区提交 PoSt。这样就需要能够立即访问每一个面临挑战的扇区,并且把导致 SNARK压缩的证据作为消息以区块链的形式发布出来。通过这种方式,每24小时至少对抵押矿场的每个扇区进行一次审查,并保存一个永久的、可证实的公开记录,以证明每个储矿者的持续投入。文件交换网络期望存储文件能够持续地可用。不按照规定提交 WindowPoSt的扇区会导致故障,矿工的存储扇区会被缩减——也就是说,他们的质保保证金的一部分会被没收,其存储容量(见存储容量,下同)也会减少。储存者将有有限的时间从故障中恢复,直到储存者被认为完全放弃存储承诺。如有必要,储存者还可以提前发布故障声明,这将减少处罚,但仍然必须在合理的时间内解决故障。winningPoSt

winningPoSt是一种奖励储存矿工贡献的机制。在费尔肯网络中,时间离散化为一系列时态-块链高度对应于离散的时态数。每一个时间点的起点,有几个储存者被挑选出来开采新的区块(Filecoin利用 tipsets允许多个区块在同一高度开采)。每一个成功创建区块的当选矿工都会得到 Filecoin,并且有机会向其他节点收费来存储区块中的信息。储煤者的当选概率与其储煤量相对应。类似于 WindowPoSt的基本流程,存储矿工的任务是在时间节点结束前提交指定扇区的压缩存储证明。存储矿工如果没有在必要的窗口中完成 WinningPoSt,就会失去开采区块的机会,但不会因为没有完成而受到惩罚。Filecoin存储矿工的能力相当于选择存储矿工开采区块的可能性,大约相当于其代表网络密封的存储容量。为进一步刺激“有用”数据的存储,存储矿工还有更多的机会来竞争来自已被证实的客户的特殊交易。这类客户已被证明能够提供包含存储有意义数据的交易意向,而且存储矿工为这些交易赚取收入的能力将通过倍增来提高。有了这个乘数,一个特定储存者所具有的总容量就叫做质量调整的储存量。使用 Filecoin的分布式存储网络是一种具有多种实现的开放技术规范。写这篇文章时,最成熟的实现(应该用来访问当前测试网的)是基于 Go的 Lotus。可以在 Linux和 macOS上运行 Lotus客户端,可以从 Lotus文档中获得安装和使用 Lotus的详细说明。目前,至少还有三个其它实现正在积极开发中。这些方案包括go-filecoin (另一个 Go实现)、 forest (ChainSafe实现)和 fuhon (Soramitsu实现)。“Filecoin”网络的参加者需要确保他们的系统有足够的设备来执行他们的任务,如果不想挖矿,运行 Lotus客户端,如果不想挖矿,但是仍然需要运行 Lotus客户端来保持钱包或者连接到网络,使用2-4个 CPU内核,8 GiB内存,以及用于 Filecoin存储的系统区块链应该足够了(目前, testnet链的 CPU内核每周增长大约12 GiB;正在进行改进,以减少存储需求),需要注意的是,存储开采在当前状态下, Filecoin存储开采需要强大的硬件来满足存储和验证需求。这方面的需求主要是受到 PoRep和 PoSt机制以及可访问性、计算可行性和密码安全性之间的平衡的制约。加密存储挖掘并不是工作量证明挖掘-密封存储是从网络中获取能量的唯一途径-但需要快速高效的硬件来计算在可接受的时间范围内所需的证明。协定实验室目前正在研究放松这些要求的方法(例如,将效率引入验证机制本身,或将 SNARK计算外包以消除对昂贵 GPU的需求)。但同时,在对硬件进行大规模投资之前,潜在的储存者应该仔细考虑和测试他们的系统组成,以确保他们获得所需要的性能。采矿设备和基准实例,最佳的系统构成将在很大程度上取决于储存矿工的操作方式,包括资本支出和操作成本;因此, Protocol实验室不能提供任何具体建议。但我们也推出了一些自己的设计,其中包括目前用于测试和小型挖掘的机器的轮廓。我们想让存储矿工能够根据自己的需要调整它的配置;可以在 testnet上使用替代配置,我们还想让其中很多配置的效率超过我们自己构建的效率。我们鼓励有兴趣的社区成员参与 GitHub,分享他们自己的基准评分。总体的硬件问题,虽然我们不能提供具体的建议,但是可以提供一些总体的指导,中央处理器:根据经验,具有高时钟频率的多核 CPU会加快密封过程,使储存者能更快地在网络中进行存储。ProtocolLabs自己的测试表明,现代的 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帮助将这些阶段委派给使用密封工作人员的不同机器以实现效率最大化。ProtocolLabs开发了一个范例架构,用于将这些功能用于大规模挖掘。本文分析了相似系统设计中需要考虑到的不同瓶颈。密封性预付款阶段1:在这个阶段,用 PoRepSDR编码。这一阶段受 CPU的限制,而且是单线程的(根据设计它不适合并行处理)。这一阶段预计花费数小时,具体时间取决于密封所需的扇形尺寸,当然也取决于所需机械的规格。正如前面提到的, Protocol实验室(以及其他)发现,带有 SHA扩展的 AMD处理器大大加速了这一进程。更频繁地使用 CPU时钟也能改善性能。密封性预付款阶段2:在这一阶段中, Merkle树生成是用 Poseidon散列算法完成的。这个进程主要受到 GPU的限制—— CPU可以作为一个替代,但是它应该会变得更慢。在 GPU中,这一阶段预计要花45分钟到一小时。密封性提交阶段1:这是进行生成证书所需准备工作的中间阶段。这是一个 CPU限制,通常在几十秒内完成。密封性提交阶段2:最后,该密封性阶段涉及创建 SNARK,用于在向区块链广播所需的证明之前对其进行处理。

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