当前位置:首页 > 数字货币资讯 > 正文内容

Miner目前现状和mineros详细介绍

xytest2022-11-30 00:15数字货币资讯220

Miner目前现状和mineros详细介绍

今天给各位分享Miner的知识,其中也会对mineros进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,如果有不同的见解与看法,请积极在评论区留言,现在开始进入正题!

Miner 流程

以太坊的矿工出块的流程,不同版本有过变更,下面基于1.7.3版本和1.8.4版本来分享

channel: 用于1发1收

发送 :sampleChan-

接收 : -sampleChan 

Feed:用于1发多收,参考chainHeadCh

接收者注册 :Subscribe(sampleChan)

发送 :send, 发送的地方不太好找,需要通过send和event/channel类型查找,例如miner中主要涉及到的就是 PostChainEvents

接收 :-sampleChan

数据结构:

可以理解为操作间(eth)中有了矿(tx),那么矿主(miner)安排工人(worker)挖矿(seal)。结构体定义如下:

Type Miner struct {  -- - 理解为矿主

    mux        *event.TypeMux

    worker     *worker    ---- 理解为干活的工人

    coinbase    common.Address

    eth            Backend    - --- 理解为操作间

    engine      consensus.Engine    ---- 理解为挖矿的工具

    exitCh        chan struct {}

    canStart        int32 //canstart indicates whether we can start the mining operation

    shouldStart  int32 //shouldstart indicates whether we should start after sync

}

 流程图如下:

1.  节点启动: backend.new-miner.new-worker.new: 调用commitNewWork,里面使用push把work传递给cpuAgent, 之后在geth命令行敲miner.start()后-miner.start-worker.start-cpuAgent.start,调用Seal,计算nonce值,再发送 recv 消息,通知 worker . wait ,在收到之后将块打包插入到区块链,之后调用PostChainEvents,发送消息chainHeadCh, Worker.update 在收到消息后,重新调用 commitNewWor k,形成一个循环。

 2.  创世块: 调用geth的init命令触发调用initGenesis-SetupGenesisBlock, 里面具体强调一下time是使用的genesisBlock.json中的值,一般都是0.

  3.  正常情况: worker . wait ,在收到之后将块打包插入到区块链,之后调用PostChainEvents,发送消息chainHeadCh, Worker.update 在收到消息后,重新调用 commitNewWor k,形成一个循环。

Miner .new: 在backend new的时候调用,即在节点启动的时候调用。

Miner . update :在节点启动的时候调用,用于监控是否有块同步,如果有则停止挖矿,如果没有启动挖矿,这个在POW这种竞争性出块的环境中需要。

Worker .new: 在miner.new的时候调用,记载节点启动的时候调用 

Worker.update: 节点启动的时候调用,如果是非全节点的话用于监控接受交易transaction,关键函数 commitTransactions ,还用于调度在收到 chainHeadCh 的消息后,触发 commitNewWork

其中 commitNewWork :  用于将pending的tx输入到系统,计算trie等等操作,生成block,并将work push到cpuAgent处理,注意没有盖章

Worker. wait (对应于 1.8.4 的 resultLoop ) :节点启动的时候调用,循环监听 recv 消息,将携带的block插入区块链中、发送广播消息( NewMinedBlockEvent )、发送消息 PostChainEvents (发送 ChainHeadEvent ,即 chainHeadCh ),其中的关键函数是 WriteBlockAndState 。

cpuAgent .update() :  在cpuAgent.start()-worker.start-miner.start-geth的命令行调用之后启动循环,用于接收 commitNewWork 分配下来的work,关键函数 mine ,里面调用 Seal ,主要是完成POW寻找nonce值的操作,发送 recv 消息通知worker,也可以叫做盖章。

类图如下:

具体结构不再赘述

流程:

Miner.update:用于监控是否有块同步,如果有则停止挖矿,这个在POW这种竞争性出块的环境中需要

mainLoop:收到newWorkCh消息后处理,调用commitNewWork中的commit发送taskCh消息

newWorkLoop:收到startCh消息和chainHeadCh消息后发送newWorkCh消息

resultLoop:循环监听resultCh(seal发送)消息,将携带的block插入区块链中,并发送广播消息,关键函数WriteBlockAndState,并发送chainHeadCh消息

taskLoop:以前agent做的事情,收到taskCh消息后,调用seal,里面发送resultCh消息

Miner是什么意思?

一个也在创建块的节点。例如,在比特币中,它是一个PoW链,矿工使用递增的随机数对散列头进行散列,直到它通过难度测试(具有足够的零值前置散列)

什么是Miner?

一个也在创建块的节点。例如,在比特币中,它是一个PoW链,矿工使用递增的随机数对散列头进行散列,直到它通过难度测试(具有足够的零值前置散列)

矿工 煤矿工人 用哪个英文单词 更准确的解释?

miner。mine是矿,miner直接的意思就是挖矿的人,中文就是矿工了

pitman也可以指矿工,还有锯木工助手,维修站修车工,乐师等意思

只要你仔细阅读了上述,那么你就已经了解了mineros的相关知识,如果屏幕面前的你还有什么对Miner好的建议和想法,欢迎各位再下面评论区评论出来,我们将及时回复。

分享给朋友:

相关文章

前十名的比特币交易所排行_前十交易所最新版下载

前十名的比特币交易所排行_前十交易所最新版下载

比特币交易所是交易比特币的平台,它们提供交易、存储和交换数字资产的服务。在过去几年中,比特币已成为投资者和交易者的热门选择,支持比特币、以太坊、莱特币和其他加密货币的交易。提供高级交易功能和低费用的交...

中国狗狗币交易平台_前十狗狗币交易软件安卓下载

中国狗狗币交易平台_前十狗狗币交易软件安卓下载

中国狗狗币交易平台小编给大家推荐了以下这十个,是目前国内比较受欢迎的一些交易所平台,这些平台软件操作起来是很便捷方便的,可以随时查看比特币莱特币以太币SHIB币等币种的最新资讯内容,而且还能了解更多比...

派币今日价格2022链信币今日交易价格

派币今日价格2022链信币今日交易价格

接下来我们一起看看币圈网发布的这则正文,如有不理解还请直接咨询我,下面我们来一起详细看看关于这篇内容的详细分析! 点蓝色字关注“派价值空间”,这里有派的最新消息,为派传递价值派币今日价格2022,一...

币价格分析:BTC 目标上行突破 18,000 美元?

币价格分析:BTC 目标上行突破 18,000 美元?

比特币兑美元汇率回升至 16,600 美元以上。如果比特币保持在 16,750 美元的支撑区域上方,它可能会延长其复苏。 比特币价格在 16,000 美元区域附近得到良好支撑。价格形成了一个底部,并...

Bitstamp数字货币交易平台怎么样的简单介绍

Bitstamp数字货币交易平台怎么样的简单介绍

作为虚拟币行业人士而言,我们经常都会说到Bitstamp数字货币交易平台怎么样时有很多细节是需要注意的。你知道?今天就让小编跟你们说说吧! 国内正规的虚拟货币交易有哪些? 国内正规的虚拟货币交易...