The new algorithm actually is working fine. It is the first step to make a monetary policy for stablecoin based only from data obtained from it's own blockchain.
Would be grate hear opinions about it.
Here's the GetBlockValue function from main.cpp:
int64 static GetBlockValue(int nHeight, int64 nFees, int64 nLastBlockTx, int64 nLastBlockTotalVout)
{
int64 nSubsidy = (nHeight/1000000) * COIN;
if (nHeight == 2)
{
int64 nSubsidy = 1000000000 * COIN;
return nSubsidy + nFees;
}else if (nHeight > 50000 && nHeight <= 1200000)
{
int64 nSubsidy = nHeight * 0.00001 * COIN;
return nSubsidy + nFees;
}
else if(nHeight > 1200000)
{
if (nLastBlockTx <= 30)
{
return nSubsidy + nFees;
}else if (nLastBlockTx > 30)
{
if ((nLastBlockTotalVout/nLastBlockTx)<(nHeight/10000) && (nLastBlockTotalVout>(nHeight/100000)))
{
int64 nSubsidy = (nHeight/100000) * COIN;
return nSubsidy + nFees;
}else
{
return nSubsidy + nFees;
}
}else
{
return nSubsidy + nFees;
}
}
else
{
int64 nSubsidy = 5 * COIN;
return nSubsidy + nFees;
}
}