You are looking for the method CAmount GetBlockSubsidy(int nHeight, const Consensus::Params& consensusParams)
in validation.cpp
.
CAmount GetBlockSubsidy(int nHeight, const Consensus::Params& consensusParams)
{
int halvings = nHeight / consensusParams.nSubsidyHalvingInterval;
// Force block reward to zero when right shift is undefined.
if (halvings >= 64)
return 0;
CAmount nSubsidy = 50 * COIN;
// Subsidy is cut in half every 210,000 blocks which will occur approximately every 4 years.
nSubsidy >>= halvings;
return nSubsidy;
}
The variables in this code snippet stand for:
nHeight
is the number of blocks that have been found.
consensusParams.nSubsidyHalvingInterval
is 210000 blocks, the duration of reward epochs and the interval between the halvings
COIN
is 108, the number of satoshis in one bitcoin
nSubsidy
finally gives the number of satoshis that may be generated per block