浅析Ethash共识算法

2020-03-25 14:02 栏目:经验之谈 来源: 查看()
在最后一期中,我们分享了在以太网平台上进行Merkle证明问题分析的实践。在本期中,我们主要讨论区块链爱好者非常关注的话题——一致性算法。以以太网的Ethash为例,我们将逐一介绍Ethash算法和有向无环图的生成。 Ethash简介 Ethash是基于POW(工作量证明)的以太网1.0一致引擎,也称为以太挖掘算法。其前身是匕首算法和桥本算法。 其思想是通过输入输出限制来抵制特殊的采矿机器,实现采矿设备的平等和去集中化的目标。符合区块链的分权精神。 纪元和DAG 在以太网平台上,每30,000个块是一个时期,对应于一个DAG,这是一个大约1G大小的数据块,需要几个小时来生成。 Ethash算法需要块头和DAG。通过不断尝试不同的随机数来计算满足难度值要求的散列。 Ethash算法

1.算法流程

浅析Ethash共识算法

a)块头和随机数散列作为种子; b)根据公式计算DAG索引,根据索引从DAG中获取数据,并将获取的数据和seed进行fnv_hash作为新的SEED; c)重复步骤2 64轮; d)将计算的种子压缩为摘要; e)将步骤1中计算的种子和步骤4中计算的摘要的散列作为块头的散列; 将块报头的散列与目标散列进行比较(hash(2^256/difficulty).如果它小于目标散列,则当前值是可以的;否则,更新nonce值将重新开始。 2.算法代码的生成 要生成DAG,您需要创建一个缓存,然后基于缓存生成DAG。 1.DAG缓存生成种子;产生新纪元; c)种子哈希是缓存中的第一个哈希,缓存中的每个后续哈希都是前一个哈希的哈希; d)将高速缓存中的散列更新为先前散列的散列和高速缓存中伪随机索引的散列; e)重复步骤4 3轮。 2.DAG缓存生成代码

浅析Ethash共识算法

浅析Ethash共识算法 a)映射到相应的纪元;根据当前块的高度确定当前块的高度;

浅析Ethash共识算法

3。DAG代

浅析Ethash共识算法

浅析Ethash共识算法

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发