Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: RocketSingh on April 01, 2015, 09:09:22 PM



Title: How BW Pool chose DiscusFish block over AntPool ?
Post by: RocketSingh on April 01, 2015, 09:09:22 PM
I just witnessed DiscusFish & AntPool mined a block at same height 350278.

DiscusFish => https://www.blocktrail.com/BTC/block/00000000000000001387b316662237df1612c9e16c61b1284290d878d02d1df6

AntPool => https://www.blocktrail.com/BTC/block/0000000000000000024b6b66a3f03b064214c079c077433238f33fdd51671279

But, as BW Pool mined the block 350279, it rejected the one mined by AntPool.

https://www.blocktrail.com/BTC/block/00000000000000000af6b0073c5a78141fae98d768e118920ec68a150261c0aa

I want to know, how did it decide the winning one ?

p.s. Please do not point me to some Wiki article. That's boring. ;)


Title: Re: How BW Pool chose DiscusFish block over AntPool ?
Post by: cakir on April 01, 2015, 11:04:19 PM
29 seconds is your answer.

They've found it 6 seconds before BW but it reached too late; Arrival Time Wednesday, April 1st 2015, 23:52:39


Title: Re: How BW Pool chose DiscusFish block over AntPool ?
Post by: RocketSingh on April 02, 2015, 04:12:18 PM
29 seconds is your answer.

They've found it 6 seconds before BW but it reached too late; Arrival Time Wednesday, April 1st 2015, 23:52:39


I think this timestamp can be forged by the miner and hence it is not the deciding factor. Different nodes may receive the block notification at different times too...


Title: Re: How BW Pool chose DiscusFish block over AntPool ?
Post by: DeathAndTaxes on April 02, 2015, 04:37:51 PM
When two miners solve different blocks at the same height at roughly the same time they will both broadcast the block to the network.  A node will only relay and build off the first block at a given height in a race condition.  This means until the next block was solved some of the network considered DF block and some considered AP block to be the 'best block'.  The network is temporarily 'divided'.  Miners will be working on different forks however the fork is resolved by a reorg when a miner solves the next block. In this case it was BW and since they received DF block first they extended that chain.   If a miner/pool which received AN block first and thus was extending that chain solved the next block then the network would have reorged to that fork instead.

Now all this assumes that both pools are operating nodes which follow the standard consensus rules.  It would be possible for two (or more) pools to reach a secret agreement to always build the fork containing each others blocks in a split but that would be a losing proposition unless the pools had more than 50% of the total hashrate combined.  There is no evidence that is what happened in this scenario just pointing out that it is always possible.


Title: Re: How BW Pool chose DiscusFish block over AntPool ?
Post by: cakir on April 03, 2015, 11:32:29 AM
29 seconds is your answer.

They've found it 6 seconds before BW but it reached too late; Arrival Time Wednesday, April 1st 2015, 23:52:39


I think this timestamp can be forged by the miner and hence it is not the deciding factor. Different nodes may receive the block notification at different times too...
Timestamp is not an issue here.
ANT found that block at 23:52:02 and BW found it at 23:52:08 (6 seconds earlier).
But ANTPool's broadcast was not fast as BW (there could be some problems*) and BW broadcasted it to network before ANT So BW's block was accepted.

*these problems might because of;
- slow internet connection
- connected nodes' slow internet connection etc.

If you're running a mining operation like that you should use other mining pools' nodes.
If ANT had broadcasted that block to the BW, Ghash.io, discusfish etc in the first time it's block would be accepted.