<p>What does <code>bitcoin-cli getmempoolinfo</code> spit out?</p>

<p>You may want to increase the <code>maxmempool</code> config value.</p>

CC BY-SA 4.0
2020-05-27T02:18:09.810Z
2020-05-27T02:18:09.810Z
pox
<p>TL;DR:<br />
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.</p>
<hr />
<p>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 <em>online</em> 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 <em>once</em> on the network.</p>
<p>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 <em>not</em> hear about unconfirmed transactions that were broadcast earlier as the other nodes do not rebroadcast transactions they hold in their mempool (<a href="https://github.com/bitcoin/bitcoin/pull/16698" rel="nofollow noreferrer">although there is a proposal to change that</a>). 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.</p>
<p><a href="https://i.sstatic.net/5mCqG.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/5mCqG.png" alt="enter image description here" /></a></p>
<p>I retrieved a screenshot of a mempool visualizer for the period of time at which you were asking your question (via <a href="https://jochen-hoenicke.de/queue/#0,3m" rel="nofollow noreferrer">jochen-hoenicke.de</a>).
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.</p>

CC BY-SA 4.0
2020-06-27T00:48:20.317Z
2020-06-27T00:55:32.833Z
2020-06-27T00:55:32.833Z
Murch
<p>I have been running a full node for about two days.  I wanted to get a list of all mempool txs (using <code>getrawmempool false</code>), 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?</p>
<p>My <code>getmempoolinfo</code>:</p>
<pre><code>&quot;size&quot;: 1985,
&quot;bytes&quot;: 3458091,
&quot;usage&quot;: 10785216,
&quot;maxmempool&quot;: 300000000,
&quot;mempoolminfee&quot;: 0.00001000,
&quot;minrelaytxfee&quot;: 0.00001000
</code></pre>

CC BY-SA 4.0
2020-05-27T02:53:22.567Z
How long has your node been running? It may take hours or days for your mempool to fill up.
Pieter Wuille
CC BY-SA 4.0
2020-05-27T03:33:14.350Z
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
<full-node><mempool><transaction-propagation>
Why is my mempool count so much lower than that of block explorers?
MrPuzzler
# Why is my mempool count so much lower than that of block explorers?

(Asked by: username_0 on 2020-05-27)

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

```

**Tags:** full-node, mempool, transaction-propagation

> **Comments:**
> **username_1**: How long has your node been running? It may take hours or days for your mempool to fill up.  
> **username_0**: 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?  

---

## 2 answers

### Answer by username_2 on 2020-05-27. Score: 1

What does `bitcoin-cli getmempoolinfo` spit out?

You may want to increase the `maxmempool` config value.


---

### Answer by username_3 on 2020-06-27. Score: 0

TL;DR:  
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](https://github.com/bitcoin/bitcoin/pull/16698)). 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](https://i.sstatic.net/5mCqG.png)](https://i.sstatic.net/5mCqG.png)

I retrieved a screenshot of a mempool visualizer for the period of time at which you were asking your question (via [jochen-hoenicke.de](https://jochen-hoenicke.de/queue/#0,3m)).
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.


---

