Bitcoin Forum

Bitcoin => Bitcoin Discussion => Topic started by: lurker on August 21, 2011, 08:32:00 PM



Title: testnet - 51 blocks orphaned in one shot
Post by: lurker on August 21, 2011, 08:32:00 PM
I've been mining on testnet for a few days to help out the software developers a bit.  I'll call that my donation to the projects.  For the first couple of days it was chugging along at a block every hour or two. In the morning hours on 21 August I hit block 32256, and the difficulty dropped.  The block rate went up to about three per hour.

Later that afternoon I noticed that there was suddenly a gap of nearly 700 confirmations in the list presented by the bitcoin client.  The total block count shot up by several hundred and about two days worth of my blocks vanished.

This appears to be a case of someone with more processing power working off-line and then dumping all of their blocks into the network at once.  Since they had the longer chain, my blocks were obliterated.  It does show what someone with a significant majority of the processing power could do.  For reference I was running at 440 MH/s, and there was at least one other miner generating blocks during this time.  I haven't yet tried to estimate the stealth miner's hash rate.  I would be interesting to see just what percentage of the hashing power he had.  A very quick estimate is that he mined nearly 700 blocks for my 50.  That would put it on the order of 7 GH/s, give or take.

Here's a screen shot of the client when I noticed that the blocks had vanished and a list of the time the blocks were generated from the debug.log file http://dl.dropbox.com/u/33346807/testnet_debug.log (http://dl.dropbox.com/u/33346807/testnet_debug.log).  The three non-generation transactions shown in the client were all originally in separate blocks spanning more than a day. They were basically undone until my miner generated another block (32887) that combined them with all the other transactions that were affected.  So, I lost 51 blocks, but on the plus side I gained about 0.02 coins in transaction fees when I picked up all the floundering transactions.  Good thing this was just the testnet.  Otherwise, I'd be pretty unhappy.

https://i.imgur.com/gWnD2.png

Code:
08/17/2011 12:52 generated 50.0005
08/17/2011 13:05 generated 50.00
08/17/2011 14:22 generated 50.0015
08/17/2011 14:53 generated 50.00
08/17/2011 17:28 generated 50.011
08/17/2011 19:47 generated 50.0005
08/17/2011 21:21 generated 50.00
08/17/2011 23:28 generated 50.00
08/18/2011 00:22 generated 50.00
08/18/11 02:05 generated 50.00
08/18/11 03:45 generated 50.00
08/18/11 05:27 generated 50.00
08/18/11 05:44 generated 50.00
08/18/11 07:37 generated 50.00
08/18/11 10:30 generated 50.00
08/18/11 10:47 generated 50.00
08/18/11 10:59 generated 50.00
08/19/11 01:39 generated 50.00
08/19/11 01:43 generated 50.00
08/19/11 01:54 generated 50.00
08/19/11 04:16 generated 50.00
08/19/11 05:12 generated 50.00
08/19/11 06:24 generated 50.001
08/19/11 08:40 generated 50.0025
08/19/11 09:06 generated 50.00
08/19/11 10:10 generated 50.0005
08/19/11 13:33 generated 50.003
08/19/11 16:42 generated 50.001

##########This is where the orphans begin
08/19/11 19:42 generated 50.00
08/19/11 20:22 generated 50.0025
08/19/11 21:08 generated 50.002
08/19/11 21:11 generated 50.00
08/19/11 23:10 generated 50.0055
08/19/11 23:49 generated 50.00
08/20/11 03:07 generated 50.0005
08/20/11 05:03 generated 50.0005
08/20/11 05:08 generated 50.00
08/20/11 07:14 generated 50.0005
08/20/11 09:27 generated 50.001
08/20/11 10:25 generated 50.00
08/20/11 15:05 generated 50.0005
08/20/11 15:11 generated 50.00
08/20/11 15:51 generated 50.0005
08/20/11 15:55 generated 50.00
08/20/11 16:19 generated 50.0005
08/20/11 18:17 generated 50.003
08/20/11 18:20 generated 50.00
08/20/11 19:21 generated 50.00
08/20/11 20:46 generated 50.0005
08/20/11 21:00 generated 50.00
08/20/11 23:04 generated 50.00
08/21/11 01:59 generated 50.001
08/21/11 04:26 generated 50.00
08/21/11 05:20 generated 50.0005
08/21/11 05:59 generated 50.00
08/21/11 06:03 generated 50.00
08/21/11 06:05 generated 50.00
08/21/11 06:11 generated 50.00
08/21/11 06:30 generated 50.00
08/21/11 06:52 generated 50.00
08/21/11 07:00 generated 50.00
08/21/11 07:06 generated 50.00
08/21/11 07:24 generated 50.00
08/21/11 07:56 generated 50.00
08/21/11 08:46 generated 50.00
08/21/11 08:56 generated 50.00
08/21/11 09:18 generated 50.00
08/21/11 09:50 generated 50.0105
08/21/11 10:14 generated 50.0005
08/21/11 11:40 generated 50.02
08/21/11 12:20 generated 50.00
08/21/11 12:36 generated 50.00
08/21/11 14:02 generated 50.00
08/21/11 14:03 generated 50.00
08/21/11 14:23 generated 50.00
08/21/11 14:46 generated 50.00
08/21/11 14:48 generated 50.00
08/21/11 15:08 generated 50.00
08/21/11 15:18 generated 50.00
##########This is where the orphans end

08/21/11 16:05 generated 50.0205
08/21/11 16:18 generated 50.04
08/21/11 16:30 generated 50.00
08/21/11 16:40 generated 50.0005
08/21/11 16:43 generated 50.00
08/21/11 17:00 generated 50.00
08/21/11 17:00 generated 50.00
08/21/11 17:36 generated 50.00


Title: Re: testnet - 51 blocks orphaned in one shot
Post by: fcmatt on August 21, 2011, 10:17:08 PM
Interesting post from my perspective. Isn't this the huge worry people have when it comes to deepbit being
so dominant at one point?


Title: Re: testnet - 51 blocks orphaned in one shot
Post by: elggawf on August 21, 2011, 10:30:54 PM
Isn't this the huge worry people have when it comes to deepbit being so dominant at one point?

Not particularly, because at the very least people are going to notice if deepbit suddenly goes AWOL to fork the chain.


Title: Re: testnet - 51 blocks orphaned in one shot
Post by: lurker on August 21, 2011, 10:54:47 PM
Isn't this the huge worry people have when it comes to deepbit being so dominant at one point?

Not particularly, because at the very least people are going to notice if deepbit suddenly goes AWOL to fork the chain.

I would tend to agree.  In my case it was relatively easy for one well endowed miner to overwhelm my puny efforts.  It's interesting that he let it run for nearly two days before cashing in, so to speak.  That got me wondering, does a block ever truly get locked in?  The coins mature in 120 blocks, but could he have payed his game a little longer and orphaned my blocks after I'd spent the coins?  If it gets locked in at 120 blocks, that puts an upper limit on how much time a rogue miner has to drop in his alternate chain.  If they don't get locked in, someone with > 50% of the hashing power could wait until their chain is a bit longer and drop it in.  That would wreak a bit havoc, I'd think.  Certainly all the miners who saw their coins vanish after they were confirmed would be upset.  So, do they get locked in at 120 blocks?

As you say, people would certainly take note if 50% of the hashing power suddenly went off-line for any length of time.  And the miners in that pool (assuming it's a pool) would likely move elsewhere if their pool went AWOL.  However, some of the newer alternate coins might be more susceptible if one or more of the larger miners wanted to attack before the mining base grows very large.


Title: Re: testnet - 51 blocks orphaned in one shot
Post by: lurker on August 22, 2011, 12:39:04 AM
Quote
on the plus side I gained about 0.02 coins in transaction fees when I picked up all the floundering transactions

I guess I spoke too soon.  The testnet bandit struck again.  He wiped out all the remaining non-mature blocks.  At least someone is having some fun.

https://i.imgur.com/oZCEn.png


Title: Re: testnet - 51 blocks orphaned in one shot
Post by: 2112 on August 22, 2011, 01:08:05 AM
That got me wondering, does a block ever truly get locked in?
Not on the testnet. On the realnet there are checkpoints that cannot be rolled back in the chain reorganization. Look for "rejected by checkpoint lockin" in the source code.


Title: Re: testnet - 51 blocks orphaned in one shot
Post by: Jan on August 22, 2011, 08:53:42 AM
This appears to be a case of someone with more processing power working off-line and then dumping all of their blocks into the network at once.

Very interesting. Being a developer running stuff on the testnet I observed that we had a gap of about 1 1/2 days with no blocks. Pretty frustrating when you want to test stuff. At some point lurker (https://bitcointalk.org/index.php?topic=37315.0) started mining. Great, I could move along with my testing.

With current events it seems that the testnet was only mined by one big player, who for some reason was not posting his blocks for some time (be on purpose or due to software failure). This explains the long gap with no blocks, and the sudden longer chain. Excellent example of why bitcoin depends on many small miners as opposed to a few big pools.


Title: Re: testnet - 51 blocks orphaned in one shot
Post by: cbeast on August 22, 2011, 11:37:32 AM
This sounds like something that the BTC community needs to be aware of. We need more people mining on testnet.


Title: Re: testnet - 51 blocks orphaned in one shot
Post by: Gavin Andresen on August 23, 2011, 01:16:48 AM
If you need a stable testing environment, the self-contained testnet-in-a-box works very nicely:
  https://sourceforge.net/projects/bitcoin/files/Bitcoin/testnet-in-a-box/

You do have to remember to run -noirc or keep your testnet listen port closed, because if a 'real' testnet node connects to you you'll get the 'real' testnet block-chain.