I have been running a full node for about two days. I wanted to get a list of all mempool txs (using getrawmempool false), and found that it only came back with around 3,000 even though all the block explorers are currently showing around 12,000. I understand that mempools will differ between nodes, but this seems like a very big difference. Can I do anything about this?

My getmempoolinfo:

"size": 1985,
"bytes": 3458091,
"usage": 10785216,
"maxmempool": 300000000,
"mempoolminfee": 0.00001000,
"minrelaytxfee": 0.00001000
  • 2
    How long has your node been running? It may take hours or days for your mempool to fill up. – Pieter Wuille May 27 '20 at 2:53
  • About 2 straight days now. Seems to be bouncing between 2000 and 4000. How can I remove all restrictions on what is accepted/stays in mempool? – MrPuzzler May 27 '20 at 3:33

What does bitcoin-cli getmempoolinfo spit out?

You may want to increase the maxmempool config value.


Unconfirmed transactions are relayed only once. If you were not online, you will only learn about the missing transactions when they are included in a block.

As you may know, Bitcoin employs a gossip protocol to relay transaction and block information. When a new transaction gets submitted to the network, the spender wallet will announce it to its peer nodes. Each peer node will check whether it has heard about the transaction before and will request the full transaction if it does not have it. The peer nodes then proceed to validate the transaction and gossip it to its peers in turn. The transaction spreads through the network until all online nodes have received the transaction. The nodes will then hold the transaction in their mempools until it is included in a block or expires. Note that each unconfirmed transaction is announced only once on the network.

When a new node joins the network, the new node starts participating in the gossiping and will hear about any new transactions that get submitted to the network. The new node will not hear about unconfirmed transactions that were broadcast earlier as the other nodes do not rebroadcast transactions they hold in their mempool (although there is a proposal to change that). However, when a block is announced, each node will retrieve all missing transactions from its peers to be able to validate the block. This guarantees that all relevant transaction get propagated eventually.

enter image description here

I retrieved a screenshot of a mempool visualizer for the period of time at which you were asking your question (via jochen-hoenicke.de). You mention that your node was running about two days at the point when you retrieved the mempool count. If you look at the graph at May 27, you'll see that there is a large count of transactions in the 1-2 satoshi/byte feerate range (the lowest blue band). If you look closely, you see that most of these transactions had been submitted to the network more than two days prior, i.e. before your node was online. Therefore, your node would not have known about the majority of the transactions that were known to nodes with a longer uptime.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.