I did went to check the Peercoin source and what you have explained above on Line #967 shows a totally different function. Should I change the code to match what you have above? I have also found another example coin using the same source code; however, the GetProofOfWorkReword function shows less compared to Compound Coin. It is called 404coin.
I need to know that is your alt coin capped or uncapped! Since Bitcoin is capped and the code which I have mentioned is based on that. If the coin is capped you need to clone the bitcoin code else if your coin is uncapped use the peercoin code. The function between what I have mentioned and what you have seen in the code is completely different because peercoin has an uncapped supply and it will emit the coins as long as the blocks are solved by the miners. Since bitcoin is capped, the halving takes place resulting in the decreasing of coins per 21000 blocks. I am unaware of how peercoin works, but I am giving out these suggestions to you completely based on bitcoin. I am aware of only bitcoin code and a little bit of ethereum along with smart contracts.
Also you need to note that I have far minimum knowledge on PoS coins and their coding mechanism. If you consider the peercoin code which has an uncapped supply and works on Proof of Stake mechanism, this code emits the coins when miner solves the block...
int64 GetProofOfStakeReward(int64 nCoinAge)
{
static int64 nRewardCoinYear = CENT; // creation amount per coin-year
int64 nSubsidy = nCoinAge * 33 / (365 * 33 + 8) * nRewardCoinYear;
if (fDebug && GetBoolArg("-printcreation"))
printf("GetProofOfStakeReward(): create=%s nCoinAge=%" PRI64d"\n", FormatMoney(nSubsidy).c_str(), nCoinAge);
return nSubsidy;
}
But to actually mine the coins, am I correct in the methods that I asked (i.e. using 2 daemons or running 2 wallet gui where one is the server and the other the client) or do I need to use a miner? There should be an internal miner to test in seeing how to generate the coins.
You don't need to use a separate miner since you are finding the blocks at a lower difficulty. Once the difficulty rises, you need to shift yourself to higher processing units.
P.S You could have cloned bitcoin instead and could have directed your questions to the development and tech board of this forum. It is being visited by many devs and you could create your alt more easily. Altcoin Discussion board is shit and is clogged up with spammers who have no knowledge on anything and I might be the only one to help you in this situation

I really do appreciate your help and I believe you are the only one where I am slowly understanding blockchain technology. I wish I could move this whole thread to the project development section.
The problem with cloning Bitcoin is that it is strictly proof of work and I would like to create a hybrid POW/POS coin which the current code is based on. By the way I made changes to the section where you were confused on section of the code for the block height.
I will provide more details, code snippets and output when I run the wallet. When I ran the qt wallet yesterday on testnet to look at the getinfo and getmining info, I saw that it generated 1000 blocks. When I looked at the Block Explorer within the wallet it confirmed that 1000 coins were created and 15 for the fee. As I kept on looking at the blocks by typing getmininginfo it still remained 0. When the coins are generated, do I have to tell it to send it to the wallet address? This is not the same as when I compiled the Litecoin clone where when I set the setgenerate to true that it showed the mined coins in the wallet.
So below is the code that I changed for the nSubsidy:
// miner's coin base reward
int64_t GetProofOfWorkReward(int64_t nFees)
{
int64_t nSubsidy = 0 * COIN;
if (pindexBest->nHeight < 1000)
{
nSubsidy = 100000 * COIN;
return nSubsidy + nFees;
}
if (fDebug && GetBoolArg("-printcreation"))
printf("GetProofOfWorkReward() : create=%s nSubsidy=%"PRId64"\n", FormatMoney(nSubsidy).c_str(), nSubsidy);
return nSubsidy + nFees;
}
These are the getinfo and getmininginfo output from a server and client wallet running:
"version" : "v1.3.0.0",
"protocolversion" : 60014,
"walletversion" : 60000,
"balance" : 0.00000000,
"newmint" : 0.00000000,
"stake" : 0.00000000,
"split threshold" : 50.00000000,
"combine threshold" : 500.00000000,
"blocks" : 0,
"timeoffset" : 0,
"moneysupply" : 0.00000000,
"connections" : 1,
"proxy" : "",
"ip" : "0.0.0.0",
"difficulty" : {
"proof-of-work" : 0.00024414,
"proof-of-stake" : 0.00024414
},
"testnet" : true,
"keypoololdest" : 1550720968,
"keypoolsize" : 101,
"paytxfee" : 0.00000000,
"mininput" : 0.00000000,
"errors" : ""
"blocks" : 0,
"currentblocksize" : 1000,
"currentblocktx" : 0,
"difficulty" : {
"proof-of-work" : 0.00024414,
"proof-of-stake" : 0.00024414,
"search-interval" : 1
},
"blockvalue" : 1000000000000,
"netmhashps" : 0.03495203,
"netstakeweight" : 0.00000000,
"errors" : "",
"pooledtx" : 0,
"stakeweight" : {
"minimum" : 0,
"maximum" : 0,
"combined" : 0
},
"stakeinterest" : 250000000,
"testnet" : true
and below is a screenshot of the wallet block explorer:
https://files.fm/u/32b9x2va