Finally I saw a superblock: block 4176, which give 1024 coins!
I've been checking the random generation, and it works fine. So just be patient.
Based on what I am seeing, there is a ((10241-10000) = 241 )/19200 chance to hit the 512 block and ((10241-10000)=11)/19200 to hit the 2048. That's crazy low...
Of the targeted 1080 blocks / day based on 45 seconds / block, the math is approximately
512 : 13 blocks every 24 hours
2048 : 0.61875 blocks every 24 hours
The numbers should evaluate to about 426.66 and 17.77
Maybe 10000 to 10427 and 6000 to 6018?
Main.cpp line 1265
std::string cseed_str = prevHash.ToString().substr(4,7);
// fix the seed issue
if(nHeight > 4000)
cseed_str = prevHash.ToString().substr(20,7);
const char* cseed = cseed_str.c_str();
long seed = hex2long(cseed);
int rand = generateMTRandom(seed, 19200);
if(rand > 10000 && rand < 10241)
{
nSubsidy = 512 * COIN;
}
else if(rand > 6000 && rand < 6011)
{
nSubsidy = 2048 * COIN;
}
Just my 2 cents.
45 sec block time, which is 80 blocks per hour, or 1920 blocks per day.
1/80 chance for 512-coins superblock (average one per hour) - for the 1st 3 days all payout doubled, that's why you see 1024 coins.
1/1920 chance for 2048-coins superblock (average one per day), if you find it before block 5760, it will be 4096 coins.
The code:
when random number > 10000 and < 10241 (240 values), you get 512-coin block, the random number can take any number from 1 to 19200, so the chance is 240 / 19200 = 1/80
when random number > 6000 and < 6011 (10 values), you get 2048-coin block, so chance is 10 / 19200 = 1/1920.
The code is correct as far as I can see.
congratulations!