|
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.
|