比特币 区块链
数字货币资讯平台

全面分析以太币挖掘机制

随着以太坊正式运营的临近,越来越多的朋友问如何挖掘以太坊。本文结合了我们目前所知道的信息,希望对您有所帮助。由于采矿算法的设计和改进仍在进行中,以下新手投机的基本知识风险仅供参考。

1.jpg

设计目标

抵抗矿机(ASIC Resistance)。即使使用普通芯片,使用优势也应尽可能小CPU采矿也能产生收入。

轻客户端可以验证。轻客户端应该有能力验证每个块的真实性。目标是在普通桌面电脑上运行C验证算法的验证时间小于0.01秒,用Python或者Javascript小于0.使用内存不超过1秒MB。

挖矿算法

以太币(ether)采矿算法称为Ethash, 又名Dashimoto
(Dagger-Hashimoto),是Hashimoto算法结合Dagger随后产生的变种。其特点是基本的开采效率和CPU与内存大小和内存带宽无关。对内存大小和带宽的要求意味着通过共享内存大规模部署的矿机芯片在采矿效率上不能线性或超线性(super-linear)的增加。

让我们看看Dashimoto基本流程:

对每一块(block),先计算种子(seed)。种子的计算只依赖于当前块的信息,例如block number以及block
headers。

用种子产生32MB伪随机数据集称为伪随机数据集cache。轻客户端需要保存cache。

基于cache再生成一个1GB大小数据集,称为the
DAG。这个数据集中在新手学推荐读什么书的每一个元素上cache换句话说,只要有几个元素,cache可快速计算DAG指定位置的元素。需要保存完整的可开采客户端DAG。

采矿可以概括为从DAG然后随机选择元素hash过程。验证过程也是如此,但不是从DAG它是基于元素的选择cache计算指定位置的元素,然后验证元素的集合hash结果小于某个值。cache很小,
指定位置DAG元素很容易计算,所以验证过程只需要普通CPU可以用普通内存完成。

cache和DAG每周期更新一次,长度为1000元。也就是说,这1000元产生了cache和DAG完全一样,所以采矿的主要工作是从DAG读取数据而不是更新cache和DAG。DAG随着时间的推移,大小线性增加,从1GB一开始,每年都会增加7GB
–因此,到2015年12月8日左右GB,截至2016年12月15GB。

注:随着开发的推进,上述步骤中的数字已经调整。请参考源代码。

挖矿软件

我们预计在上线时至少有两种挖掘方法:

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

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

赞(0)
未经允许不得转载:币圈之家 » 全面分析以太币挖掘机制

币圈之家

联系我们联系我们