Just my 10 cent:
As far as I can tell, the last two proof-of-stake blocks were 467226 and 467227.
Block 467226 was set two hours into the future, i.e.
467225 blocktime 07/30/14 07:47:33 (PoW)
467226 blocktime 07/30/14 09:47:05 (PoS)
467227 blocktime 07/30/14 07:47:32 (PoS)
Presumably whoever mined that block had a system clock that was way off...
in main.cpp, nActualSpacing is calculated as the time that passed between the last two PoS blocks (which in this case would be negative!)
This value is then used for calculating block difficulty bnNew.
I'm not that much into the mechaincs of block difficulty, but I could imagine that this leads to an insanely high block difficulty for PoS minting (bnTargetLimit?)
Perhaps we need a failsafe for negative time between last two PoS blocks?
in tek -
CBigNum bnTargetLimit = bnProofOfStakeLimit;
in flt -
CBigNum bnTargetLimit = GetProofOfStakeLimit(0, nTime);
in nvc -
CBigNum bnTargetLimit = GetProofOfStakeLimit(0, nTime);
in cap -
CBigNum bnTargetLimit = bnProofOfStakeLimit;
in black -
CBigNum bnTargetLimit = fProofOfStake ? GetProofOfStakeLimit(pindexLast->nHeight) : bnProofOfWorkLimit;
in hbn -
CBigNum bnTargetLimit = bnProofOfStakeLimit;
So it's got company if this is a PoS difficulty issue problem, cap and hbn will have the same vulnerability. I don't see a high difficulty though, it's like .003xxx
{
"proof-of-work" : 133987.62952168,
"proof-of-stake" : 0.00390625,
"search-interval" : 1
}
Maybe we could all lock our wallets down and someone could open theirs and see if they can stake, see if it would start moving again.
How do you tell what the weight is on the network for stake? For instance, coins usually have getstakinginfo, or show this in getmininginfo, or somewhere right, tek doesn't seem to show this at all. Nor an estimate of how long to stake a block based on the network weight.