初识 Chia 网络挖矿
相信大家对比特币 / 以太坊等币种的挖矿早已非常熟悉。所谓挖矿,其背后的原理是共识问题。许多矿工参与挖矿固然是为了获取虚拟货币,进而获得利润。但究其本质,挖矿的目的是为了维护一整张分布式计算网络,维护共识。而分配给矿工的虚拟货币只是这一过程的奖励而已。
按照中本聪的设想,利用大众家里的电脑 CPU 闲置算力就可以构筑起一个强有力的分布式网络。然而随着 ASIC 矿机的出现,这种运算能力很容易被专用矿机获取,从而成了资本的游戏。而且能源价格也显著的影响着比特币的算力。
根据 Chia 的白皮书,Chia 项目的愿景是「数字世界的绿色货币」。在其设计之初,对选择算力基础的目标是「一种分布广泛、抗 asic、供应过剩的商品」,而且与电价无关 – 这就是硬盘空间。(广义的说也包括众多形态的计算机存储设施,只要能提供最低 600MiB 的容量——这是 Chia 挖矿软件能提供的最小 plot 文件,但十分不经济,且在最新的实现中已不被支持,但还是可以当作测试效能的工具)。咨询家威:zhlcyxf
截止本文写作时,根据 Chia 全网的算力估算其总耗电功率还不到 1000KW。相比 BTC 实属天差地别。
都是挖矿,Chia 有何不同?
简而言之,Chia 的挖矿过程如同彩票开奖。参与挖矿的矿工应该提前准备好被称为 plot 的文件,然后等着下一个区块的广播。这些文件里的内容和广播中的内容都是哈希值。哪个幸运儿手中的哈希值与广播中的最接近,恭喜,他就中了奖,获得了 XCH 代币。
按照 Chia 网络的设计,在主网上线的前三年,每 10 分钟的产出是 64 个 XCH,由 32 个矿工分享,即每个矿工每天有 4608 次中奖机会,随后分批递减。
准备 plot 文件的过程本质就是计算出巨量的哈希值,存储于磁盘上。官方提供的钱包程序即可完成这种计算过程。钱包客户端同时附带了命令行界面的程序(CLI),可供矿工编写脚本灵活使用。
为了提高中奖的概率,矿工自然应该准备越多 plot 越好。Chia 网络的算力单位就是存储单位,即 MB/GB/TB/PB 等。注意官方使用的单位为带有小写 i 的如 GiB,其含义是以 1024 为进位,而非硬盘厂商使用的以 1000 为进位。所以当你看到默认参数说产生一个 plot 需要 239GiB 缓存空间就窃喜以为 1T 的硬盘可以同时进行 4 个 plot 的时候,先别高兴太早,因为 239GiB 约等于 251GB,而 1T SSD 其实只有 930 多 GB 的实际容量。当然,经过实践摸索,1T 的 SSD 也完全是可以同时进行 4 个 plot 的,只不过需要参数设置上的一点小技巧。
了解过 Filecoin 挖矿的朋友可能会觉得 Chia 挖矿非常相似,从某种程度上确实是这样。二者都需要大量的存储设备,并在都需要在正式进行挖矿之前进行预先的准备工作,才能够生成有效算力,在 Filecoin 中这步被叫做数据填充,而在 Chia 中被叫做 Plot,或者更大众的叫法-P 盘。不过 Filecoin 挖矿对设备的要求极高,并不只是堆砌存储设备就可以,远远超出了大众使用范畴,同时还有非常复杂及昂贵的前置抵押等要求。而 Chia 的要求非常亲民,没有抵押、没有惩罚机制、用个人 PC 就能够进行操作,这是 Chia 迅速火遍大江南北成功破圈的原因。
不过 Filecoin 和 Chia 的对存储空间的使用逻辑并不相同,Filecoin 挖矿本质上是对于提供分布式存储的一种激励,而 Chia 则是纯粹用这种特殊的机制来维持网络共识。
Chia 挖矿过程极简解析
从 4 月中旬 Chia 爆火以来,很多急不可耐的矿工已经或正在准备买硬盘,想大干一场。从已有的社区讨论来看,为数众多的计算资源并未得到充分利用。所以,很有必要了解一下 Chia 挖矿的要点,并针对自己的条件加以优化,才能做到高效挖矿。
Chia 的挖矿过程并不是有大容量硬盘就行。有两部分缺一不可:制作 plot 文件(通常简称 p 图,因为官方把 plot 翻译为耕地)和挖矿(官方翻译为耕种)。
对于 Chia 来说,挖矿这一步其实是非常轻松的行为,重要的是容量,而不是速度,甚至对挖矿的主机也低到几乎没有任何要求。官方甚至推荐用一只几十美元的树莓派加上数个 USB Hub 即可带动高达 1PB 的算力。毕竟,挖矿的过程就是等着网络广播来一串数字,然后跟硬盘里的哈希值比较一下就可以了。哈希的比较运算是极快的,并不需要把数以 T 计的数据读进内存进行什么运算。
这也确实符合 Chia 的出发点——绿色。任何人都可以使用闲置的存储容量加入 Chia 网络。挖矿几乎没有额外消耗能源,只要开着机,连着网络,就可以享受每天 4608 次的抽奖,而且是永久的,这很美好。
但是实际上,制作 plot 的过程还是相当消耗资源的,只是消耗的并非电力,而是 SSD。高速大容量固态硬盘成为了真正的消耗品。这要归功于(是归功还是归咎,且看对存储行业的影响吧) Chia 设计的计算机制。为了最终达到既能提供 Proof of Space 证明,又能足够快的进行检索这一目标,Chia 制作 plot 的过程实际上分为四步:
计算生成 7 张哈希表,主要使用的算法是前向传播。这一步要处理大量的运算,占用 CPU 最为密集。其实这一步已经生成了足以支持 Proof of Space 的全部数据,只不过效率欠佳,所以还需要后续步骤处理。
用反向传播算法来清理一遍上面的 7 张哈希表,去除不必要的哈希值,并给表排序。这一步占用 CPU 也较为密集,在 1.03 及更早的版本上对内存和缓存盘的占用也达到顶峰,但 1.04 开始对内存占用下降。
对上一步的结果进行压缩,并将大部分表合并起来。从这一步开始,对 CPU 的消耗降到了较低水平,对内存的占用仍维持在高位,但缓存盘的占用开始逐步下降。
把剩余的表继续压缩成最终的文件格式,并把文件从缓存盘转移到目标位置。这一步是唯一对目标磁盘进行 IO 操作的。
需要指出的是,Chia 的 plot 文件制作、挖矿、节点维护等工作统统由其钱包软件完成。该软件仍然在不断改进,迭代速度较快。在过去几个小版本中,其已经在缓存占用、速度计算等方面有了很大改进。Reddit 论坛上有网友记录了不同版本软件 (1,2) 在制作 plot 过程中的各项资源占用情况,对比可以发现,1.04 版相比更早版本已经减少了近一半的缓存使用量。建议总是使用官方 github 的最新版。
怎么挖?
对于大多数矿工,要解决的首要问题是第一步,即如何又快又省的制作 plot 文件。
这一过程需要使用 Chia 钱包软件。Chia 的设计初心其实很简单,而且绝大多数晦涩难懂的参数都在开发过程中经过的小心的选择,确保已经是最优值。剩下的,就只是每台电脑的性能差异带来的时间差别而已。但恰恰就是这样的性能差异,构成了截然不同的生态。一边是业余玩家想要买几块硬盘来试水,另一边是手持资金生怕错过风口的大鳄在急切的询问「一千万资金该买什么配置」。在这背后大家关心的都是同一个问题:能抢在全网算力较低的头矿窗口期挖到多少币?毕竟,按照 Chia 社区维护的统计数据,同样的一次 plot 过程,万元以内的电脑配置,有人可以 4 个小时以内完成,有人却需要 24 小时以上,这样的算力差异自然会体现在获得奖励数的较大差别。
对此,我们的建议如下。
如果你是业余玩家,主要依靠一两台闲置的电脑,最多额外买几块硬盘,那么几乎不用费心,完全用默认参数即可。如果愿意多付出一点时间研究,最好多试验几次并发数,看几个并发最有效。更进一步的话,可以在 plot 过程中观察一下 CPU、内存、磁盘 IO 的占用情况,哪项资源出现了瓶颈,则略微减少其分配,反之亦然。
几 个非常有用的小技巧:
基于上节论述中引用的 Reddit 网友记录图,各项资源在不同的阶段利用率是各不相同的,这就意味着与其追求并发数,不如科学分配延迟时间,使得各项资源总处于较高的利用水平。让若干个并发任务互相延迟一会儿再开始,这不仅意味着 CPU 和内存可以得到较好利用。在 1.04 版软件发布之初,网友就试验成功了通过设置延迟 6 分钟,成功在 1T SSD 缓存上并发运行四个 plot。考虑到现实中用普通机械硬盘做目标盘的情况较为普遍,而机械硬盘的 IO 性能较弱,延迟时间还可以避免多个大文件同时竞争机械硬盘的 IO。
制作 plot 的过程虽然有 CPU 和内存密集的运算,但过多分配 CPU 核数和内存数并无明显改善。如果你有一台 16G 内存,8 核 16 线程的电脑,没必要把内存和线程都分配给一个 plot 任务。
对于个人矿工,参照目前的全网算力,仅靠钱包软件自行挖矿(俗称 solo 单挖)已经非常不现实了。当然,如前所述,Chia 的挖矿类似于抽奖行为,哪怕只有一注,理论上也有可能获奖。但从更现实的角度,个人矿工建议加入矿池从而获得更可预期的产出。
要铭记一点:家用电脑的民用级 SSD 寿命普遍为几百 TB 擦写量。按照 Chia 官方文档指出,每制作一个 0.1TB 的默认参数 plot 文件,实际造成的擦写量约为 2TB,即 20:1。这意味着一块擦写寿命为 500TB 的民用 SSD 最多能生产出 25TB 的算力就会寿终正寝。*这也是官方强烈不建议在笔记本电脑内置的 SSD 上进行 plot 的原因。
Chia 挖矿面临的痛点
Chia 的火热并不是一天造就的。事实上,Chia 项目从 2017 年就创立了,测试网于 2019 年上线,而主网则是刚刚于今年 3 月 19 日上线。作为历史悠久的明星项目,主网上线、即将登录交易所流通、Chia 实体公司计划短期内上市(特别是有 Coinbase 的珠玉在前)等一系列因素造成了该项目的爆火。爆火带来的显著影响就是硬盘设备的涨价和集体脱销,同时也给 Chia 项目带来了广泛的争议。
毫无疑问,Chia 所致力设计的绿色理念极大的降低了这一区块链项目的参与门槛。正因如此,我们前文所述的问题都是围绕并不十分复杂的通用硬件和一些软件参数设置。然而作为矿工,当下最大的困难是无法获得足够的低成本硬盘来构筑算力。我们从硬盘渠道商处获悉,从硬盘厂商到渠道商对此也深感震惊。当前硬盘市场存在着一定程度的囤积居奇。但硬盘厂商和总代一级并未对此感到担心。全球硬盘生产能力高达数千 EB(1EB=1000PB) , 远远超过当前用于 Chia 挖矿这一点算力。供货和价格情况将在未来一段时间内逐渐明朗。所以并不建议矿工购买高价硬盘,尤其应该小心避免以次充好、以二手充新的情况。
另一个潜在的问题是,虽然制作好的 plot 文件即是永久算力(目前对永久的预期应为十年左右),存储在便宜的机械硬盘即可,但机械硬盘也是有寿命的。如何应对天灾人祸造成硬盘灭失的情况,当下还未进入多数矿工的考虑范围,但随着时间推移,越来越多的矿工会遇到这一挑战。当下,应对这一挑战的方案似乎只能由不断更新存储设施来解决,而这在硬盘供应现状下却成为了不存在或者十分不经济的选项。
Chia 挖矿的收益预期
Chia 的发展速度早已超出许多人的预料,包括 Chia 团队。在白皮书发布时,Chia 团队预计主网上线时的算力将达到 40~60PB,然而实际上在 3 月 19 日上线的第二天,算力检测显示已经达到 120PB,并且至今一直保持着指数形式上涨,甚至超过了多数人生产 plot 文件的速度。这对矿工而言并不是一件好事。
截止文章发布之日,Chia 网络的总存储已经达到了 900PB。这意味着投入 1T 的算力平均每天仅能产出 0.06 个 Chia,并且算力每天都在大幅上涨。按目前的设备价格,自行搭建算力挖矿,在不考虑电费运维等支出的情况下,每 T 成本已达到 40-50 美元左右。尽管按目前的市场期货价格以及全网算力情况,回本周期非常的短。但全网算力正在急速攀升,30 天后形成的算力每 T 的平均产出可能只有现在的 1/5 甚至更少。如市场在几个月后走入下行周期,很可能新增算力的回本周期会拉长到一年甚至数年。
总结
Chia 挖矿的门槛足够低,对于家用电脑用户来说,即使不进行任何额外投资,仅仅用现有的硬盘资源,制作几份文件,尝试一下参与网络共识,也是不错的体验。同时还可以获得抽奖机会,一年能中一次奖就是几百美元的收入,也相当不错。大量新用户因为 Chia 认识了数字货币,又在参与挖矿的同时能够对区块链技术有更直观的了解,他们中的一部分一定会选择进一步深入探索这个世界。这是我们认为 Chia 挖矿此次破圈给行业带来的最大贡献。
对于有志于参与 Chia 挖矿的专业人士,入场需要评估三个因素。1.XCH 的未来价格走势,2. 全网算力增长曲线, 3. 设备采购价格、周期及使用安排。建议把这三个因素的所有可能变量都考虑到,计算出风险上限,再合理安排资金入场。
最后需要提醒,当前在售的大部分矿机是即用作存储挖矿又用来 P 盘,但在 P 盘期结束后会出现大量资源闲置。如果不进行合理规划,最后的结果可能是买了包含大量内存 CPU 等资源的矿机,结果只是第一个月用来 P 盘,在其余的全部生命周期都在做一个几十美元树莓派都能胜任的工作。随着大家逐渐意识到 Chia 挖矿的特点,未来 P 盘工作会逐渐和挖矿工作分离,形成更加合理的产业协作。