Ethash简介

Ethash是以太坊*工作量证明(PoW)算法*,它依赖于数据集的初始纪元的生成,该数据集的大小约为1GB,称为有向无环图(DAG)。DAG*使用 Dagger-Hashimoto算法*的版本,它是*Vitalik Buterin的Dagger算法*和*Thaddeus Dryja的Hashimoto算法*的组合。* Dagger-Hashimoto算法*是以太坊1.0使用的挖掘算法。随着时间的推移,DAG*线性增长,每*纪元(30,000块,125小时)更新一次。

种子,缓存,数据生成

PoW算法*涉及:
- 通过扫描*DAG*的先前块头来计算每个块的*Seed
。+ - Cache 是一个16MB的伪随机缓存,根据种子计算,用于轻量级客户端中的存储。
- 来自cache的*DAG* Data Generation 在完整客户端和矿工上用于存储 (数据集中的每一项只依赖cache中的一小部分项目)+ - *矿工*通过随机抽取数据集的片段并将它们混合在一起进行挖掘。可以使用存储的缓存和低内存进行验证,以重新生成所需的数据集的特定部分。

参考: