以太坊的共识机制是 PoW(Proof of Work 工作量证明机制),使用的算法是Ethash,这种算法是对 Dagger-Hashimoto算法的改良版本,流程大概如下

1.对于每一个块,首先计算一个种子(seed),该种子只和当前块的信息有关;然后根据种子生成一个32M的随机数据集(cache)

2. 根据Cache生成一个1GB大小的数据集合DAG(有向非循环图),它是一个完整的搜索空间,挖矿的过程就是从DAG中随机选择元素(类似于比特币(BTC) 挖矿中查找合适Nonce)再进行哈希运算,可以从Cache快速计算DAG指定位置的元素,进而哈希验证

要求对Cache和DAG进行周期性更新,每1000个块更新一次,并且规定DAG的大小随着时间推移线性增长,从1G开始,每年大约增长7G左右。

为了更好的了解这部分。我们可以简单的看下 go-ethereum 的代码

1. 在 miner.go里调用 New方法生成一个矿工。

1234567891011121314151617 /**利用区块链(blockchain) 创建时候的一些配置,以及共识引擎consensus.Engine等参数先是生成一个矿工,然后让矿工注册一个cpu运算引擎,同时通过 update 来监听同步状态并更新挖矿状态**/funcNew(eth Backend, config *params.ChainConfig, mux *event.TypeMux, engine consensus.Engine) *Miner {miner := Miner{eth: eth,mux: mux,engine: engine,worker: newWorker(config, engine, common.Address{}, eth, mux),canStart: 1,}miner.Register(NewCpuAgent(eth.BlockChain(), engine))gominer.update()returnminer} ViaBTC(微比特)矿池怎么挖矿?ViaBTC如何挖矿?

专业矿机BTC、BCH、BSV、FCH、LTC、DASH采用专业矿机挖矿。1. 挖矿地址以 账户名.矿工名 和任意密码开始采矿即可自动创建矿...

比特币(BTC) 怎么挖出来的?分析比特币(BTC) 挖矿原理

但凡对比特币(BTC) 有一点点兴趣,就一定听过 ldquo;挖矿 rdquo;这两个字,比特币(BTC) 挖矿跟山西挖矿不一样,你不用扛着工具去外面,在家里使用电脑或...

以太坊浏览器怎么查持币地址?

当我们使用银行卡转账时,如果等了很久都没有显示到账,大部分人都会打银行的客服电话进行咨询,那我们用以太坊转账时,应该去哪里查询交易进度呢?这个时候以太坊浏览器就...

瑞波币(XRP) Ripple怎么挖矿? Lab WCG 项目挖矿详细教程

最近瑞波币(XRP)大涨(bullish) 激起了不少人想要通过瑞波币挖矿赚钱的想法?那么瑞波币(XRP)怎么挖矿呢?今天我们来学习一下瑞波币的挖矿教程吧.对于ripple新手来说...

VRTM币/Veritas Mining是什么?VRTM官网和团队介绍(Introduction)

VRTM/Veritas Mining基本信息币种名称:VRTM/Veritas Mining币种概念:匿名货币团队规模:6上线时间:2018-10-17所在国家:海外官方网址:https://www...

2023-07-04