Last updated on January 2nd, 2018 at 12:00 am
When a Bitcoin transaction is transmitted to the network it first gets verified by all of the Bitcoin nodes available. After it successfully passes verification it goes and sits inside the “Mempool” (short for Memory Pool) and patiently awaits until a miner picks it up to include it in the next block. So the Mempool is basically the node’s holding area for all the pending transactions.
Here’s a short video about this (the mempool is the unconfirmed transactions pool basically):
All nodes have a different RAM capacity to store unconfirmed transactions. As a result, each node has its own rendition of the pending transactions, this explains the variety of Mempool sizes & transactions counts found on different sources.
But how do the nodes avoid from crashing due to overload by the Mempool size? If the Mempool size gets too close to the RAM capacity, the node sets up a minimal fee threshold. Transactions with fees per kB lower than this threshold are immediately removed from the Mempool and only new transactions with a fee per kB large enough are allowed access to the Mempool.
The Mempool is part of BIP 35 (Bitcoin Improvement Proposal), and it helps SPV wallets (lightweight wallets) record transactions, Bitcoin miners that wish to catch up with transactions after the previous block was mined and more.
So basically the Mempool is the bottleneck of the Bitcoin network. The faster transactions are cleared from it into the Blockchain, the better experience the users get. If the rate of mining new blocks of transaction is lower than the rate of new transactions arriving into the Mempool a “traffic jam” will occur and transactions can take a long time to get approved (depending on their size and attached fee).
When a node receives a new valid block, it removes all the transactions contained in this block from its mempool. This results in a sharp drop in the Mempool size.
If you want to see the current status on the Mempool you can take a look at the graph below (source):
Mempool size is shown on the right. If, for example, the Mempool size is around 3MB then a transaction will take 3 blocks on average in order to get confirmed. Keep in mind that some of the Mempool transactions are low priority transactions that their sender knows they will take a long time to be confirmed – for example “dust transactions” (sending really small amounts of Bitcoin).
Got more questions about the Mempool? Leave the in the comment section below!