无服务器Chia的挖掘与成本分析

2021-06-07 12:00:00

中国是最近非常流行的一种新货币。有多热?热到大容量的硬盘已经卖完了。另一点是,Chia的创始人是BT的创始人,BT依赖于硬盘容量挖掘,即所谓的绿色挖掘。虽然我对区块链行业了解不多,但我还是想加入其中,试着看看serverless是否能为我带来乐趣。

目前,采矿在中国仍然是禁忌。毕竟,这违背了低碳环保的宗旨。同时,也有人怀疑虚拟货币是否是资本欺诈。笔者对这些问题的研究并不多。本文主要从技术层面分析了无服务器采矿的技术实现和成本。

我以前真的没怎么注意硬币圈。我只是理解区块链的基本概念,没有参与挖掘。我只知道比特币必须依靠强大的GPU功能。恰恰相反,正币不需要依赖昂贵的显卡容量,而只是消耗内存容量。公共云存储,特别是对象存储,一直具有很大的价格优势,这也为挖掘公共云资源提供了可能。

首先,让我们简要分析一下Chia的架构。通过分析,我们可以看到钱包不需要参与猜测过程,因为对于情节数据,在创建时已经指定了两个公钥,即情节已经是独占的“抽奖”。套现时直接调用***公钥对应的账号地址(待稍后测试确认),钱包不参与猜测,因此无需部署。对于农民部分,只有三种部署:fullnode、farmer和harvester。每个服务的具体部署取决于负载,即图的数量级。

我以前见过使用公共云的挖掘案例,甚至AWS也正式推出了标准化文档。这些解决方案主要利用虚拟机和本地nvme存储来实现高性能的挖掘。

在该方案中,临时空间使用nvme本地磁盘,持久空间使用对象存储。但是,由于对象存储访问接口的限制,需要使用用户模式模块将对象存储挂载到每个节点上,作为写入最终数据的文件目录。然而,在实际测试中,用户模式模块实际上并不稳定,输入输出错误时有发生。在与云业务工单系统确认后,问题是一个硬伤,我们只能再增加一层缓存层(如NAS),使用object storage的上传工具上传。

让我们看看监测数据。在单任务并发的情况下,我们可以看到nvme的速度远远没有达到极限。

CPU利用率不超过25%,而网络利用率我们可以看到挖掘过程中没有太多的网络消耗。

在测试过程中,使用现收现付。绘图过程中主要涉及的云资源包括主机和云硬盘。费用如下:

因此,这一开采过程的成本约为31元。存储1TB数据一个月大约需要111元。

公有云目前提供基于容器的实例,根据CPU和内存的使用时间收费,即如果您的CPU没有使用,则无需付费。但是,目前公共云中的容器不能直接使用nvme磁盘。我们只能将性能***的云硬盘装载到容器中。另外,如果在测试过程中直接使用对象存储作为持久存储,那么在最终复制过程中会出现输入/输出错误,因此在测试过程中仍然使用NAS存储作为临时最终存储。以下是部署架构:

我们在kubernetes(serverless)中运行所有的挖掘节点,将fullnode放在低配置的虚拟机(通过内部网络与OSS通信不收费)甚至本地环境中,通过文件方式挂载。

从磁盘性能损失的角度来看,仍然没有达到云硬盘的最终性能。

内存利用率方面,由于上限的限制,利用率不宜超过4G,CPU利用率相对稳定,不超过200%。

从监测数据可以看出,虽然奇亚币在采矿过程中对硬盘的依赖性很大,但单任务操作(线程参数已调试,但结果相似)并没有完全挤压硬盘的性能。如果有其他参数,请告诉我们)。我们只能通过提高并发性来压缩硬盘。对于无服务器,根据监控,可以适当降低磁盘规格,进一步降低成本。同时CPU和内存的利用率不会太高,2核4G基本可以满足需求(内存有不足的风险,默认内存上限为3389,可以限制)。

从以上实验数据可以看出,在公共云上进行挖掘有不同的组合方案,每个组合的成本是完全不同的。与单点绘图相比,无服务器绘图具有明显的优势。然而,由于nvme的优异性能,可以通过提高并发性来优化成本。根据下表中的临时空间占用情况,可以在刚刚配置的虚拟机上实现三种同时挖掘效果。

同时,无服务器的扩展灵活性优于虚拟机,通过适当的自动化手段可以优化成本。以上是对虚拟机挖掘可行性的简单技术分析。如果你想知道更多,请注意。