首页 Filecoin挖矿内容详情

Filecoin存储挖矿指南

2020-07-08 40 IPFS搬运工

自从我们上一套针对Filecoin testnet存储矿工的指南发布以来,已经发生了很多变化!当时,我们刚刚启动了testnet的第一次迭代,我们的建议反映了新生网络的不确定性和实验性。我们非常感谢所有参与(并将继续参与)testnet的人——多亏了您的支持,我们的协议和实现得以迅速成熟。我们现在正处于第二个testnet阶段,并且正在稳步地向mainnet发布迈进。

Filecoin挖矿指南

在这篇文章中,我们提供了一个关于Filecoin存储挖掘的最新指南,并讨论了最近宣布的一些针对不断增长的Filecoin社区成员的激励和机会。

请注意,Filecoin仍在改进中。从testnet提供的实验中获得的新见解正在积极地被纳入最终规范中。因此,在主网启动之前,重要的网络参数仍然会发生变化。我们强烈鼓励矿商在投入大量资金之前,购买小规模的硬件进行测试、实验和基准测试。


参与Filecoin网络

目前,一个节点在Filecoin网络中可以扮演两个主要角色:存储和检索。我们预计,矿商将寻求专业化的特殊角色。

  • 存储市场

在Filecoin网络中,节点能够与客户机签订合同,提供在约定的时间段内存储其数据以换取Filecoin。

向Filecoin网络提供存储的节点称为存储矿工。这些节点定期被授予使用自己创建的区块扩展Filecoin区块链的能力。当他们创建一个新的块时,存储矿商将获得新铸造的filecoin的奖励,并且他们可以向寻求在块中包含消息的其他节点征收交易费。

  • 检索市场

节点还可以参与检索合同,向客户端提供指定的文件以换取filecoin。这将激励具有高吞吐量、高带宽连接的位置良好的节点参与网络,促进文件的广泛和快速分发,尤其是那些要求较高的文件。

  • 其他角色

许多其他角色(例如促进网络自愈的“修复”节点)目前正在开发中,但尚未最终确定或在任何实现中得到支持。然而,在没有这些拟议的改进措施的情况下,该网络已充分发挥作用。


存储挖矿解释

存储矿工的角色是代表Filecoin网络保存文件。存储矿工必须以加密方式证明他们遵守了存储这些文件的承诺,这是通过复制证明(PoRep)和时空证明(PoSt)机制实现的。将存储抵押给Filecoin网络本身需要Filecoin;这些都被用作抵押品,以确保存储矿工履行其合同义务。

  • 存储数据

在Filecoin网络中,数据存储在固定大小的扇区中。一般来说,存储矿工用代表客户存储的数据填充这些部门,客户通过交易在特定时间段内签订存储矿工服务合同。然而,存储矿商不会被迫进行交易;如果一家存储矿业公司发现任何可用的交易提案都不具吸引力,他们也可以做出产能承诺,用任意数据填充行业。这使得他们能够证明他们代表网络预留了空间。如果需要的话,为产能承诺而创建的部门可以稍后进行“升级”,为未来交易提供合约存储。

  • 复制证明

一旦一个扇区被填满,PoRep会发现存储矿工会对该扇区进行封存——封存是一个计算密集型的过程,它会导致数据的唯一表示(原始表示随后可以通过解封来重建)。一旦数据被密封,存储矿工:生成一个证明;对证据运行SNARK以压缩它;最后,将压缩结果提交给区块链,作为存储承诺的证明。通过此过程为网络保留的存储称为保证存储。

  • 时空证明

在PoRep完成后,存储矿商必须不断证明他们仍在存储他们承诺存储的数据。这是通过PoSt来完成的,在这个过程中,向存储矿工发出一个密码挑战,只有直接咨询一个密封扇区才能正确回答这个问题。存储矿工必须在严格的时间限制内应对这一挑战;密封的计算难度确保了存储矿工必须随时进入密封区域并保持其完整性。

在Filecoin中,PoSt表现为两个不同的挑战:WindowPoSt和WinningPoSt。

  • WindowPost

WindowPoSt是一种审计存储矿工所做承诺的机制。它将每个24小时划分为一系列窗口。相应地,每个存储矿工的承诺扇区集被划分为子集,每个窗口有一个子集。在给定的窗口内,每个存储矿工必须为其各自子集中的每个扇区提交一个PoSt。这需要随时访问每个受挑战的扇区,并将导致SNARK压缩证明作为块中的消息发布到区块链。通过这种方式,在任何24小时内至少审计一次承诺存储的每个部门,并保存一份永久的、可核实的、公开的记录,以证明每个存储采矿者的持续承诺。

Filecoin网络希望存储的文件保持可用性。未能提交某个扇区的WindowPoSt将导致故障,为该扇区提供服务的存储miner将被大幅削减,也就是说,他们的一部分抵押品将被没收,他们的存储能力(参见下面的storage power)将减少。在被视为完全放弃了他们的储存承诺之前,存储矿工将有一段有限的时间从故障中恢复。如果需要,存储矿工也将有能力先发制人地宣布故障,这将减少处罚,但仍必须在合理的时间范围内解决。

  • WinningPost

WinningPoSt是一种机制,通过这种机制,存储矿工可以因其贡献而获得奖励。在Filecoin网络中,时间被离散成一系列的时间段——区块链的高度对应于经过的时间段的数量。在每一个时代的开始,都会选出一小部分的采矿者来开采新的矿块(Filecoin利用tipsets,允许在同一高度开采多个矿块)。每个成功创建块的当选矿工都被授予filecoin,并有机会向其他节点收取费用,以便在块中包含消息。

一个存储矿工被选中的概率与他们的存储能力相对应。在与底层WindowPoSt类似的过程中,存储矿工的任务是在epoch结束之前提交指定扇区的压缩存储证明。未在必要窗口完成WinningPoSt的存储矿工将失去开采区块的机会,但不会因未能完成此操作而受到处罚。

  • 存储能力

一个Filecoin存储矿工的能力,相当于一个存储矿工被选来开采一个区块的可能性,与他们代表网络封存的存储量大致成正比。为了进一步鼓励在简单的容量承诺基础上存储“有用的”数据,存储矿商有额外的机会竞争经核实的客户提供的特殊交易。这类客户在提供涉及存储有意义数据的交易的意图方面得到了认证,而存储矿业公司为这些交易获得的权力通过乘数得到增强。在计算了这个乘数后,给定存储矿工的总功率称为质量调整功率。


Filecoin的实现

Filecoin分布式存储网络是一个开放的规范,有许多实现。

在编写本文时,最成熟的实现,也应该用于访问当前testnet的实现是基于Go的Lotus。Lotus客户机能够在Linux和macOS上运行;关于安装和使用Lotus的详细说明可以在其文档中找到。

目前至少有三个正在开发中的实现。这些包括GO FILCOOIN(另一种基于GO的实现),RIGON(ChanSeaFieldActudio开发的Read实现)和FuHon(Soramitsu的C++实现)。

硬件注意事项

Filecoin网络的参与者需要确保他们的系统有足够的设备来扮演他们想要扮演的角色。

  • 在不进行挖掘的情况下运行Lotus客户端

如果您不想挖掘,但仍希望运行Lotus客户端以保留钱包或与网络连接,那么一个具有2-4个CPU内核、8GiB RAM和足够的Filecoin区块链存储空间的系统就足够了(目前的testnet链每周增长约12GiB;减少这一存储需求的改进正在进行中)。

  • 存储挖矿

值得注意的是,在当前状态下,Filecoin存储挖掘需要相当强大的硬件来满足存储和证明要求。这些需求在很大程度上是由PoRep和PoSt机制所施加的设计约束所驱动的,以及需要在可访问性、计算可行性和密码安全性之间取得平衡。

Filecoin存储挖掘不是工作证明挖矿-密封存储是在网络上获得动力的唯一方法-但需要快速高效的硬件在可接受的时间范围内计算必要的证明。协议实验室目前正在研究放宽这些要求的方法(例如,通过将效率引入证明机制本身,或者通过外包SNARK计算来避免对昂贵gpu的需求)。然而,与此同时,在对硬件进行大规模投资之前,潜在的存储矿工应仔细考虑并试验其系统的组成,以确保他们能够达到所需的性能。

  • 矿机和基准示例

最佳的系统组成将在很大程度上取决于存储矿工的运营模式,包括资本支出和运营成本;因此,协议实验室无法给出任何具体的建议。然而,我们已经发表了一些我们自己的设计,包括目前适合测试和小规模采矿的机器的概要。

我们希望存储矿工能够根据自己的需要调整配置;在testnet上使用其他配置进行挖掘是可能的,而且我们预计这些配置中的许多将超过我们自己构建的效率。我们鼓励实验,并要求感兴趣的社区成员在GitHub上分享他们自己的基准分数。

  • 一般硬件问题

虽然我们不能提出具体的建议,但我们可以提供一些一般性的指导方针。

CPU:根据经验,具有高时钟速率的多核CPU将加快密封过程,从而使存储矿工能够更快地将存储设备装载到网络中。Protocol Labs自己的测试表明,现代AMD处理器具有SHA扩展,与其他处理器相比具有相当大的优势。

GPU:强大的gpu是必要的,以完成SNARK计算在所需的时间限制。Lotus目前的设计是为了支持NVIDIA制造的芯片;我们预计将来会有其他制造商的支持卡。我们的基准测试可以深入了解我们成功的芯片。

RAM:目前的Filecoin网络只支持32GiB和64GiB扇区的密封。在这些较大的扇区上执行必要的计算需要相应地增加RAM;建议采矿系统至少配备128GiB。

Storage:在选择适当的存储解决方案时,需要考虑很多因素,其中最重要的可能是采矿作业假定的特定收入模型。存储矿工目前需要保证1TB的原始存储(或其质量调整的等价物,这将增加到100TIB的主干网),以挖掘块,但还有更多的因素超出这一要求,他们可能会发现它是有用的考虑。

  • 首先,也是最重要的一点是,存储矿商应该注意到,如果数据丢失,可能会受到严厉的惩罚;即使是一个翻转的数据位,也可能导致严重的惩罚。因此,存储矿工可能希望考虑到实现数据冗余的开销。

  • 对于寻求参与检索市场的存储开采商来说,考虑合并额外的存储以准备提供密封数据的“热”拷贝,这可能也是一种谨慎做法。尽管解封扇区以恢复原始数据当然是可能的,但是支持这个用例的Filecoin实现将消除这种计算负担(这是目前正在为Lotus开发的特性)。

  • 另一个需要考虑的因素是Filecoin网络对高可用性的期望。虽然理论上,存储矿工应该能够参与大多数商品硬盘、固态硬盘或其他合适的非冷存储解决方案,但并非所有存储解决方案都能在全天候运行时获得最佳性能。

  • 存储矿商目前也需要足够的空间来存储区块链本身;缩小区块链在磁盘上的占地面积是Lotus积极开发的一个特点。Filecoin实现可能还需要额外的磁盘存储,相当于保证存储的一小部分,用于记账。

  • 最后,协议实验室在测试中发现,在RAM量较低(128GiB)的系统中,使用NVMe存储作为交换空间可以作为补充;在某些操作中,存储矿工可能会遇到内存不足问题(尤其是密封,需要大量工作内存)。

网络:如果使用分布式lotusseal worker(请参阅下面的高级挖掘注意事项),建议使用高性能网络(建议使用10GbE+网卡和交换机)。使用网络连接存储时,也建议使用高性能网络。

  • 高级挖矿注意事项

如前所述,Filecoin存储挖掘主要受与PoRep和PoSt机制相关的关注。PoRep本身由几个阶段组成,而Filecoin的Lotus实现有助于将这些阶段委托给不同的机器,以使用seal worker实现最大效率。ProtocolLabs开发了一个示例架构,旨在利用这些功能进行大规模挖掘。在这里,我们在设计类似的系统时,分解了需要考虑的不同瓶颈。

密封预交付第1阶段:在这个阶段,PoRep SDR编码发生了。这个阶段受CPU限制,是单线程的(根据设计,它不适合并行化)。这个阶段预计需要几个小时的时间,精确的时间取决于被密封的扇区的大小,当然,也取决于进行密封的机器的规格。如前所述,协议实验室(和其他机构)已经发现,带有SHA扩展的AMD处理器在很大程度上加速了这一过程。使用具有更高时钟速率的cpu也将提高性能。

密封预交付第2阶段:在这个阶段,Merkle树的生成是使用Poseidon哈希算法执行的。这个过程主要是GPU限制的-CPU可以作为一种替代,但应该预期会慢得多。当使用GPU时,此阶段预计需要45分钟到1小时。

密封提交阶段1这是一个中间阶段,执行生成证据所需的准备工作。它受CPU限制,通常在几十秒内完成。

密封提交阶段2:最后,这个密封阶段涉及到创建一个SNARK,在它被广播到区块链之前,它被用来压缩必要的证据。这是一个GPU密集型过程,预计需要20-30分钟才能完成。

ProtocolLabs发现在同一台机器上同时使用preCommit phase 2、commit phase 1和commit phase 2是非常有效的,它利用高密度的计算机来执行preCommit phase 1。但是,在预提交阶段1和预提交阶段2之间存在大量文件传输;在网络访问速度较慢或使用硬盘而不是固态驱动器的计算机上,这可能会超过在其他方面取得的性能提升。在这种情况下,让所有相位都出现在同一台机器上可能更有效。

PoSt主要是GPU绑定的,但是可以利用具有多核的CPU来加速进程。例如,WindowPoSt目前必须在30分钟的窗口内进行;24核CPU和8核CPU之间的区别可能是在一个舒适的范围内清除窗口和只是在时间上勉强通过。WinningPoSt是一种不那么密集的计算,必须在Filecoin时代(目前是25秒)的小窗口内完成。


加入测试网第二阶段

我们的testnet是正式发布Filecoin网络的初步阶段–我们目前处于testnet第2阶段,预计将持续到2020年第3季度mainnet发布。

在testnet阶段,存储矿工可以从我们的水龙头检索filecoin,作为保证存储所需的抵押品。

请注意,testnet filecoin没有任何价值–官方的filecoin只有在mainnet启动后才可用。


促进Filecoin生态系统的发展

随着mainnet发布的临近,社区成员参与Filecoin的机会越来越多。

  • SpaceRace

为了准备主网,协议实验室最近宣布了一个激励计划,SpaceRace,对测试网进行压力测试。参与者将有机会通过加入尽可能多的存储来竞争mainnet filecoin。

  • HackFS

HACKFS是一个30天的虚拟黑客大会,旨在建立分散的网络的基础。开发人员将构建dapp、游戏、开发工具、DeFi集成和其他利用分散存储的黑客。HackFS将由ETHGlobal和Protocol Labs主办,并将有所有的hackathon主打内容:研讨会、指导、鼓舞人心的演讲、AMAs和奖品!

  • Filecoin Discover

Filecoin Discoin 是最近宣布的一项倡议,旨在为Filecoin植入一些人类最有价值的文化和科学数据。购买Discover计划的个人将获得一年的质量调整存储协议,Discover将作为验证客户。

  • Filecoin开发补助

我们继续通过Filecoin dev grants赞助出资人,促进Filecoin生态系统的发展。第4波拨款建议的截止日期为7月1日,以供优先考虑,但我们会继续评估在截止日期后提交的建议,只要能力允许。第五波提案将于10月1日提交。


摘要

区块链是一个复杂的软件,有很多移动的部分,从零开始构建一个成功的区块链是一项巨大的事业。如果没有世界各地社区成员的支持,Filecoin就不会有今天这样的成就,我们对帮助Filecoin实现这一目标的每一个人都是多么的感激!再次感谢您的持续支持,参与和耐心,因为我们进入了最后几天的主网上线。我们非常高兴能欢迎新的社区成员加入我们的行列,无论是矿工、开发者还是用户,我们都希望本指南能成为任何希望加入我们的人的出发点,因为我们将踏上这段美好旅程的下一步!

 暂无评论,快来抢沙发吧~

发布评论