自从我们的上一套 Filecoin testnet 存储矿工指南发布以来,发生了很多变化!当时,我们刚刚启动了测试网的第一个版本,然后我们的建议反映了新生网络的不确定性和实验性。我们非常感谢所有参加(并继续参加)测试网的人,感谢您的支持,我们已经能够迅速使我们的协议和实现成熟。我们现在处于测试网的第二阶段,并且正在稳步推进主网启动。
在这篇文章中,我们提供了 Filecoin 存储挖掘的最新指南,并讨论了不断增长的 Filecoin 社区成员及最近宣布的一些激励措施和机会。
请注意,Filecoin 仍在完善中。测试网提供的来自实验的新见解正在积极地纳入最终规范中。因此,在主网启动之前,重要的网络参数仍然会发生变化。我们强烈鼓励矿工在投入大量资金之前,购买小规模的硬件以进行测试,试验和基准测试。
目前,节点可以在 Filecoin 网络中扮演两个主要角色:存储和检索。我们预计,矿工将寻求专门从事特定角色。
在 Filecoin 网络中,节点具有与客户端签约的能力,可以在约定的时间段内存储其数据,以换取 Filecoin。
为 Filecoin 网络提供存储的节点称为存储矿工。这些节点定期被授予使用它们自己创建的块扩展 Filecoin 区块链的能力。当它们创建一个新区块时,存储矿工会获得新生成的 Filecoin 奖励,并可以通过交易费用向试图在区块中包含消息的其他节点征收费用。
检索市场
节点还可以参与检索合同,为客户提供指定的文件,以换取 Filecoin。这激励具有高吞吐量、高带宽连接的位置良好的节点参与网络,促进文件的广泛和快速分发尤其是那些要求很高的文件。
目前正在开发许多其他角色(例如,促进网络自我修复的“修复”节点),但尚未在任何实现中最终确定或支持。但是,如果没有这些建议的改进,网络也能充分运作。
02
存储矿工的作用是代表 Filecoin 网络保存文件。存储矿工必须以加密方式证明他们兑现了存储这些文件的承诺,这是通过复制证明(PoRep)和时空证明(PoSt)机制实现的。向 Filecoin 网络承诺存储需要 Filecoin。这些被用作担保,以确保存储矿工履行其合同义务。
在Filecoin网络中,数据存储在固定大小的扇区中。通常,存储矿工为客户存储的数据填充这些部门,客户通过交易在特定时间段内与存储矿工服务签约。但是,存储矿工并没有被迫进行交易。如果存储矿工觉得现有的交易方案都没有吸引力,他们也可以选择做出容量承诺,用任意数据填充部门。这使他们可以证明他们正在代表网络保留空间。如果需要,为承担能力承诺而创建的部门可以在以后“升级”,为未来的交易提供合同储备。
一旦一个扇区已被填充,PoRep 就会看到存储矿工对扇区进行密封,密封是一个计算密集型的过程,会导致数据的唯一表示(原始表示可以通过打开来重新构建)。一旦数据被密封,存储矿工:生成证明;对证明运行 SNARK 进行压缩;最后,将压缩结果提交给区块链,作为存储承诺的证明。通过此过程为网络保留的存储称为抵押存储。
PoRep 完成后,存储矿工必须不断证明他们仍在存储他们承诺存储的数据。这是通过 PoSt 完成的,PoSt 是向存储矿工发出加密挑战的过程,只有通过直接咨询一个密封的扇区才能正确回答。存储矿工必须在严格的时间限制内应对这一挑战;密封的计算难度确保了存储矿工必须保持对密封部门的随时访问和完整性。
在 Filecoin 中,PoSt 面临两个不同的挑战:WindowPoSt 和 WinningPoSt。
WindowPoSt 是一种机制,可用来审核存储矿工所做承诺的机制。它将每个 24 小时周期分成为一系列的窗口。相应地,每个存储矿工的保证扇区集都被划分为子集,每个窗口一个子集。在给定的窗口内,每个存储矿工必须为其各自子集中的每个扇区提交 PoSt。这要求可以立即访问每个面临挑战的部门,并将导致将 SNARK 压缩的证据作为消息以块形式发布到区块链。这样,在每个 24 小时内至少对一次保证存储的每个部门进行一次审核,并保留一个永久,可验证的公共记录,以证明每个存储矿工的持续承诺。
Filecoin 网络期望存储文件的持续可用性。未按规定提交 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开发的Rust实现)和fuhon(由Soramitsu开发 的C ++实现)。
Filecoin 网络的参与者将需要确保他们的系统有足够的装备来履行他们打算担任的角色。
在不进行挖矿的情况下运行Lotus客户端
如果您不想挖矿,但仍然想运行 Lotus 客户端,以保留钱包或与网络连接,具有 2-4 个 CPU 内核,8GiB RAM 和足够用于 Filecoin 的存储的系统区块链应该足够了(当前的测试链每周增长约12GiB;正在进行减少该存储需求的改进)。
存储挖矿
值得注意的是,在其当前状态下,Filecoin 存储挖掘需要相当强大的硬件来满足存储和证明的要求。这些需求主要是由 PoRep 和 PoSt 机制施加的设计约束以及需要在可访问性、计算可行性和加密安全性之间取得平衡所驱动的。
Filecoin 存储采矿不是工作证明采矿,密封存储是在网络上获得存力的唯一方法。但快速和高效的硬件需要在可接受的时间范围内计算必要的证明。协议实验室目前正在研究降低这些需求的方法(例如,通过在证明机制本身引入效率,或者通过外包SNARK计算来消除对昂贵gpu的需求)。然而,与此同时,在对硬件进行大规模投资之前,未来的存储矿商应该仔细考虑和试验其系统的组成,以确保它们能够实现所需的性能。
示例矿机和基准
最佳的系统组成将在很大程度上取决于存储矿工的运营模式,包括资本支出和运营成本;因此,Protocol Labs 无法提供任何具体建议。但是,我们已经发布了一些自己的设计,包括目前适用于测试和小规模采矿的机器的概要。
我们希望存储矿工能够根据自己的需求调整其配置;可以使用替代配置在测试网上进行挖矿,并且我们希望这些配置中的许多配置都将超过我们自己构建的效率。我们鼓励进行实验,并要求感兴趣的社区成员在 GitHub 上分享自己的基准评分。
虽然我们无法提供具体建议,但可以提供一些一般性指导方针。
CPU:根据经验,具有高时钟频率的多核 CPU 将加速密封过程,使存储矿工可以更快地将存储到网络上。Protocol Labs 自己的测试表明,具有 SHA 扩展功能的现代 AMD 处理器具有 比其他处理器更大的优势。
GPU:必须有强大的 GPU,才能在所需的时间限制内完成 SNARK 计算。Lotus 当前被设计为支持 NVIDIA 制造的芯片。我们预计将来还会有其他制造商的支持卡。我们的基准测试可帮助您深入了解成功的芯片。
RAM:当前的Filecoin网络仅支持密封 32GiB 和 64GiB 扇区。在这些较大的扇区上执行必要的计算需要相应的更多 RAM。建议采矿系统至少配备 128GiB。
存储:选择合适的存储解决方案涉及很多考虑因素,也许最重要的是采矿作业所采用的特定收益模型。存储矿工目前需要保证原始存储量为 1TiB(或质量调整后的等同量;对于主网,它将增加到100TiB),以便开采区块,但是超出此要求的因素还有很多,他们可能会觉得有用考虑。
首先,也是最重要的一点是,存储矿工应该牢记数据丢失的严厉处罚;即使是一个翻转的数据位,也可能导致严重的惩罚。因此,存储矿工可能希望考虑开销来实现数据冗余。
对于试图加入检索市场的存储矿工来说,考虑合并其他存储以准备提供密封数据的“热”拷贝也可能是明智的。尽管当然可以打开一个扇区以恢复原始数据,但是支持此用例的 Filecoin 实现将消除这种计算负担(这是Lotus当前正在开发的功能)。
要考虑的另一个考虑因素是 Filecoin 网络对高可用性的期望。虽然理论上,存储矿工应该能够与大多数商品的硬盘,固态硬盘,或其他合适的,非冷存储解决方案,在进行 24/7 作业时,并不是所有的存储方案都能获得最佳效果。
当前,存储矿工还需要足够的空间来存储区块链本身。减少磁盘上区块链的占用空间是 Lotus 积极开发的一项功能。Filecoin 的实现可能还需要额外的磁盘存储,相当于承诺存储的一小部分,用于记帐。
最后,协议实验室在测试中发现,将 NVMe 存储用作交换空间可以在具有较少 RAM(128GiB)数量的系统中用作补充。否则,存储矿工在某些操作期间可能会遇到内存不足的问题(尤其是密封需要大量工作内存)。
网络:如果使用分布式 Lotus Seal 工作人员(请参阅下面的“ 高级挖矿注意事项”),则建议使用高性能网络(建议使用10GbE+网卡和交换机)。使用网络附加存储时,还建议使用高性能网络。
如前所述,Filecoin 存储挖矿主要由与 PoRep 和 PoSt 机制相关的担忧所主导。PoRep 本身是由几个阶段和 Lotus 实现,Filecoin 的便于这些阶段不同的机器代表团使用效率最大化 seal 工人。Protocol Labs 开发了一个示例架构,旨在利用这些功能进行大规模挖矿。在这里,我们分解了设计类似系统时要考虑的不同瓶颈。
密封预交付阶段1:在此阶段,进行 PoRep SDR 编码。此阶段受 CPU 限制,并且是单线程的(根据设计,它不适合并行化)。这一阶段预计需要几个小时的时间,确切的时间取决于要密封的扇形的大小,当然还取决于进行密封的机器的规格。如前所述,Protocol Labs(及其他)发现,具有 SHA 扩展的 AMD 处理器在很大程度上加快了此过程。使用具有更高时钟率的cpu也将提高性能。
密封预交付阶段2:在此阶段,,Merkle 树的生成使用 Poseidon 哈希算法。此过程主要是与 GPU 有关的,可以将 CPU 用作替代方案,但应该预期速度会慢得多。使用 GPU 时,此阶段预计需要 45 分钟到一个小时。
密封提交阶段1:这是执行生成证明所必需的准备工作的中间阶段。它受 CPU 限制,通常在数十秒内完成。
密封提交阶段2:最后,该密封阶段涉及创建 SNARK,该 SNARK 用于在将必需的证明传输到区块链之前对其进行压缩。这是一个 GPU 密集型过程,预计需要 20 到 30 分钟才能完成。
协议实验室发现,将预提交阶段 2、提交阶段 1 和提交阶段 2 并置在同一台计算机上是非常有效的,利用高密度计算机进行预提交阶段 1。但是,预提交阶段 1 和预提交阶段 2 之间有一个很大的文件传输;在网络访问速度较慢或使用硬盘而不是固态驱动器的计算机上,这可能会超过其他方面的性能提升。在这种情况下,让所有阶段都出现在同一台机器上可能会更有效率。
PoSt 主要受 GPU 约束,但可以利用具有许多内核的 CPU 来加速过程。例如,WindowPoSt 当前必须在 30 分钟的窗口内进行;24 核 CPU 和 8 核 CPU 之间的差异可能是在以适当的余量清除该窗口与在狭窄的时间范围内进行清除之间的差异。WinningPoSt 是一种强度较低的计算,必须在 Filecoin 时期的较小窗口(当前为25秒)内完成。
我们的测试网是 Filecoin 网络正式启动的初步阶段,我们目前处于测试网第二阶段,预计运行到 2020 年第三季度主网启动为止。
在测试网阶段,存储矿工可以从我们的水龙头中检索 filecoin,作为抵押存储的必要抵押。
请注意,测试网的 filecoin 没有任何价值,官方文件币仅在主网启动后才可用。
随着主网的启动,社区成员可以使用越来越多的机会参与 Filecoin。
为了准备主网,协议实验室最近宣布了一项激励计划 SpaceRace,以对测试网进行压力测试。参赛者将有机会通过使用尽可能多的存储空间,竞逐主网 filecoin。
HackFS 是一个为期 30 天的线上黑客马拉松,旨在为去中心化的网络建立基础。开发人员将构建 dapp,游戏,开发工具,DeFi 集成以及其他利用分散存储的技巧。HackFS 将由 ETHGlobal 和协议实验室主办 ,并将拥有所有黑客马拉松的主要内容:研讨会,指导,鼓舞人心的演讲,AMA 和奖品!
Filecoin Discover 是一项最近宣布的计划,旨在为 Filecoin 注入人类最有价值的文化和科学数据。购买 Discover 计划的个人将获得为期一年的质量调整后的存储交易,Discover 充当经过验证的客户。
我们通过 Filecoin 开发赠款赞助贡献者,继续促进Filecoin生态系统的发展 。第 4 轮赠款提案的截止日期为 7 月 1 日,作为优先考虑,但我们将继续评估在最后期限后提交的提案。第 5 轮提案将于 10 月 1 日到期。
总结
区块链是复杂的软件,具有很多可移动的区块,从头开始构建成功的区块链是一项艰巨的任务。如果没有世界各地社区成员的支持,Filecoin 不会是今天的成就,我们对帮助 Filecoin 走到这一步的每一个人都深表感谢!再一次,感谢您的持续支持,参与和耐心,我们进入最后的日子,在主网络上线之前。我们非常高兴地欢迎新的社区成员(矿工,开发人员和用户)加入,并希望这个指南可以作为希望加入我们的任何人的起点,因为我们着手进行此步骤很棒的旅程!
End
非常感谢您对 IPFS&Filecoin 项目的持续支持。我们很高兴继续与您一起,为人类信息建立一个强大的,去中心化和高效的基础。
FilCloud 帮你迅速了解 IPFS 领域的热点技术和应用公众号:filcloud