Can only see a benefit to this. Would also reassure some that have doubts about DeepOnion being a relay node.
This is taken from the code:
static const int YEARLY_POS_BLOCK_COUNT = 525600;
int64_t GetProofOfStakeReward(int64_t nCoinAge, const CBlockIndex* pindex)
{
int64_t nRewardCoinYear = MAX_PROOF_OF_STAKE_STABLE;
int nPoSHeight = GetPosHeight(pindex);
int64_t nSubsidy = 0;
if (nPoSHeight < YEARLY_POS_BLOCK_COUNT)
{
nSubsidy = 10 * nRewardCoinYear * nCoinAge / 365;
}
else if (nPoSHeight < 2 * YEARLY_POS_BLOCK_COUNT)
{
nSubsidy = 5 * nRewardCoinYear * nCoinAge / 365;
}
else
{
nSubsidy = nRewardCoinYear * nCoinAge / 365;
}
return nSubsidy;
}
and
if (IsProofOfStake())
{
// DeepOnion: coin stake tx earns reward instead of paying fee
uint64_t nCoinAge;
if (!vtx[1].GetCoinAge(txdb, nCoinAge))
return error("ConnectBlock() : %s unable to get coin age for coinstake", vtx[1].GetHash().ToString().substr(0,10).c_str());
int64_t nCalculatedStakeReward = GetProofOfStakeReward(nCoinAge, pindex->pprev);
if (nStakeReward > nCalculatedStakeReward)
return DoS(100, error("ConnectBlock() : coinstake pays too much(actual=%"PRId64" vs calculated=%"PRId64")", nStakeReward, nCalculatedStakeReward));
}
I think i have taken the right lines from the code.
But looking at this code lines, i still need to search for more data to actually decode this for you to give you a right answer.
Other's opinion is very much appreciated.