~ 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...
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
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
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
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!
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
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!
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!
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
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
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
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 
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
🚀🌕
Also if you liked this thread, you might like my others, all linked on this mega thread: https://twitter.com/dannydiekroeger/status/1282000262782042117
You can follow @dannydiekroeger.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: