自从我们发布有关Filecoin测试网存储矿工的最新指南以来,发生了许多变化!当时,我们刚刚启动了测试网的第一个迭代,我们的通知反映了新生网络的不确定性和实验性质。非常感谢所有参加(并继续参加)测试网的人,感谢你们的支持,我们已经能够迅速使我们的协议和实现成熟。现在我们处于测试网的第二阶段,并且正在稳步推进主网启动。
在这篇文章中,我们提供了Filecoin存储挖矿的最新指南,并讨论了最近宣布的一些针对不断增长的Filecoin社区成员的激励措施和机会。
请注意,Filecoin仍在完善中。测试网提供的来自实验的新见解正在积极地纳入最终规范中。因此,在主网启动之前,重要的网络参数仍然会发生变化。我们强烈鼓励矿工在投入大量资金之前,购买小规模的硬件以进行测试、试验和基准测试。
参加Filecoin网络
目前,节点可以在Filecoin网络中扮演两个主要角色:存储和检索。我们预计,矿工将探索着去专门从事特定角色。
存储市场
在Filecoin网络中,节点具有与客户端签约的能力,可以在约定的时间段内存储其数据,以换取Filecoin。
为Filecoin网络提供存储的节点称为存储矿工。这些节点会定期获得使用自己创建的区块扩展Filecoin区块链的能力。当他们创建一个新区块时,存储矿工将获得新铸造的Filecoin奖励,并可以通过交易费用向试图在区块中封装消息的其他节点征收。
检索市场
节点可以另外参加检索,为客户提供指定的文件,以换取Filecoin。这激励了具有高通量、高带宽连接、位置合理的节点参与网络,从而促进了文件广泛且快速的分发,尤其是那些要求很高的文件。
其他角色
目前正在开发许多其他角色(例如,促进网络自我修复的“修复”节点),但尚未在任何实现中获得最终确定或支持。但是,没有这些被建议的改进,网络也在完全正常运行。
存储挖矿解释
存储矿工的作用是代表Filecoin网络保存文件。存储矿工必须以加密方式证明他们兑现了存储这些文件的承诺–这是通过复制证明(PoRep)和时空证明(PoSt)机制实现的。将存储抵押到Filecoin网络本身需要Filecoin来作为担保,以确保存储矿工履行其合同义务。
存储资料
在Filecoin网络中,数据存储在固定大小的扇区中。通常,存储矿工用代表客户存储的数据填充这些扇区,客户在特定时间段内通过交易与存储矿工服务签约。但是,存储矿工并没有被迫进行交易,如果存储矿工没有找到任何有吸引力的交易提议,他们可以选择做出容量承诺,用任意数据填充扇区。这使他们可以证明他们正在代表网络保留存储空间。如果需要,以后可以“升级”这些为充当容量承诺而创建的扇区,以便为将来的交易提供合同存储空间。
复制证明
一旦该扇区已被填充,复制证明(PoRep)察觉到存储矿工密封扇区-密封是计算密集的过程并产生所述数据的唯一表示(原始表示随后可以通过重构进行解封)。一旦数据被密封,存储矿工:生成证明,对证明运行SNARK进行压缩,最后,将压缩结果提交给区块链,作为存储承诺的证明。通过此过程为网络保留的存储被称为抵押存储。
时空证明
复制证明(PoRep)完成后,存储矿工必须不断证明他们仍在存储他们承诺存储的数据。这是通过时空证明(PoSt)完成的,PoSt是向存储矿工发出加密挑战的过程,只有直接查阅密封扇区才能正确回应挑战。存储矿工必须在严格的时间限制内应对这一挑战;密封的计算难度确保了存储矿工必须保持对密封部门的随时访问和完整性。
在Filecoin中,PoSt面临两个不同的挑战:WindowPoSt 和WinningPoSt。
WindowPoSt
WindowPoSt是一种机制,可用来审核存储矿工的承诺。它将每个24小时周期分解为一系列窗口。相应地,每个存储矿工的抵押扇区集都被划分为多个子集,每个窗口一个子集。在给定的窗口内,每个存储矿工必须为其各自子集中的每个扇区提交PoSt。这要求可以立即访问每个面临挑战的扇区,并将导致压缩SNARK的证据作为消息以区块形式发布到区块链。这样,在每个24小时内至少对抵押存储的每个扇区进行一次审核,并保留一个永久的、可验证的公共记录,以证明每个存储矿工的持续承诺。
Filecoin网络期望存储文件拥有持续可用性。未按规定提交WindowPoSt的扇区将导致故障,存储矿工提供的扇区将被削减 -也就是说,他们的质押金的一部分将被没收,他们的存储能力(见存储能力,下同)将下降。在被认为完全放弃存储承诺之前,存储矿工将有有限的时间从故障中恢复。如果需要,存储矿工也将具有抢先发布故障声明的能力,这将减少处罚,但仍必须在合理的时间内解决故障。
WinningPoSt
WinningPoSt是一种机制,通过这种机制可以奖励存储矿工的贡献。在Filecoin网络中,时间离散化为一系列时期-区块链的高度对应离散的时期数。在每个时间点的开始处,少数存储矿工被选来开采新区块(Filecoin利用 tipsets来允许多个区块在相同的高度被开采)。每个成功创建区块的当选矿工都将获得Filecoin,并有机会向其他节点收取费用以在区块中存储消息。
存储矿工的当选概率与其存储能力相对应。在与基础WindowPoSt相似的过程中,存储矿工的任务是在时间节点结束之前提交指定扇区的压缩存储证明。未能在必要的窗口中完成WinningPoSt的存储矿工将丧失开采区块的机会,但不会因未能这样做而受到处罚。
存储能力
Filecoin存储矿工的能力与选择存储矿工开采区块的可能性相对应,与他们代表网络密封的存储量大致成比例。为了通过简单的容量承诺进一步激励“有用”数据的存储,存储矿工有额外的机会竞争经过验证的客户提供的特殊交易。此类客户在提供涉及存储有意义数据的交易意图方面获得了认证,并且存储矿工为这些交易赚取的能力将通过乘数得到增强。考虑到该乘数后,给定存储矿工拥有的总能力称为质量调整后的存储能力。
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的存储的系统区块链应该足够了(当前的testnet链每周增长约12GiB;正在进行减少该存储需求的改进)。
存储采矿
需要指出的是,在当前状态下,Filecoin存储挖掘需要功能强大的硬件来满足存储和证明要求。这些要求主要由PoRep和PoSt机制施加的设计约束以及可访问性,计算可行性和密码安全性之间的平衡所驱动。
Filecoin存储挖掘不是工作量证明挖掘-密封存储是在网络上获得能量的唯一方法-但是需要快速高效的硬件才能在可接受的时间范围内计算必要的证明。协议实验室目前正在研究放宽这些要求的方法(例如,通过在证明机制本身中引入效率,或者通过外包SNARK计算以消除对昂贵GPU的需求)。但是,与此同时,在对硬件进行大量投资之前,潜在的存储矿工应仔细考虑并试验其系统组成,以确保他们具有所需的性能。
矿机和基准示例
最佳的系统组成将在很大程度上取决于存储矿工的运营模式,包括资本支出和运营成本;因此,Protocol Labs无法提供任何具体建议。但是,我们已经发布了一些自己的设计,包括目前适用于测试和小规模挖矿的机器的轮廓。
我们希望存储矿工能够根据自己的需求调整其配置;可以使用替代配置在testnet上进行挖掘,并且我们希望这些配置中的许多配置都将超过我们自己构建的效率。我们鼓励进行实验,并要求感兴趣的社区成员在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有助于将这些阶段委托给不同的机器使用密封工人来达到效率最大化。Protocol Labs开发了一个示例架构,旨在利用这些功能进行大规模挖掘。在这里,我们分解了设计类似系统时要考虑的不同瓶颈。
密封预交付阶段1:在此阶段,进行PoRep SDR编码。此阶段受CPU限制,并且是单线程的(根据设计,它不适合并行化)。该阶段预计需要几个小时的时间,确切的时间取决于要密封的扇形的大小,当然还取决于进行密封的机器的规格。如前所述,Protocol Labs(及其他)发现,具有SHA扩展的AMD处理器在很大程度上加快了此过程。使用时钟频率更高的CPU也会提高性能。
密封预交付阶段2:在此阶段,使用波塞冬(Poseidon)哈希算法执行Merkle树生成。此过程主要是受GPU限制的-可以将CPU用作替代方案,但应该会慢得多。使用GPU时,此阶段预计需要45分钟到一个小时。
密封提交阶段1:这是执行生成证明所必需的准备工作的中间阶段。它受CPU限制,通常在数十秒内完成。
密封提交阶段2:最后,该密封阶段涉及创建SNARK,该SNARK用于在将必需的证明广播到区块链之前对其进行压缩。这是一个GPU密集型过程,预计需要20到30分钟才能完成。
协议实验室发现将preCommit阶段2,提交阶段1和提交阶段2并置在同一台设备上是有效的,利用高密度计算机进行preCommit阶段1。但是,preCommit阶段1之间存在大量文件传输以及交付前阶段2;在网络访问速度较慢或使用硬盘而不是固态驱动器的计算机上,这可能会超过其他方面的性能提升。在这种情况下,让所有阶段都出现在同一台机器上可能会更有效率。
PoSt主要受GPU约束,但可以利用具有许多内核的CPU来加速过程。例如,WindowPoSt当前必须在30分钟的窗口内进行;24核CPU和8核CPU之间的差异可能是清除该窗口时的馀地与勉强通过的时间之差。WinningPoSt是一种强度较低的计算,必须在Filecoin时期的较小窗口(当前为25秒)内完成。
加入Testnet第二阶段
我们的测试网是Filecoin网络正式启动的初步阶段-我们目前处于测试网第二阶段,预计运行到2020年第三季度主网启动为止。
在测试网阶段,存储矿工可以从我们的水龙头中检索filecoin,作为抵押存储的必要抵押。
请注意,测试网期间的filecoin没有任何价值-官方filecoin仅在主网启动后才可用。
加速Filecoin生态系统
随着主网的启动,社区成员可以享有越来越多的机会参与Filecoin。
SpaceRace
为了准备主网,Protocol Labs最近宣布了一项激励计划 SpaceRace,以对测试网进行压力测试。参加者将有机会通过尽可能多地使用存储来争夺主网文件币。
Hack FS
HackFS是一个为期30天的虚拟黑客马拉松,旨在为分布式网络奠定基础。开发人员将构建dapp,游戏,开发工具,DeFi集成以及其它利用分散存储的技巧。HackFS将由ETHGlobal和Protocol Labs托管 ,并将拥有所有黑客马拉松的主要内容:研讨会,指导,鼓舞人心的演讲,AMA和奖品!
Filecoin Discover
Filecoin Discover是一项最近宣布的 计划,旨在为Filecoin注入人类最有价值的文化和科学数据。购买Discover计划的个人将获得为期一年的质量调整后的存储交易,Discover充当经过验证的客户。
Filecoin开发激励计划
我们通过Filecoin开发激励计划赞助贡献者,继续促进Filecoin生态系统的发展 。第4轮提案的截止日期为7月1日,可以进行优先考虑,但我们会在允许的情况下继续评估截止日期之后提交的提案。
第5轮提案将于10月1日到期。
总结
区块链是一种复杂的软件,具有很多移动部件,从头开始构建一个成功的区块链是一项艰巨的任务。没有世界各地社区成员的支持,Filecoin不会是今天的现状,我们不能充分强调我们对所有帮助Filecoin达到这一点的人的感谢!再次感谢你在主网上线之前进入最后几天时所给予的持续支持,参与和耐心。我们非常高兴地欢迎新的社区成员——矿工,开发人员和用户加入,并希望本指南可以作为任何希望加入我们的人的起点,因为我们已经着手进行这个美妙旅程的下一步!