采矿池中的所有矿工是否都会从0开始将随机数变量一一递增?

时间:2018-08-30 08:11:45

标签: blockchain bitcoin bitcoind

让我们考虑一下,我们的矿池中有n名矿工。现在,矿池的经理验证了交易并将其打包成一个要开采的区块。然后,它将块传递给池中的所有n个矿工。

让我们假设out块如下:

to_mine_block = {
    Block No: 1000
    Prev Block:999 
    timestamp: "1000-01-01 00:00:00"
    Data : "XYZ"
    nonce : ?
}

现在, to_mine_block 已发送给所有 n 个矿工。 n名矿工将以下代码运行到

String target = new String(new char[difficulty]).replace('\0', '0'); 

**while(!hash.substring( 0, difficulty).equals(target)) {
    nonce ++;
    hash = calculateHash();
}**

所有n名矿工都将在池中单独运行此代码吗?如果是这样,这场比赛将永远由拥有最高采矿能力的矿工们来酿造。因为具有最高挖掘能力的人将比具有低哈希能力的人在循环中前进。

1 个答案:

答案 0 :(得分:0)

它不是 ALWAYS ,因为找到获胜的随机数是基于运气。如果您可以更快地哈希,那么您就有更大的机会更快地找到随机数。但是,慢速矿工仍有机会立即找到获胜的随机数。

编辑:

  

如果是这样,这场比赛将始终由拥有最高采矿能力的矿工为葡萄酒酿造。因为具有最高挖掘能力的人将比具有低哈希能力的人在循环中前进。

采矿池向每个用户发送不同的阻止模板。他们基本上是在散列不同的块头。