Author

Topic: Increase Bitcoin Core Mempool size? (Read 199 times)

legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
November 25, 2019, 11:57:12 PM
#4
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.
jr. member
Activity: 32
Merit: 37
November 25, 2019, 09:40:11 PM
#3
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.

staff
Activity: 3458
Merit: 6793
Just writing some code
November 25, 2019, 07:58:49 PM
#2
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.
jr. member
Activity: 32
Merit: 37
November 25, 2019, 07:38:47 PM
#1
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.
Jump to: