Bitcoin Forum

Bitcoin => Mining => Topic started by: gnaget on July 18, 2011, 02:34:57 AM



Title: Out of order blocks
Post by: gnaget on July 18, 2011, 02:34:57 AM
I was just looking at the recent block statistics on btcguild.com, and I noticed some out of order

1682 136704    2011-07-17 11:07:43    0:05:49    170287    7 until confirmed    493   
1681 136706    2011-07-17 11:01:54    0:11:11    334530    9 until confirmed    919   
1680 136702    2011-07-17 10:50:43    0:43:33    1344240    5 until confirmed    3526


Notice how the block at 11:01 has 9 more until confirmed (ie discovered 101 blocks ago), and the one at 11:07 has 7 more until confirmed (ie discovered 103 blocks ago), The timestamp and id have 1682 discovered after 1681; however, the confirmations disagree.  How is this possible?


Title: Re: Out of order blocks
Post by: DrHaribo on July 18, 2011, 03:36:10 PM
Probably blocks created on different servers, then syncing the data put them out of order.


Title: Re: Out of order blocks
Post by: gigabytecoin on July 18, 2011, 05:41:05 PM
Yes, timestamps come from the mining computer and can be off by as much as 2 hours.


Title: Re: Out of order blocks
Post by: eleuthria on July 18, 2011, 06:05:42 PM
When a server sync error happens, the new block script aborts and retries later to make sure a server's shares are properly counted when allocating block rewards.

The new bock script simply iterates through listtransactions in each bitcoind, adds them to a list by their txid, and then checks for items in that list that aren't in the database of blocks that were found already.

If a sync error/connection error between servers happens for a few minutes and we find another block, it means when it iterates through the list, the newer block might get picked up first, and applied to the earlier round instead.  The servers only keep track of blocks by Round #, they know that a round completed before the new block script associates a given block with them.

It's not a very common occurrence recently, since the servers have been very stable and the block script hasn't had to abort due to sync errors.