教你做 Filecoin Lotus 测试网的大矿工

Filecoin 的 Lotus 测试网于12月11日启动了,瞬间唤起了中国社区的热情。然而让很多朋友略失望的是,大型矿工牢牢占据了有效存储排行榜的前几位,小白用户发现利用家庭 PC 或笔记本,基本上不可能短时间内成为真正意义上的出块矿工。

Filecoin 的 Lotus 测试网于12月11日启动了,瞬间唤起了中国社区的热情。然而让很多朋友略失望的是,大型矿工牢牢占据了有效存储排行榜的前几位,小白用户发现利用家庭 PC 或笔记本,基本上不可能短时间内成为真正意义上的出块矿工。

Filecoin Lotus 测试网目前存在的问题

Filecoin 当初宣称的利用闲置存储和带宽挖矿,基本上在这个测试网上目前是实现不了的。还有声称找到测试网分叉攻击漏洞的,可以用和自己的有效存储不成正比的概率生成更多的区块,这对于 Lotus 来说是好事,方便官方尽早修复漏洞。

不过不用“太神话”,一方面找漏洞比修复漏洞容易得多,另一方面漏洞总会被修复,对于只想挖矿的矿工来说,找漏洞是否值得投入大量精力,那就见仁见智了。

FilCloud 团队跟踪 Filecoin 的 go-filecoin 和 Lotus 客户端代码已经有大半年了,知道开发这样一个大型区块链和去中心化存储项目的难度,其中涉及很多技术上的权衡利弊。目前 Filecoin 团队把挖矿的计算门槛提到如此之高,其实是有再三考虑的。

最重要的是保证足够的安全性,为了这个目的,目前采取的折衷办法是提高计算性能要求。我们乐观地认为,官方后续的设计改进或优化,是有可能在不丧失安全性的前提下,大大降低硬件门槛,让 Filecoin 再次成为闲置存储/带宽挖矿的标杆性去中心化落地项目。毕竟还有3个月左右时间才主网上线呢,对吧,稍安勿躁。

大矿工是如何霸占排行榜的呢?

再说回目前的测试网,大家可以看到前几名的“实力”还是很强的,和小矿工拉开了很大的差距。当然啦,这些团队或公司投入了比较大额的资金,部署大量服务器,集体挖一个矿工,得到比较好的结果,也是无可厚非的。

然而个人比较反感这些大矿工的宣传手段,好像搞得就他们能挖一样。其实大家都明白,如果只有头部几个矿工就可以霸占整个 Filecoin 网络,那么 Filecoin 这一项目一定做不起来的。比特币和以太坊上的挖矿经验告诉我们,去中心化项目最重要的群众“共识”基础,必须体现在挖矿矿工的多样性和分散性上。

如果在项目极早期就出现大矿工中心化垄断,那么这个项目肯定是走向死胡同的。我相信目前这些头部“大矿工”自己也清楚,不考虑硬件投入成本的情况下去追求所谓的排名,其实从经济效益上来说不一定是最佳的。

举个不太恰当的例子,假设(纯粹假设,别真的套用数据)你用 100 台机器和100个硬盘做到第一名大矿工的有效存储 100 TB,我用 10 台机器和 10 个硬盘(规格均一致)做到没排名的矿工的有效存储 20TB,请问谁的投入产出比高?答案不言自明。更何况大量机器组成大型矿工,对于交换机有更多要求,众所周知,带宽和高的交换机价格是贵了好多好多。

我们不希望 Filecoin 有这样的走向,所以力所能及地告诉不太明白技术细节的朋友们,其实,你们也可以做大矿工,虽然是需要投入一些价格稍贵的硬件。

成为大矿工的步骤有哪些呢?

首先准备一些机器,其中一个同时运行 lotus 全节点程序和 lotus-storage-miner 矿工程序(此节点需要配置多核 CPU 或一块显卡(用于保证 POST 时空证明的计算可以及时完成;注意如果是多核高主频 CPU,那么就可以不带显卡!),其余都作为 lotus-seal-worker 复制证明计算程序。所有 worker(也就是 lotus-seal-worker)节点都连接到 miner(也就是lotus-storage-miner),这样就可以持续获取 lotus-storage-miner 的复制证明任务。内网带宽起码 1Gb/s(100MB/s 左右),有条件提高到 10Gb/s(1GB/s 左右)。

稍微修改 lotus-storage-miner 使得进程内自动持续添加扇区,也就是 add piece,这样就会持续产生复制证明任务,worker 们就可以接收到任务然后做计算了。

复制证明任务是分两阶段的:precommit 和 commit。

precommit 阶段:worker 会自动从 miner 获取任务,并下载 staged sector,进行计算,做完后把 sealed 和 cache 目录/文件又上传给 miner。

commit 阶段:worker 又下载 sealed 和 cache 目录/文件,再次计算,把最终 sealed 文件和证明结果推给 miner。所以 worker 节点越多,并行做复制证明的任务就越多,越有利于快速提升有效存储量。

以上过程只涉及到部署,唯一需要修改代码的地方就是自动持续添加扇区(这个也可以编写脚本从外部添加扇区)。看到了吗?其实没有什么秘密,不需要太懂技术细节。

好了,以上的方式已经可以很好的“挖矿”了。

大矿工如何成为头部大矿工呢?

但如果你想成为头部大矿工,可能还需要做一些优化。其实优化思路很多,不一而足。我们这里就介绍几个比较简单容易实现的点,供大家参考。

重新审视一下上面步骤,我们发现 worker 多了以后,可能 miner 接受的下载和上传任务会很多,导致 miner 的磁盘读写压力陡增。这会导致 worker 浪费很多时间在网络传输扇区或缓存数据的时间上。而且 miner 的单个磁盘容量最多 8TB 或 16TB,会很快出现存储不够的情况。

我们很容易想到可以利用分布式文件系统,把 miner 的存储交给其他服务器。比如可以利用比较成熟的 Ceph 在所有 worker 上搭建一个 Ceph 分布式文件系统集群,然后在其上创建一个目录,同时挂载给 miner 和 worker 节点。

有意思的是,对于 miner 和 worker 程序本身并不需要做太多改动,因为 miner 和 worker 对于扇区的放置方式几乎一样,也就是说 miner 和 worker 可以轻易读取同一个文件,这样就可以省掉来回传输扇区的冗余工作(当然 Ceph 也是网络传输的,只不过不是一个层面)。只需要修改 worker 代码的一点是,把 pull 和 push 扇区和缓存数据的地方给注释掉。

还有个优化的点,是把持续生成扇区那里再改进一下,只生成一次扇区,并把 commP 结果值拿到并存起来,以后就可以省掉 generate piece commitment 和 add piece 的时间了。另外把生成的 staged 扇区只存一份到 Ceph 中,然后每次需要新的扇区时,就做个软链接,就省去了拷贝的功夫。

继续优化,我们注意到偶尔失败的扇区任务,可能留下残留文件,会占用大量存储空间,可以加一个自动周期检测清理的实现,清理冗余残留文件。

更进一步优化,上述 precommit 和 commit 阶段之间的 cache 目录中,有几个 commit 阶段完了之后会删除的文件(大概是扇区大小的 10 倍左右),那么这些中间文件是否没必要写入 Ceph?比如写入 worker 的本地磁盘,就可以减小 Ceph 的压力以及内网带宽的占用。

如果想实现这个,就必须把 precommit 和 commit 放到一个 worker 连续做,因为涉及上链交易的来回通信,这里面涉及要更改 miner 和 worker 的代码,把调度改一下,稍微复杂一点。然而这个优化可能对于整个系统的吞吐量有巨大改善。

硬件配置够好的情况下,建议挖 32GB 扇区,比挖 1GB 扇区更容易快速提升有效存储。

分布式文件系统也不是一定要用 Ceph,有很多选择,建议实测对比。

如果对 Ceph 本身的吞吐不满意,那还有更变态的优化思路,就是每个 worker 只管计算和存储分配到的扇区,miner 需要做时空证明的时候,抽到哪个扇区,就去访问相应的 worker 边读取边做时空证明。这样子就直接去掉了 Ceph 这一层,充分发挥每个 worker 自己的资源作用,非常适合目前测试网刷榜,不过有个缺点是容灾问题,某个 worker 出问题了,其上的扇区就访问不了了。而且这个需要更改的代码更多。

好了,就介绍到这里,相信有一定开发经验的朋友,很容易按上面的思路,成为“大矿工”甚至“头部大矿工”了。

其实还有很多优化思路,但目前官方的 worker 还是比较粗糙的,比如不能自动重连 miner、做成功的任务若提交失败不会自动重试等。

我们在10月份的时候针对 go-filecoin 就做过分布式挖矿的原型,效果是比目前 Lotus 的 worker 要可靠稳健得多,后续我们会考虑移植到 Lotus 上来,当然不会很快,因为我们目前重心不在 Lotus 测试网。大家都关注提供存储挖矿,那谁来考虑存储需求方,把 Filecoin 提供的存储用出去?欢迎感兴趣的朋友来交流。

我们还希望后续有精力投入的时候,推出开源的家庭式矿机软件方案,让 Filecoin 挖矿重回家庭,充分利用闲置带宽,减免托管费和运维费,而且不低于托管式挖矿的经济效益。所以还是那句话,散户矿工们不用急,主网上线还有好几个月,一切皆有可能。


非常感谢您对 IPFS&Filecoin 项目的持续支持。我们很高兴继续与您一起,为人类信息建立一个强大的,去中心化和高效的基础。

FilCloud 帮你迅速了解 IPFS 领域的热点技术和应用

公众号:filcloud

24小时热点

afd爱发电是什么网站 afd登录入口在哪

为什么需要爱发电? 我们认为,长期耕耘一件事或几件事的创作 ...

1741882

SAN币

fc2是什么网站?fc2点击在此访问

FC2是日本最大的乃至亚洲最大的域名服务商,也是一家全面的网 ...

1969026

币团交易所

gpt4.0中文版免费

GPT-4(生成预可训练技术4.0)是一个由OpenAI开发 ...

3933665

维公链

f2pool鱼池官网

f2pool是一个国际性Premine挖矿池,它是一个早期通 ...

1402030

Smart Contract

地铁派上海地铁俱乐部

海派上海地铁俱乐部是由上海市地铁交通公司(SMTC)所创办的 ...

899952

BitKeep钱包

十大虚拟币交易平台app汇总!

自从前两年比特币大火之后,带动了整个虚拟币行业,虚拟币也越来 ...

1148610

一岛

币圈大佬指出:派币(π币、pi币、pi network、兀币)是个无聊的骗局!

派币(π币、pi币、pi network、兀币)是绝对的杀猪 ...

1123193

中值联资讯

中国十大骗局之pi network(π币、pi币、派币、兀币)

中国十大骗局之pi network(π币、pi币、派币、兀币 ...

652760

Web 3.0

crowd1项目在中国合法吗

crowd1项目在中国合法吗?非常明确的告诉你,这是非法的项 ...

1079933

HitBTC交易所

外汇资金盘“海汇国际”涉嫌传销,已崩盘

近日,海汇国际涉嫌传销,资金盘口缺口达数亿,几乎资金全无,资 ...

943390

Bitget

热点专题

虚拟货币传销/诈骗案件的通常做法

当更多人似懂非懂的对虚拟货币有些模糊的概念,还搞不清比特币和 ...

4225595

瓦特(WBF)交易所

gpt4.0中文版免费

GPT-4(生成预可训练技术4.0)是一个由OpenAI开发 ...

3933665

维公链

iBox 链盒科技

据iBox官方消息,9月17日20:00,iBox将正式发布 ...

3410870

iBox

揭秘网络传销行骗七大套路!

不管网络传销打着什么旗号,戴着什么面具,即便有着“72变”, ...

3055365

A网(AOFEX)交易所

Gem和Genie功能大对比

2022年4月25日,OpenSea官方发推宣布收购NFT交 ...

2395214

TopHolder 头号藏家

Genie 就是一个 NFT 市场的交易聚合器

Web3 中的「聚合器」是一个非常重要的组件,例如 1inc ...

2361268

嗨艺购

一文读懂NFT 交易聚合器GEM

购买 NFT 的主要问题之一在于,限制了用户一次只能购买一个 ...

2321380

第九空间

fc2是什么网站?fc2点击在此访问

FC2是日本最大的乃至亚洲最大的域名服务商,也是一家全面的网 ...

1968787

币团交易所

亚洲最大成人平台“SWAG”网站关停,负责人被捕

2020 年,SWAG 发行了 6.25 亿枚治理代币 SW ...

1749969

NFT和元宇宙

afd爱发电是什么网站 afd登录入口在哪

为什么需要爱发电? 我们认为,长期耕耘一件事或几件事的创作 ...

1741276

SAN币