if(nHeight == 1)
{
nSubsidy = 1000000 * COIN;
}
First block? Grant a million CDC to the miner.
almightyruler, Guess I need to post in the noob forum first. Been following what you've posted on the main CDC thread and have also been curious about the issues with this coin.
The way the chain trust is calculated on CDC is the issue. It puts a very high trust on the stake blocks relative to the work blocks.
(IsProofOfStake()? (CBigNum(1)<<256) / (bnTarget+1) : 1)
No other POS+POW coin that I looked at calculates block trust this way. The value generated for a proof of stake block is weighted far higher than a work block. Each work block increments the block trust value by 1, each stake block is trusted by over a million.
The first generated stake block in the log for example.
SetBestChain: new best=00000002d220876cda59 height=12409 trust=12410 date=08/02/13 12:30:41
SetBestChain: new best=000000014a6b9e2a2cce height=12410 trust=12411 date=08/02/13 12:31:02
SetBestChain: new best=e7616b332a619fc2099e height=12411 trust=1060988 date=08/02/13 12:33:07
This alone wouldn't necessarily cause the clipping to occur. Each client should still receive the mined blocks and place its POS blocks at the end of the chain. Either it was a client on the network that excessively slow at receiving new blocks or a modified client that only will accept POS blocks and reject POW blocks. I'm assuming the later. If a "good client" submitted a POS block, the POW blocks mined since the last POS would be accepted and the "bad client" would accept the longer chain. Someone with a lot of coins, maybe a million premine, would possibly do this . I was going to test this with some CDC that should generate a stake in a couple days, but mining has now become impossible.
Also mining the coin recently locked due to a miner setting their clock back by over 700 seconds from the previous mined block. That set the target for the next block to be below zero. The client will reject any block with a target of zero or less in the CheckProofOfWork call. It's a simple fix and I was able to mine a few blocks. Since it affects the method of calculating difficulty, blocks I generate are rejected by the network. Unfortunately it would require a client update. Also this could also be an issue for any coin that retargets its difficulty every mined block.