让我们考虑一下,我们的矿池中有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名矿工都将在池中单独运行此代码吗?如果是这样,这场比赛将永远由拥有最高采矿能力的矿工们来酿造。因为具有最高挖掘能力的人将比具有低哈希能力的人在循环中前进。
答案 0 :(得分:0)
它不是 ALWAYS ,因为找到获胜的随机数是基于运气。如果您可以更快地哈希,那么您就有更大的机会更快地找到随机数。但是,慢速矿工仍有机会立即找到获胜的随机数。
编辑:
如果是这样,这场比赛将始终由拥有最高采矿能力的矿工为葡萄酒酿造。因为具有最高挖掘能力的人将比具有低哈希能力的人在循环中前进。
采矿池向每个用户发送不同的阻止模板。他们基本上是在散列不同的块头。