主页 > imtoken最新版本 > 以太坊的挖矿机制是什么? 以太坊的挖矿机制是什么?

以太坊的挖矿机制是什么? 以太坊的挖矿机制是什么?

imtoken最新版本 2023-01-16 22:20:48

随着以太坊正式运营的临近,越来越多的朋友询问如何挖以太坊。 本文综合了目前已知的信息,希望能对大家有所帮助。 由于挖矿算法的设计和改进仍在进行中,以下信息仅供参考。 下面小编就为大家介绍一下吧!

以太坊挖矿教程_以太坊用什么挖矿_以太坊挖矿能赚钱吗

设计目标

对矿工的抵抗力(ASIC Resistance)。 使用经过特别优化的芯片所产生的挖矿优势应该是越小越好,小到即使是普通的CPU挖矿也能产生收益。

轻客户端是可验证的。 轻客户端应该能够验证每个块的真实性。 目标是在普通台式电脑上运行用C实现的验证算法,验证时间小于0.01秒,用Python或Javascript验证时间小于0.1秒,占用内存不超过1MB。

挖矿算法

以太币的挖矿算法称为Ethash,也称为Dashimoto(Dagger-Hashimoto),是Hashimoto算法结合Dagger的变种。 其特点是挖矿效率基本与CPU无关,与内存大小、内存带宽正相关。 对内存大小和带宽的要求,意味着那些通过共享内存大规模部署的矿机芯片,无法实现挖矿效率的线性或超线性提升。

先来看看大石本的基本流程:

对于每一个区块(block),先计算一个种子(seed)。 种子的计算只依赖于当前区块的信息,如区块号、区块头等。

使用一个种子生成一个 32MB 的伪随机数据集,称为缓存。 轻客户端需要保存缓存。

基于缓存,重新生成一个1GB的数据集,称为DAG。 此数据集中的每个元素仅依赖于缓存中的某些元素。 也就是说,只要有缓存,就可以快速计算出DAG中指定位置的元素。 一个完全可挖掘的客户端需要保存 DAG。

挖矿可以概括为从DAG中随机选择元素,然后对其进行哈希处理的过程。 验证过程是一样的,只是不是从DAG中选择元素,而是根据缓存计算指定位置的元素,然后验证元素集的哈希结果是否小于某个值。 由于缓存很小,指定位置的DAG元素很容易计算,所以验证过程只需要普通CPU和普通内存即可完成。

缓存和DAG每个周期更新一次,一个周期的长度为1000个区块。 也就是说这1000个区块产生的缓存和DAG是完全一样的,所以挖矿的主要工作是从DAG中读取数据,而不是更新缓存和DAG。 DAG 的大小随时间线性增长以太坊用什么挖矿,从 1GB 开始,每年增加约 7GB - 因此到 2015 年 12 月约为 8GB,到 2016 年 12 月约为 15GB。

注:以上步骤中的数字随着开发的进行有所调整以太坊用什么挖矿,具体数值请以源码为准。

挖矿软件

我们预计在发布时至少会有两种挖矿方法:

使用Mist客户端(官方客户端实现,基于Go语言)进行CPU挖矿。

GPU 挖矿是通过以太坊守护进程(eth daemon)和 sgminer 的组合来执行的。 daemon 和 sgminer 之间的数据通信可以通过 JSON-RPC API 完成。 目前与挖矿相关的API有两个:eth_getWork和eth_submitWork。