Wow, That's quite a wall of text. I'm glad you used punctuation and capitalization, or it wouldn't have been worth the effort to try to get through it. Perhaps some line-breaks and/or paragraphs in the future would be helpful.
Hello so I recently did an experiment by sending btc to another address and making the fee as low as possible to monitor how long it takes for a transaction with the minimum set fee would take before it was finally confirmed by miners. And 3 weeks later it still has not received even one confirmation. Everyday for the last 3 weeks I would check on the status of confirmations of transaction, and everyday it would say estimated wait time 24hrs-1 day, and continues to reset its wait time to 24hrs.
You could have just saved yourself the time, effort, and worry by asking here. Many would have been happy to explain to you what would happen.
Everything I’ve read about maximum mempool wait times are all varied. But the consensus is that 2 weeks is the maximum wait limit until the transaction would be removed from a mempool.
This assumes that the transaction is no longer being broadcast.
And yet here I am 3 weeks into it waiting for my transaction to finally fall off mempool, or be confirmed
Any node can rebroadcast any transaction that it knows about at any time if it wants to, so long as the transaction is still valid. This means that the recipient of your transaction could be rebroadcasting it regularly to increase the odds that they get paid. Additionally, the wallet software that you are using may be rebroadcasting the transaction for you. If you want to get rid of the unconfirmed transaction, your first step should probably be figuring out how to remove it from the wallet software that you used to send it.
I started to feel disappointed that my transaction fee has caused it to become frozen.
Depending on how you sent the transaction, what wallet software you are using, and just how low your fee was, you may have a few options available to you.
For example:
- Child pays for parent (CPFP)
- Replace By Fee (RBF)
- Transaction replacement after removal from mempool
- Transaction acceleration with a mining pool
what if someone isn’t in a hurry to have their transaction confirmed?
Then I would recommend a small (BUT REASONABLE) fee, as a replace by fee transaction so that the fee can be easily increased on the transaction if the sender (or recipient) become impatient.
Can a transaction be sent with little to no fee and eventually be picked up and confirmed by a miner?
While it isn't technically impossible for a miner to include a free transaction, it is extremely unlikely. They have no incentive for including such transactions.
Also, there is a minimum fee for relay set in the most common configuration of the reference software. Any fee smaller than that will generally not be relayed by a large portion of the Bitcoin network. As such, most miners will never even know about such transactions.
Small fees are fine, as long as they are larger than the minimum relay requirements and the network load is light.
Although rare this exact situation has frozen my transaction indefinitely,
You explained that you knew it was going to be a problem, and you did it anyhow. It's not a permanent situation, and it can be resolved, but it may take some effort on your part.
I’m guessing this has been brought to the attention of the community,
It has. As such, we have RBF, CPFP, Acceleration, and removal and replacement.
there still isn’t any solution to this situation except wait for the transaction to finally clear out of the mempool it’s in
Sure there is. I've listed a few of them.
which there is no way of knowing when this will occur.
Correct. It's a decentralized system. There's nobody in charge. You have no control over what other peers do with their nodes. As such, you should make sure you understand the consequences of your actions before you do something that will cause you problems like this.
So that being said, is there anyway that each new block could hold very small amount of space dedicated to minimum fee transactions which can become frozen? It would kind of be like welfare. Sure the amount of space would be really small, but should be enough to send 5-10 transactions on each new block first, then prioritized paid transactions next. 5-10 transactions isn’t a lot, and it would still have very long wait times, however it removes the chance that transactions like mine won’t ever freeze indefinitely with no hope of being returned which is a step in the right direction.
Certainly. If a mining pool wanted to do this they could. However, they have very little incentive to do so, and the participants might end up leaving the pool to go find one that earns/pays more revenue. Regardless, there are some pools that offer a free acceleration service as long as you have at least paid some minimal fee. I think there may also be a pool that allows you to send a payment directly to them to pay for a transaction that has insufficient fees.