~ The Mempool ~
The Bitcoin Mempool has been a hot topic of discussion lately, as transaction volumes have been increasing, causing congestion in the network, and driving fees higher.
In this thread I'll explain what the Mempool is and what is going on...
The Bitcoin Mempool has been a hot topic of discussion lately, as transaction volumes have been increasing, causing congestion in the network, and driving fees higher.
In this thread I'll explain what the Mempool is and what is going on...
1/ The "Mempool" generally refers to all of the transactions that have been seen by the network, but have not yet been included in a block
These transactions are often referred to as "Unconfirmed" transactions
These transactions are often referred to as "Unconfirmed" transactions
2/ Where are these transactions stored?
Remember that Bitcoin does not have any central server - the network is made up of thousands of Nodes...
Each of these Nodes actually has its own Mempool
Remember that Bitcoin does not have any central server - the network is made up of thousands of Nodes...
Each of these Nodes actually has its own Mempool
3/ The contents of all the these Mempools are roughly the same. When a transaction gets broadcast to the network, it usually ends up reaching all the nodes..
So we usually refer to The Mempool as if its a single thing
But Nodes can have different settings for their Mempools
So we usually refer to The Mempool as if its a single thing
But Nodes can have different settings for their Mempools
4/ For example a Node running the default settings will not let its Mempool get bigger than 300 megabytes. This can be changed, but most nodes use this default
So what happens when there are more than 300 megabytes of transactions waiting to be confirmed?
This happened today!
So what happens when there are more than 300 megabytes of transactions waiting to be confirmed?
This happened today!
5/ If this happens, Nodes just start dropping the lowest fee transactions and forgetting about them
Remember that miners want to mine the Highest Fee transactions, so its really only important to keep track of the highest fee ones during these times https://twitter.com/lopp/status/1321522161421586437?s=20
Remember that miners want to mine the Highest Fee transactions, so its really only important to keep track of the highest fee ones during these times https://twitter.com/lopp/status/1321522161421586437?s=20
6/ So if you sent a minimum fee transaction lately (1 satoshi/byte) you may have noticed that it was stuck unconfirmed for several days, and then recently it stopped showing up on public block explorers!
Most nodes kicked it out of their Mempool!
Most nodes kicked it out of their Mempool!
7/ It may be scary but don't worry, your funds are safe... You have a few options.
The first option is to wait for things to settle down, and rebroadcast your transaction later
It's important you rebroadcast it though! You need to tell the nodes about it again!
The first option is to wait for things to settle down, and rebroadcast your transaction later
It's important you rebroadcast it though! You need to tell the nodes about it again!
8/ A second option is to create a new transaction with a higher fee...
If you do this, make sure you spend the SAME UTXOs that you spent before
By spending the same UTXOs that your original transaction spent, you'll guarantee that only 1 of these transactions will go through
If you do this, make sure you spend the SAME UTXOs that you spent before
By spending the same UTXOs that your original transaction spent, you'll guarantee that only 1 of these transactions will go through
9/ Why?
It's possible that some miner's Node might be running a massive mempool and they never kicked out your old low-fee transaction, so they could legally mine it some time later on!
There's no way to know the contents of all the mempools, so you have to assume the worst
It's possible that some miner's Node might be running a massive mempool and they never kicked out your old low-fee transaction, so they could legally mine it some time later on!
There's no way to know the contents of all the mempools, so you have to assume the worst
10/ A better solution than both of these is to have used RBF (replace-by-fee) in your transaction - check your wallet settings and enable RBF if you can!
This lets you dynamically bump up the fee when fee spikes happen https://twitter.com/dannydiekroeger/status/1286485851317272576?s=20
This lets you dynamically bump up the fee when fee spikes happen https://twitter.com/dannydiekroeger/status/1286485851317272576?s=20
11/ Finally if you want to explore the mempool a bit more, here is one nice website that shows the number of transactions in the mempool over time, color-coded by fee rate
Lately it has been a sea of red!
https://jochen-hoenicke.de/queue/#0,24h
Lately it has been a sea of red!
https://jochen-hoenicke.de/queue/#0,24h
12/ And if you're not already, consider running your own Bitcoin Node, and playing with the "getrawmempool" and "getmempoolinfo" RPC calls!
13/13 So lets summarize:
Each Bitcoin Node has it's own Mempool and it has a max size based on the Node's settings
When transaction volumes exceed these size limits, nodes will drop the lowest fee transactions
And now you have some tools on how to navigate this situation

Each Bitcoin Node has it's own Mempool and it has a max size based on the Node's settings
When transaction volumes exceed these size limits, nodes will drop the lowest fee transactions
And now you have some tools on how to navigate this situation


Also if you liked this thread, you might like my others, all linked on this mega thread: https://twitter.com/dannydiekroeger/status/1282000262782042117