随着以太坊正式运行越来越近,好多朋友都跑来询问以太怎么挖矿。大家这么关心,说明以太挖矿的热度在不断攀升。下面就给大家详细介绍下相关内容。

挖矿算法特点

以太币的挖矿算法叫Ethash,它是算法结合后的变种。这个算法有个显著特点,挖矿效率基本和CPU无关,却和内存大小及带宽正相关。这就意味着共享内存方式大规模部署的矿机芯片,在挖矿效率上不会有线性或超线性增长。比如普通CPU也能凭借内存优势参与挖矿。

数据集生成

种子计算只依赖当前块信息,通过种子能产生32MB的伪随机数据集,也就是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月约8GB,2016年12月约15GB。

轻客户端特性

轻客户端可验证每一个块真实性。目标是在普通桌面电脑上运行用C实现的验证算法,验证时间小于0.01秒或小于0.1秒,使用内存不超1MB。这样即使设备配置不高,也能参与到以太坊的验证环节。

上线挖矿方式

预计上线时有至少两种挖矿方式,一是用Mist客户端(基于Go语言的官方客户端实现)进行CPU挖矿,二是通过以太坊守护进程和Ethminer组合进行GPU挖矿,守护进程和之前数据通讯能通过JSON - RPC API完成,目前有两个API和挖矿有关。

大家觉得哪种挖矿方式更适合自己?欢迎在评论区留言讨论,也别忘了点赞和分享本文。