简单的语言描述Dashimoto算法的过程

编程入门 行业动态 更新时间:2024-10-15 18:29:05

简单的语言描述Dashimoto<a href=https://www.elefans.com/category/jswz/34/1770096.html style=算法的过程"/>

简单的语言描述Dashimoto算法的过程

以太币(ether)的挖矿算法叫做Ethash, 又名Dashimoto (Dagger-Hashimoto),是Hashimoto算法结合Dagger之后产成的一个变种。

接下来让我们看看Dashimoto的基本流程:

  1. 对于每一个块(block),先计算出一个种子(seed)。种子的计算只依赖于当前块的信息,例如block number以及block headers。
  2. 使用种子产生32MB的伪随机数据集,称为cache。轻客户端需要保存cache。
  3. 基于cache再生成一个1GB大小的数据集,称为the DAG。这个数据集中的每一个元素都只依赖cache中的某几个元素,换句话说,只要有cache就可以快速计算出DAG中指定位置的元素。完整的可挖矿的客户端需要保存DAG。
  4. 挖矿可以概括为从DAG中随机选择元素然后对其进行hash的过程。验证的过程也是一样,只不过不是从DAG里面选择元素,而是基于cache计算得到指定位置的元素,然后验证这个元素集合的hash结果小于某个值。由于cache很小, 而且指定位置的DAG元素很容易计算,因此验证过程只需要普通CPU和普通内存即可完成。
  5. cache和DAG每一个周期更新一次,一个周期的长度是30000个块。也就是说这30000个块产生的cache和DAG是完全一样的,因此挖矿的主要工作在于从DAG中读取数据,而不是更新cache和DAG。DAG的大小随时间的推移线性增长,从1GB开始,每年增加大约7GB 因此到2015年12月大约是8GB, 到2016年12月大约15GB。

更多推荐

简单的语言描述Dashimoto算法的过程

本文发布于:2024-03-06 02:19:45,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1714098.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:算法   过程   语言   简单   Dashimoto

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!