The problem is simple, I mine a couple of blocks after the genesis, then I do a transaction (send let say 20KYF to another address), the transaction is showing in the mining wallet, the transaction is showing in the receiving wallet.
I mine 2000 blocks more, but the transaction stay pending.
nDepth=0 shows that the transaction is never added to a block.
I try to change the fees and resent the transaction everything is working normally except that again the transaction stay in Pending and I never get it confirmed.
I have changed the code to show it confirmed in the wallet, and also fake the confirmation, but the real issue is that the transaction is only in mempool and not added to a block.
Even if I use a huge amount for the fee.
I have 5 nodes running, but I guess only one node could confirm 1 time. But in my case nothing happen. I try to understand how the whole confirmation stuff is working, specially at the early stage of a blockchain.
I have the feeling that there are some test or some condition that prevent my transactions to be confirmed, because it is at a very starting, or maybe because the chain work is not big enough, something like this.
Note: I use Bitcoin Core 0.18 for my tests. These problem might not happen with a Litecoin or Dash fork, but the latest (0.17+) Bitcoin Core have an insane number of tests in validation.cpp, wallet.cpp, etc... that these "old" coins didn't had.
Maybe it is a normal behavior if you have only one node that is mining? Or the blockchain needs to have a minimum of blocks mined to be "mature"?
I don't really understand fully what you are trying to talk about, what do you mean by you mined thousands of block and it's still showing unconfirmed.
Please you should be more detailed about the problem you are facing so that we can help you properly, id you ran the miner and it mines a lot of block without you getting confirmation, then I think you should check to see how many blocks it would take to get one confirmation because some of the blockchain were actually fixed to 20 block mined before the a transaction is included in a block.