以太网开采机理全分析
日期:2023年04月15日 13:03 浏览量:1
随着以太坊正式运行的临近,询问以太坊开采方法的朋友也越来越多。 这篇文章总结了我们现在知道的信息,希望对大家有帮助。 开采算法的设计和改进还在进行中,以下信息仅供参考。
设计目标
阻力矿山机械(ASIC Resistance )。 使用专门优化的芯片开采的好处应该尽可能小,小到使用普通CPU开采也能获得收益。
客户端可验证。 灯光客户端应该有能力验证每个块的真实性。 目标是在普通桌面电脑上运行C实现的验证算法,验证时间小于0.01秒,Python或Javascript小于0.1秒,使用内存不超过1MB。
开采算法
Ether的开采算法称为Ethash,别名dashi moto [ xy 002 ] [ xy 001 ] [ dagger-Hashimoto ]是Hashimoto算法和Dagger组合的变种。 其特点是开采效率与CPU几乎无关,与内存大小和内存带宽呈正相关。 对存储器大小和带宽的要求意味着以共享存储器方式大规模部署的采掘机芯片在采掘效率方面没有实现线性或超线性增长。
接下来,我们来看看Dashimoto的基本流程。 对于每个
块(block ),首先计算种子seed )。 种子的计算仅取决于当前块的信息,如block number和block[ xy 002 ] [ xy001 ]标题。 使用
种子生成32MB的伪随机数据集,称为cache。 灯光客户端必须保存缓存。 xy 002 [ xy 001 ]基于缓存重新生成1GB的数据集,称为the
[ xy001 ]错误。 此数据集中的每个元素仅依赖于cache中的某些元素。 换言之,有了cache,就可以快速计算DAG中指定位置的元素。 完整的可开采客户端必须保存DAG。找矿可概括为从DAG中随机选择元素并混匀的过程。 验证的过程也是如此。 但是,它基于cache计算获取指定位置的元素,而不是从DAG中选择元素,验证此元素集合的散列结果是否小于某个值。 由于cache非常小(
),指定位置的DAG元素很容易计算,因此验证过程只需要普通的CPU和普通的内存就可以完成。
cache和DAG在每个周期更新,每个周期的长度为1000个块。 也就是说,这1000个块体产生的cache和DAG完全相同,因此开采的主要工作是从DAG中读取数据不是更新cache和DAG。 [ xy 002 ] [ xy 001 ]随着时间的推移,DAG的大小将线性增加,从1GB每年增加约7 GB因此,到2015年12月约为8GB,到2016年12月约为15GB。
注:上述步骤的数字会随着开发的进行而调整,正确的值请参考源代码。
采掘软件
联机时,预计至少有两种采掘方式使用
mist客户端[官方客户端实现]、基于Go语言)进行CPU开采。
以太网守护进程(eth daemon )和sgminer的组合GPU开采。 守护进程和sgminer以前的数据通信是JSON-RPC
API已完成。 目前有两个与开采相关的API。 eth_getWork和eth_submitWork。
推荐阅读
-
红枣会(红枣会过敏吗)
2023-04-15
由于cache非常小( ),指定位置的DAG元素很容易计算,因此验证过程只需要普通的CPU和普通的内存就可以完成
-
北京市如何计算缴纳社保基数(北京社保基数计算公式)
2023-04-15
由于cache非常小( ),指定位置的DAG元素很容易计算,因此验证过程只需要普通的CPU和普通的内存就可以完成
-
泸州宝光药业集团有限公司(泸州市宝光药业有限公司)
2023-04-15
由于cache非常小( ),指定位置的DAG元素很容易计算,因此验证过程只需要普通的CPU和普通的内存就可以完成
-
中国元宇宙(元宇宙在中国开辟全新领域)
2023-04-15
由于cache非常小( ),指定位置的DAG元素很容易计算,因此验证过程只需要普通的CPU和普通的内存就可以完成
-
15年8月份上海公司牌照
2023-04-15
由于cache非常小( ),指定位置的DAG元素很容易计算,因此验证过程只需要普通的CPU和普通的内存就可以完成
-
中国建设银行苏州分行(中国建设银行苏州分行待遇)
2023-04-15
由于cache非常小( ),指定位置的DAG元素很容易计算,因此验证过程只需要普通的CPU和普通的内存就可以完成