Done and I have tested it on my main rig again and it has synced.
New Fix Windows QT client :
https://www.dropbox.com/s/bjym7nxc62pbxzn/Extremecoin%20V1.1.zipNow it is a lot more simple.
int64 static GetBlockValue(int nHeight, int64 nFees)
{
int64 nSubsidy = 200 * COIN;
if(nHeight>17280) nSubsidy = 1 * COIN;
return nSubsidy + nFees;
}
200 coins until block 17280 and then reduces to 1 per block.
This is good -- simple is better, and compatible and will sync with the current blockchain.
One last bug though is: 17280 * 200 = only 3456000 coins.
For 4 million coins, the height limit needs to be 4000000 / 200 = 20000
So the final correct function is as follows (you can drop this right over the other one):
int64 static GetBlockValue(int nHeight, int64 nFees)
{
int64 nSubsidy = 200 * COIN;
if (nHeight >= 20000) nSubsidy = 1 * COIN;
return nSubsidy + nFees;
}
This will mint 20000 blocks of 200 coins each = 4 million total, then switch to 1 coin/block forever after. (which is about a 2.6% inflation rate, and rate is decreasing into the future).
By the way, I haven't checked Mincoin, but if that bad code was from there, then Mincoin is wrong too, and some of its blocks are silently losing txn fees. The function always returns *something*, so it can easily appear to work. And as long as it's wrong consistently, it can even sync with itself. (The sync problem for EXC came in because originally you had the fees, and then the Mincoin code has a bug with dropping the fees. With the above code, EXC is back to good on the fees, so all is well).