FIL 更新存储挖矿指南:参与角色、硬件与测试网激励

[复制链接]
8729 |0
发表于 2020-7-9 10:00:54 | 显示全部楼层 |阅读模式
来源:链闻chainnews

eeszln0wrco.jpg

eeszln0wrco.jpg



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


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


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


FIL 更新存储挖矿指南:参与角色、硬件与测试网激励


参与 FIL 网络


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


存储市场


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


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


检索市场


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


其他角色


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


存储挖矿解释


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


存储数据


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


复制证明


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


时空证明


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


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


WindowPost


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


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


WinningPost


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


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


存储能力


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


FIL 的实现


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


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


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


硬件注意事项


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


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


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


存储挖矿


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


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


矿机和基准示例


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


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


一般硬件问题


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


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


显卡(GPU):强大的 gpu 是必要的,以变在限定的时间内完成 SNARK 计算。Lotus 目前的设计只能支持 NVIDIA 制造的芯片;我们预计将来会支持其他品牌的GPU。


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


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


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


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


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


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


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


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


高级挖矿注意事项


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


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


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


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


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


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


PoSt 主要是 显卡 绑定的,但是可以利用具有多核的 CPU 来加速进程。例如,WindowPoSt 目前必须在 30 分钟的窗口内进行;24 核 CPU 和 8 核 CPU 之间可能只是时间上的区别,对结果影响不大。WinningPoSt 是一种低强度的计算,必须在 25 秒内完成。


加入测试网第二阶段


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


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


请注意,测试网产生的 Filecoin 没有任何价值–只有在主网启动后产生的 Filecoin 才可用。


促进 FIL 生态系统的发展


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


SpaceRace


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


HackFS


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


FIL Discover


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


FIL 开发补助


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


总结


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


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表