Here is the new block value code in update 1.1:
It's broken.
int64 static GetBlockValue(int nHeight, int64 nFees)
{
if(nHeight<4320) return 200*COIN; //720000 coins in two weeks
else if(nHeight<8640) return 100*COIN; //144000 coins in four weeks
else if(nHeight<12960) return 50*COIN; //72000 coins in 6 weeks
else if(nHeight>17280) return 1*COIN;
int64 nSubsidy = 1 * COIN; // 1 Coin until 5 million limit reached
if(nHeight>5000000) nSubsidy=0;
return nSubsidy + nFees;
}
First of all, the immediate problem is, it won't sync the existing blockchain, because
the return value is not adding the nFees now. (the bottom line is never reached
except when nHeight is between 12960 and 17280). The effect is probably that
anybody starting a fresh blockchain download with the new code will probably hang up
at the first block that has significant fees.
Second, what this code is actually doing is issuing 200 coins/block for 15 days (4320 blocks),
then 100/block for 15 days, then 50/block for 15 days, then 1/block for the rest.
That's (200 * 4320) + (100 * 4320) + (50 * 4320) + 1 + 1 ... = 1512000 + 1 + 1 ... total coins.
So it will issue 1512000 coins in 45 days and then drop to 1/block.
That's still not what you've described as the intended design.
Also the comments make no sense. I thought your intent is to issue 4M coins in 8 weeks?
720000 + 144000 + 720000 does not equal 4M either.
Also, the (nHeight>5000000) test is not the right way to reduce subsidy to 0 after 5M coins.
Also, if you change the protocol in future, it needs to be switch-controlled at a particular block height.
(you can get away with no switch this time, because the chain is still under block 4320).
Finally, it needs to be structured so the nFees are always added.
Chad, I have very limited time to check/fix this coin.
If you PM me in words what exactly you want as a minting protocol, I will see about fixing it up for you this time. (though I can't guarantee that's the only problem - I haven't checked all the rest of the code/changes).