I have been learning the ins and outs of the bitcoin source code over the past 3 months but I can say I have not fully mastered it yet. I wish to understand how the genesis block is validated using the CheckProofOfWork() function. I would like to do something like this in chainsparams.cpp:
while (!CheckProofOfWork(block.GetHash(), block.nBits, chainparams.GetConsensus())) ++block.nNonce;
Where I seem to be stuck is how to obtain chainparams.GetConsensus() inside of chainsparams.cpp
Any guidance would be appreciated.
Thanks In Advance