Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: ragnar dannesk gold on November 26, 2019, 12:38:47 AM



Title: Increase Bitcoin Core Mempool size?
Post by: ragnar dannesk gold on November 26, 2019, 12:38:47 AM
With Bitcoin Core, I am looking at the mempool in my node and it is sitting at 3mb (1,809 transactions).

I am aware of transactions that are unconfirmed (visibile on explorers) but not on my node. Further to this mempool.space has a mempool size currently of 23mb 28,781 (unconfirmed transactions).


I am aware that every mempool is different, but is my core mempool artificially limited to be 1/8 the size of other mempools? Can I change this to have a fuller picture of the network/mempool/unconfirmed transactions?

DBCache is set to 8,000.


Title: Re: Increase Bitcoin Core Mempool size?
Post by: achow101 on November 26, 2019, 12:58:49 AM
Your node's mempool is not being artificially limited. The  mempool size limit is 300 MB.

The discrepancy is likely due to blockchain explorers having long running nodes, well connected nodes, multiple nodes, and less restrictive mempool acceptance rules.

If your node has not been running for a long time, then you will have  fewer transactions in your mempool as you will be missing transactions broadcast while you were offline. If your node isn't as well connected as the services' nodes (them having multiple nodes also helps with that as they can be distributed but record to the same database), then you may be missing some transactions.

And lastly, the most important thing is that those services will run nodes that use a less restrictive mempool acceptance policy. Bitcoin Core by default has a minimum relay fee of 1 sat/vbyte. Then there are also all of the transactions that are considered non-standard. Services will  often reduce or remove these restrictions so that they can show the most transactions as possible. However Bitcoin Core has these restrictions in order to prevent Denial of Service and other attacks.

Even if you were to disable those on your own node, you still need to be very well connected in order to see as many unconfirmed transactions. Your peers will likely still be running with those rules so unless you aren't connected to the people broadcasting those transactions, you won't see them as they get filtered out by all of the other nodes.


Title: Re: Increase Bitcoin Core Mempool size?
Post by: ragnar dannesk gold on November 26, 2019, 02:40:11 AM
Thanks for the reply.

I assumed the mempool was gossiped by nodes on an ongoing basis; I assume I was incorrect and it is only transactions that are recently broadcast that are gossiped between nodes.

I take it then that a node cannot 'request' transactions in the mempool over the network to cross check against? I guess this could be used to drain resources/ddos.



Title: Re: Increase Bitcoin Core Mempool size?
Post by: ranochigo on November 26, 2019, 04:57:12 AM
I take it then that a node cannot 'request' transactions in the mempool over the network to cross check against? I guess this could be used to drain resources/ddos.
If I'm not wrong, as per BIP35, nodes can send a mempool message to each other for updates to their own mempool.

A node could send a mempool message to the other nodes for information of their mempool. The response will be an inv message which gives a full list of the TXID in the mempool.