Pages:
Author

Topic: Why is the transaction fee and mempool congestion increasing ? (Read 686 times)

legendary
Activity: 2268
Merit: 18509
If I broadcast my tx at around 19:45 with 40 sats/b, but the block has not yet been mined, could a miner still drop my tx and replace it with another one that is offering a higher fee?
Yes, absolutely.

When is the miner's decision final?
The decision is only final when the next block is mined. At any point prior to that, the miner can and does update the block they are attempting to solve with new transactions which pay a higher fee.

The block a miner is working on is known as a candidate block. They will build a candidate block from the highest paying transactions in their mempool, and attempt to mine it. Building a candidate block is not instant, as the miner has to calculate the Merkle root for all the transactions in that block, and so swapping out even a single transaction has a computational cost involved. Because of this, miners do not update their candidate block constantly with new transactions. They will attempt to mine their current candidate block, and meanwhile in the background they (or more accurately, their mining pool operator) will build a new candidate block, including new high fee paying transactions and dropping older low fee paying transactions. Once the new candidate block has been built, they'll swap from attempting to mine the old candidate block to this new one. After a set period of time, perhaps somewhere between a few seconds and a minute, which will vary between mining pools and will vary depending on how fast new transactions are hitting the mempool, the mining pool will create another new candidate block and the miners will switch to this one. The process constantly repeats until the next block is found, with miners always working on a subset of the highest fee paying transactions.

Bottom line is when I observe such a drop in the mempool and place my tx instantly according to what info I can extract from Hoenicke's website, will it always get executed if I hit the sweet spot for the fee right in that moment even if the average fee increases manyfold if it takes longer to find the next block?
No. If it takes longer to find the next block, then there is every chance your transaction will be dropped from candidate blocks in favor of higher paying transactions.
hero member
Activity: 1708
Merit: 749
Am I good to go with blockchair or is there another place you guys here are using/preferring?
Blockchair tends to suggest a fairly reasonable fee, so you are fine to keep using it. Generally, however, I suggest using https://mempool.space/ instead, since they give a very nice selection of 4 different fees for no/low/medium/high priority.

If you want to get more advanced, then take a look at https://jochen-hoenicke.de/queue/#BTC%20(default%20mempool),8h,weight, read the text under the graph, and see if you can understand what it is showing you. This lets you then pick a fee yourself and place your transaction exactly where you would like in the mempool, as well as taking in to account things like if the mempool is filling or emptying.

Okay I followed your advice and Hoenicke's website is of great help when when it comes to choosing transaction fees and understanding the mempool in general. I wanted to share an observation, which hopefully motivates others to use it as well. With a little bit of effort you can quickly develop a decent understanding of the metrics provided.





I had the website running after o_e_l_e_o recommended it to me and I noticed that crash in the upper picture and instantly checked blockchair.com. What happened is that four blocks were found within just one minute, causing the estimated transaction fee for the next block to drop drastically, but only for a short period of time. I instantly tried to initiate a small tx and sneaked it in at something around 40 sats/b. It worked, but until this block 789,273 was mined it took until 20:10 (time as per Hoenicke's website). The fee to get your transaction included rose rapidly. I took another screenshot but I skip to share it here as I don't to want to turn this thread into an art gallery. The recommended fee by blockchair.com was back to 190 sats/b at 20:00 already and rose to as much as 233 sats/b on average by the time the block was mined.

There is one technical thing that I don't fully understand. As you can see at 19:41 block 789,278 was mined and the next one was at 20:10. I made my transaction at 19:45 and it worked like a charm. When a block has not yet been mined, miners keep adding transactions that they are going to include into the next block if they find it. They usually do it based on the 'highest transaction fee first' principle. If the fees drop drastically because there was a longer sequence of blocks found within a very short period of time and the tx count in the mempool drops significantly (as can be seen in my screenshot), how do miners choose and commit to transactions being executed? And are they making final decisions when they create their list of transactions that are going to be included? If I broadcast my tx at around 19:45 with 40 sats/b, but the block has not yet been mined, could a miner still drop my tx and replace it with another one that is offering a higher fee? When is the miner's decision final?

Bottom line is when I observe such a drop in the mempool and place my tx instantly according to what info I can extract from Hoenicke's website, will it always get executed if I hit the sweet spot for the fee right in that moment even if the average fee increases manyfold if it takes longer to find the next block?

legendary
Activity: 2268
Merit: 18509
Am I good to go with blockchair or is there another place you guys here are using/preferring?
Blockchair tends to suggest a fairly reasonable fee, so you are fine to keep using it. Generally, however, I suggest using https://mempool.space/ instead, since they give a very nice selection of 4 different fees for no/low/medium/high priority.

If you want to get more advanced, then take a look at https://jochen-hoenicke.de/queue/#BTC%20(default%20mempool),8h,weight, read the text under the graph, and see if you can understand what it is showing you. This lets you then pick a fee yourself and place your transaction exactly where you would like in the mempool, as well as taking in to account things like if the mempool is filling or emptying.
sr. member
Activity: 854
Merit: 262
Eloncoin.org - Mars, here we come!
The problem with CPFP is you have to pay an additional fee for at least two transactions, rather than just one with RBF. And at the moment we are seeing long chains of unconfirmed transactions, which makes CPFP prohibitively expensive or entirely impossible.

Swap BTC into LTC, tranfer it and reswap it back saves a lot of time and fees.
I think this can only be done on an exchange on a custodial wallet. There are many persons that are using wallets like Trust wallet, Meta mask, Coinomi and other wallets that would be difficult for you to swap your coin to Lite coin and then swap it back. If this is possible, I think many of us would not be complaining about the Network congestion which had made the network fees to be increasing everytime. The problem is that we don't know when this is going to finally end so we just have to be patient and see what will happen in few week coming if it will finally ends.
hero member
Activity: 1708
Merit: 749

I've spoken about this before too: https://bitcointalksearch.org/topic/m.57336047

The explanation is that lots of people just blindly accept the fee that their chosen wallet or website tells them, and that the vast majority of wallets and websites are absolutely awful at suggesting an appropriate fee. As you say, all it takes is one exchange to kick start the process by dumping a bunch of overpaying transactions in the mempool, and then 90% of wallets and websites out there start matching those exorbitant fees, and we get in to a vicious cycle. If everyone (exchanges included) actually just paid attention to the fee they are paying, then everyone could save 90% on all their fees, all the time.


I appreciate this a lot as I admit my approach was rather pragmatic and not very smart... When the fees were high I didn't use Bitcoin if I didn't have to and waited until the fees were in a range that I actually didn't care about them anymore. The result was that I didn't double check whether even the low fees make sense, totally discarding the principle 'a penny saved is a penny got'.

But now with all the congestion going on again, thanks to o_e_l_e_o I paid close attention to what my wallet recommended compared to what's actually required on average in order to transact in a reasonable time at reasonable cost. My wallet was totally off all the time and fee recommendations have constantly been on the most upper end and even if I decreased it as much as possible in the standard options, I was still above the real time market fees. I had to open advanced options and only there was I able to type in manually the average real time recommended tx fee from blockchair.com.

Am I good to go with blockchair or is there another place you guys here are using/preferring?
legendary
Activity: 2268
Merit: 18509
Great way to miss the point as usual.

also pools dont always care for fee's
antpool for instance done 3 empty blocks in the last couple days
789,121      789,145      788,886
Empty blocks like these are due to blocks being found very quickly after the previous block, and have nothing to do with pools ignoring higher fee paying transactions. If indeed Antpool didn't care about money, then they wouldn't broadcast empty blocks at all. The fact that they do broadcast empty blocks is proof that they very much care about the money, and aren't waiting to update their UTXO set after the previous block.

also when most pools are collecting fee's of 2-6btc antpool was also filing block with less than 1btc of fees
789,174    789,165     789,163      789,162    789,149    789,093
All these blocks were found in the last 24 hours, where average fees per block are very much around the 1 BTC mark. If you look up any of them on mempool.space, you will see their health at between 98-100%, which is a measure of how many expected transaction weren't included in the block. They absolutely weren't excluding anything like 1-5 BTC of fees as you are suggesting.
legendary
Activity: 4214
Merit: 4458
What is the incentive for a mining pool to exclude hundreds of high fee transactions and include a bunch of low fee transactions instead? Any such mining pool would likely quickly lose much of its hashrate as miners swapped to more profitable pools.

most mining pools have their shares set where the POOL MANAGER takes the fee's and the MINERS JUST SHARE THE 6.25 reward.. thus miners dont benefit from the fees.

yes miners will move to pools that do profit share the fee's but pool managers would just change their % cut.
all in all miners dont gain much either way.

miners make their profits not from tx fee's but by hoarding until the spot market is above their costs. yep miners help support the spot market.

also pools dont always care for fee's
antpool for instance done 3 empty blocks in the last couple days
789,121      789,145      788,886

also when most pools are collecting fee's of 2-6btc antpool was also filing block with less than 1btc of fees
789,174    789,165     789,163      789,162    789,149    789,093
foundry pool for instance has alot more instances of blocks with under 1btc in fees
binance pool, however, is lot more greedy, with less fees under 1btc
but no.. not all pools just collect the highest fee transactions.


let me cut straight to the depths of debunking your opinion
foundry has the highest hashrate but accepts transactions with less fee's. meaning people are not hopping away to other pools to grab fee's and foundry is not filling blocks with transactions to continually grab 4-6btc in fee's
also binance pool with only a 3rd the hashrate of foundry. is showing although they are greedy about fee's their hashrate/block solves over the last fortnight is DROPPING


as for this spam fee mania of ordinal kind:
remember. pools didnt write the code to exploit blockspace. core devs did. so when core devs say its not devs problem and not devs fault and say that its miners fault and miners greed.. well its not the asic owners greed of individuals because individual asic owners dont benefit from the fee war.

enjoy
hero member
Activity: 1050
Merit: 681
The problem with CPFP is you have to pay an additional fee for at least two transactions, rather than just one with RBF. And at the moment we are seeing long chains of unconfirmed transactions, which makes CPFP prohibitively expensive or entirely impossible.

Swap BTC into LTC, tranfer it and reswap it back saves a lot of time and fees.
If its in an exchange wallet (where you are not the real owner of your bitcoins), then yes. But with self-custodial wallets, you have to pay transaction fee in BTC for swapping to LTC (or amy other coins) too. So this idea is not very useful.
And it's not very recommended to keep majority of your funds in an exchange. They can stop your withdrawals, ban you or kick you out anytime.
member
Activity: 672
Merit: 16
Looking for guilt best look first into a mirror
The problem with CPFP is you have to pay an additional fee for at least two transactions, rather than just one with RBF. And at the moment we are seeing long chains of unconfirmed transactions, which makes CPFP prohibitively expensive or entirely impossible.

Swap BTC into LTC, tranfer it and reswap it back saves a lot of time and fees.
legendary
Activity: 2268
Merit: 18509
And if we are at the receiving end, CPNP will also greatly help if we wanted to hasten the confirmation.  We have to pay higher fee though.
The problem with CPFP is you have to pay an additional fee for at least two transactions, rather than just one with RBF. And at the moment we are seeing long chains of unconfirmed transactions, which makes CPFP prohibitively expensive or entirely impossible.

the miner should prioritize the bitcoin transaction 1st over other token brc20 transaction, they know how to filter that from the address (bc1p)
What is the incentive for a mining pool to exclude hundreds of high fee transactions and include a bunch of low fee transactions instead? Any such mining pool would likely quickly lose much of its hashrate as miners swapped to more profitable pools.
hero member
Activity: 868
Merit: 737
As far as I am able to tell, it is a bunch of NFT grifters minting tokens on bitcoin and bloating the mempool.

My buddy sent me this link. It's all of the "BRC-20" tokens: https://brc-20.io/ and it shows all of the crap that is bidding up the fees.

I think it's best to just hodl until all of this blows over and we can get back to normal. If yo ave a miner lying around, it might be a good time to get it mining some of these absurd fees.
Bitcoin is growing up after the update BIP341 and 342, from basic payment (as white paper) to smart contracts like Ethereum Blockchain. The miner are certainly happy, They don't need to worry if halving bitcoin happen multiple time, the miner still can receive bitcoin from confirmed block like today, If I can see, that is even more than a confirmed block. But on another side, that makes a dense network like today, the miner should prioritize the bitcoin transaction 1st over other token brc20 transaction, they know how to filter that from the address (bc1p)
legendary
Activity: 3066
Merit: 1101
Leading Crypto Sports Betting & Casino Platform
Some knowledgeable people gave me 2 options:
1. I wait until the mempool is less congested.
2. I pay a miner to include my transaction.
At the moment, yes, those are your only two options.

When you broadcast transactions to other nodes, each transaction must pass all policy requirements on its own merits. It doesn't matter if you also broadcast a CPFP transaction with a high fee - receiving nodes will not at present consider both transaction as a unit, and so the parent transaction with the low fee will not be accepted.

However, there is a proposal known as "package relay" in active development which would change this. This will allow you to broadcast a "package" of transactions, and have receiving nodes consider the overall fee rate of the entire package, not the individual fee rate of individual transactions. See here for more information: https://github.com/bitcoin/bips/pull/1382. This means that you could simultaneously broadcast your low fee timelocked transaction along side a high fee CPFP transaction, and have nodes accept both based on their overall fee.

in short, for those who can't wait, you will suffer expensive fees. so better think of the reason why you need to transfer these days. if there's no urgency, better delay it for a bit. last week was already quite expensive already but today, much much more!
i believe this is another hurdle in btc life that i think we can surpass. the fees are not favourable to small time holders for now. but i have high hopes that this will be resolve sooner. we will not be in this situation for long.
legendary
Activity: 2842
Merit: 1253
Cashback 15%
None of that is going to help at present as just now I tried to make a payment using 20sats/byte on Electrum, and the servers rejected my transaction due to the mempool being completely full.
RBF will definitely help, and my default settings node has a current minimum fee of around 10.9 sats/vbyte, which is in keeping with mempool.space's 11 sats/vbyte. Seems like you are just connected to a bad server.

And if we are at the receiving end, CPNP will also greatly help if we wanted to hasten the confirmation.  We have to pay higher fee though.

From what I discovered yesterday and today, the more coins you try to transfer from Electrum, the more the charge increase
from where did you discover that? As I know that bitcoin transaction fees are based on how much total data that our transaction is made.
Correct. Transaction size (and therefore your fee) is based on the number of inputs and outputs in your transaction, and not on the amount of bitcoin being sent.

this means that we will pay more transaction fee even though we are sending a smaller amount of BTC if it is coming from different multiple transactions than sending a bigger amount of BTC coming from a single transaction.



This current attack is really making a mess of Bitcoin transactions, I wonder when these people stop playing with transaction fees...

Since the past few days (probably a week), Im observing that the bitcoin transaction fee (for a tx to get confirmed and included in the next block) has increased to an unreasonable level and is not ready to come down. My tx used to get confirmed at 1sat/vB in the past months. I was just curious to know as to what has caused this sudden congestion in the mempool? I cant find a reason.

Because a plague named NFT hit Bitcoin blockchain. Those greedy bustards inscribe more than 5k NFT in each block.. Seekers of easy money load a lot of traffic to blockchain, making every low fee transaction stuck there for days and weeks, which turns into fee increase. These bustards are turning BTC blockchain into ETH Cheesy Remember times when transactions on Ethereum cost +50 bucks and still could fail? We can get same in BTC. Funny that those people will be first to complain that they no longer can pay few cents for transaction Cheesy
With bitcoins block times these NFT treasure hunters are just hurting the network if this is whats behind the surge in transaction fees and the ought to be ashamed  of themselves...can't they pick on a different  blockchain that won't hurt their pocket while they are it.

Talking of ethereum and network clogging,  what was it again..the cat game, cryptocats cant even recall the name but it was bad ,good thing it didn't last long lol.

I do not think it is the treasure hunters that is hurting the network, I think it is an attack from anti-Bitcoin to lessen the integrity of the Bitcoin network.
hero member
Activity: 1792
Merit: 871
Rollbit.com ⚔️Crypto Futures
Since the past few days (probably a week), Im observing that the bitcoin transaction fee (for a tx to get confirmed and included in the next block) has increased to an unreasonable level and is not ready to come down. My tx used to get confirmed at 1sat/vB in the past months. I was just curious to know as to what has caused this sudden congestion in the mempool? I cant find a reason.

Because a plague named NFT hit Bitcoin blockchain. Those greedy bustards inscribe more than 5k NFT in each block.. Seekers of easy money load a lot of traffic to blockchain, making every low fee transaction stuck there for days and weeks, which turns into fee increase. These bustards are turning BTC blockchain into ETH Cheesy Remember times when transactions on Ethereum cost +50 bucks and still could fail? We can get same in BTC. Funny that those people will be first to complain that they no longer can pay few cents for transaction Cheesy
With bitcoins block times these NFT treasure hunters are just hurting the network if this is whats behind the surge in transaction fees and the ought to be ashamed  of themselves...can't they pick on a different  blockchain that won't hurt their pocket while they are it.

Talking of ethereum and network clogging,  what was it again..the cat game, cryptocats cant even recall the name but it was bad ,good thing it didn't last long lol.
member
Activity: 216
Merit: 93
Humble Bitcoin Stacktivist
As far as I am able to tell, it is a bunch of NFT grifters minting tokens on bitcoin and bloating the mempool.

My buddy sent me this link. It's all of the "BRC-20" tokens: https://brc-20.io/ and it shows all of the crap that is bidding up the fees.

I think it's best to just hodl until all of this blows over and we can get back to normal. If yo ave a miner lying around, it might be a good time to get it mining some of these absurd fees.

member
Activity: 672
Merit: 16
Looking for guilt best look first into a mirror
Since the past few days (probably a week), Im observing that the bitcoin transaction fee (for a tx to get confirmed and included in the next block) has increased to an unreasonable level and is not ready to come down.

Some people paying good fees to make the network congest. Many suspect a conspiracy as usual nowadays.

AFAIK, it's related to Bitcoin ordinals[1]. If you're transacting on a regular basis, then maybe it's better to try and stick to the lightning network for now.


Use Litecoin or any other coin which is fast and decentralised. Better and more convenient than the Lightning network.
legendary
Activity: 2268
Merit: 18509
I have actually been able to do this using sparrow wallet. That's exactly what I wanted!!!
No problem. Happy to help.

As always, before you lock up any significant amount of bitcoin, create a test transactions first with only a very small amount of bitcoin which has both a timelock and uses SIGHASH_SINGLE | SIGHASH_ANYONECANPAY, check you cannot broadcast it before the timelock is up, and then check you can add a second input to it and broadcast it after the timelock is up.
sr. member
Activity: 406
Merit: 896
Meaning that the transaction that is time-locked can be broadcasted allowing the recepient to spend from their own wallet to cover the fees. Therefore if I was to receive a transaction, at the time of the broadcast I could add a fee from a personal wallet.
So you can already do this, but it requires the timelocked transaction to be set up in a specific way when it is first created.

All bitcoin transactions contain a field known as the SIGHASH. You can read more about this here: https://btcinformation.org/en/developer-guide#term-signature-hash. Essentially, it's a field which tells the protocol which part of the transaction you are signing. The vast majority of transactions use the default SIGHASH_ALL, which as the name suggests, means you are signing all the inputs and all the outputs, so no inputs or outputs can be changed or added.

However, there are other options available. For this scenario, the person making the timelocked transaction could sign it using SIGHASH_SINGLE | SIGHASH_ANYONECANPAY. This means that they sign their input and output so these cannot be changed, but they allow the addition of other inputs and outputs in to the transaction as well. So years later you can take the timelocked transaction, add your own additional input to it, use some of that input to pay a higher fee, add your own change address for the rest of your input to go to, and then sign and broadcast this new transaction. The core of the timelocked transaction (send x BTC from A to B) can't be changed, but you can add an extra input and output to increase the fee before you broadcast it.

You re very helpful. Unfortunately I have no sendable merit to give you. Thank you!

I have actually been able to do this using sparrow wallet. That's exactly what I wanted!!!
legendary
Activity: 2268
Merit: 18509
Meaning that the transaction that is time-locked can be broadcasted allowing the recepient to spend from their own wallet to cover the fees. Therefore if I was to receive a transaction, at the time of the broadcast I could add a fee from a personal wallet.
So you can already do this, but it requires the timelocked transaction to be set up in a specific way when it is first created.

All bitcoin transactions contain a field known as the SIGHASH. You can read more about this here: https://btcinformation.org/en/developer-guide#term-signature-hash. Essentially, it's a field which tells the protocol which part of the transaction you are signing. The vast majority of transactions use the default SIGHASH_ALL, which as the name suggests, means you are signing all the inputs and all the outputs, so no inputs or outputs can be changed or added.

However, there are other options available. For this scenario, the person making the timelocked transaction could sign it using SIGHASH_SINGLE | SIGHASH_ANYONECANPAY. This means that they sign their input and output so these cannot be changed, but they allow the addition of other inputs and outputs in to the transaction as well. So years later you can take the timelocked transaction, add your own additional input to it, use some of that input to pay a higher fee, add your own change address for the rest of your input to go to, and then sign and broadcast this new transaction. The core of the timelocked transaction (send x BTC from A to B) can't be changed, but you can add an extra input and output to increase the fee before you broadcast it.
sr. member
Activity: 406
Merit: 896
Some knowledgeable people gave me 2 options:
1. I wait until the mempool is less congested.
2. I pay a miner to include my transaction.
At the moment, yes, those are your only two options.

When you broadcast transactions to other nodes, each transaction must pass all policy requirements on its own merits. It doesn't matter if you also broadcast a CPFP transaction with a high fee - receiving nodes will not at present consider both transaction as a unit, and so the parent transaction with the low fee will not be accepted.

However, there is a proposal known as "package relay" in active development which would change this. This will allow you to broadcast a "package" of transactions, and have receiving nodes consider the overall fee rate of the entire package, not the individual fee rate of individual transactions. See here for more information: https://github.com/bitcoin/bips/pull/1382. This means that you could simultaneously broadcast your low fee timelocked transaction along side a high fee CPFP transaction, and have nodes accept both based on their overall fee.

Oh it's in development. That's great! I am trying to think of other ideas. Perhaps if fees weren't attached to the transactions but instead they were separate transactions. Meaning that the transaction that is time-locked can be broadcasted allowing the recepient to spend from their own wallet to cover the fees. Therefore if I was to receive a transaction, at the time of the broadcast I could add a fee from a personal wallet.
Pages:
Jump to: