如何搭建大规模FIL集群

[复制链接]
12119 |0
发表于 2020-12-11 22:30:01 | 显示全部楼层 |阅读模式

wk588_com_gcf4xpyk3sg.jpg

wk588_com_gcf4xpyk3sg.jpg

摘要

曾经在电影《蜘蛛侠》中看到过一句话“With great power comes great reponsibility”。之前这句话都翻译为“能力越大,责任越大”,但在区块链挖矿行业中它应该是“算力越大,责任越大”。

本文讲述了如何基于石榴的挖矿软件,包括社区版和收费版,来搭建大规模FIL挖矿集群的方法。读者应该可以根据文中的内容,顺利完成集群的所有前期准备工作。我们以此文作为对于社区的回馈,也作为对区块链公开透明精神的致敬。

背景

FIL因为挖矿算法复杂、运维难度极大,一直成为阻碍传统矿工进入的门槛。但自从我们进入这个领域以来,始终在致力于帮助矿工理解其原理并且搭建属于自己的矿机。目前,仅使用社区版软件(https://github.com/shannon-6block/lotus-miner)的矿工就已经达到了20+,其中最高的拥有着PB级别的算力。他们从未在我们这里充值过任何信仰,也能在FIL挖矿上获得巨大的收益。

之前关于搭建FIL挖矿集群的教程都来自于陆续的视频分享。在此,我们将所有过去的这些分享总结成这偏文章,帮助后续的矿工能在最短的时间内了解FIL的挖矿部署流程。并且,会附加一些设计原理的解释,让矿工不仅能知道需要怎么做,还能知道为什么要这么做。

矿机

FIL的矿机分为三种,Worker、Miner和Storage。以下将分别介绍。

Worker

Worker的主要工作是封装扇区,因此需要选取高性能的AMD处理器,因为其包含SHA extension,能高效地完成PreCommit1的计算。目前我们评测性价比最高的是3960x。但是由于3960x是家用机型,而很多客户更愿意采购服务器机型,所以7F52、7F72、7542等高主频的服务器CPU则成为了更多的选择。

基于AMD 7系的CPU,最佳的搭配是1TB内存、16TB SSD、双2080Ti的GPU。其中16TB SSD是由多张SSD组成的Raid 0,最好采用NVMe接口的SSD。显卡(GPU)可以换成3080、3090,其中单3080性能是低于双2080Ti,双3080又超过了。关于后续显卡(GPU)的选型我们会继续评测。

Miner

Miner的主要工作是爆块(WinningPoSt)和抽查(WindowPoSt),因此也需要性能较好的机器。我们建议直接选用和Worker相同的机器即可,但是一定要装两张显卡(GPU)。因为我们通过软件的优化,可以将一张GPU专门用于爆块,另一张专门用于抽查。两张GPU各司其职,不会发生占用冲突。

我们目前使用单2080Ti能够在5分钟内完成1个WindowPoSt证明,即在要求的30分钟内可以完成6个证明。这意味着,单台Miner机器就足以支撑32*2349*6*48=21648384GiB≈21PiB的算力的抽查工作。当未来矿工的算力超过21PiB后,可以再考虑升级Miner配置(比如GPU升级到3090或是升级到3张GPU)或是通过单独的机器来计算WindowPoSt来解决,是非常轻松随意的。现阶段增加配置只是徒增成本而已,完全没有必要。

Storage

Storage的作用是存储封装好的扇区。因此,需要保证Storage机器有较高的品质,硬盘、主板、电源、网卡都要采用较好的配置,否则因为硬件故障导致扇区失联被惩罚得不偿失。这里建议大家选用品牌机或是成熟的解决方案,尽量不要为了节省成本而降低配置或是自己DIY。

关于存储软件的选择,目前市场上还没有形成共识。我们自己最初尝试过Ceph,发现维护成本极高,且得盘率极低。尝试过RAID,听闻有因为同时损坏两张盘而导致整台机器的存储全部丢失的案例,而且得盘率也并不高。最终我们大部分集群选择直接就用硬盘存数据,这样可以达到接近100%的得盘率。虽然不能抵御硬盘损坏,但是通过存储和计算的分离、严格把控存储硬件的质量和及时地重新生成或是终止错误的扇区,最终性价比远高于其他方案。市面上宣扬的多备份或冗余方案,大多数是因为存储硬件质量不过关或设计不合理而迫不得已。

组网

组网的原则是:

Worker往Storage传输扇区的流量,不能影响Miner和Worker之间请求的流量;

集群内部的流量,不能影响集群访问外网的流量。

因此,最终我们将集群的组网设计为如下:

wk588_com_nvfmxvazkop.jpg

wk588_com_nvfmxvazkop.jpg

江湖有传言:石榴只能做小集群。这纯属无稽之谈。从组网的图中可以看到,这样的一个集群是可以自由扩容的,想放多少机器在里面都可以。只不过机器多了之后,核心交换机的型号要再升级一下(例如100G的交换机),或是采用多台交换机进行堆叠;或是在一个交换机下混合地部署Worker和Storage,并修改调度让Worker优先给就近的Storage传输扇区,从而避免流量经过核心交换机。

技术上完全支持把集群做大。但是我们并未采用大集群的原因是,大集群的硬件成本、运维难度和故障风险会呈指数级上升,如非为了营销则完全没有必要。而且,大多数客户也要求将自己的机器放在独立的集群中,不希望和别人的机器掺和在一起。还有,FIL集群下资产是具有多样性的,包括机器、有效算力、前置抵押币、区块奖励未释放的币等,都是资产的组成,独立算账会更加清晰透明。特别是客户在当前gas费高昂的情况下,有助于客户自由灵活地暂停或开始封装算力。当然,如果有大客户一定想要大集群的话,只要多付

回复

使用道具 举报

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

本版积分规则

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