User avatar
TomZ
Nickel Bitcoiner
Nickel Bitcoiner
Posts: 111
Joined: Thu Oct 29, 2015 5:28 pm
Contact: Website Twitter

Distributed nature of Bitcoin means transactions is never dropped. The backlog shows we already need bigger blocks today

Thu Oct 29, 2015 5:42 pm

I run my own node, its on a beefy desktop computer with lots of memory. Over the course of the month I've been observing the mempool size and its been growing forever.

Some basic concepts first, for those that are not into the details.

The way that works is that any transaction created is send to the Bitcoin network. The 5000 or so nodes store it in the most wonderful redundant manner which means that effectively, until the internet burns down, the transaction will stick around. This storage is called the mempool.
When a newly mined block comes in each node removes from the mempool all transactions that conflict with the new block.

It is, in other words, fair to call the mempool the backlog for the miners. It is the amount of work left to confirm and put into blocks. The current mempool on my node is good for around 400 bocks. Or 3 days of completely full blocks.
On other nodes that don't get flushed when I eventually restart for a kernel upgrade, I've seen double that amount.

The problem is that the inflow of new transactions doesn't go down. And we've been having this backlog for weeks now. Something has to be done!

In the Core team there seem to be some solutions;
  • raise the min-fee! This means that an individual node has a distorted view on the world. It only sees a certain subset of transactions. Anything that doesn't pay a minimum fee is ignored. That doesn't mean that the other transactions go away or are going to stop being mined or transmitted to this node, though. Great solution for that one node that doesn't have any other option, not a solution for the network.
  • Drop transactions after 2 hours. This seriously is a merge request. Anyway, it has the same problem as the previous one. It doesn't understand that its not a centralized solution but a system of different nodes that each follow their own ideas on which transactions are important. Not a solution for the Network.
The approach in Core is a bit worrying, it tries to stop the big amount of transactions coming in. But they way they do this implies that we stop being distributed because as soon as we come up with a rule about which transactions to drop **on all nodes** we become a centralized system that can be attacked as one.
Any node that doesn't follow the centralized mindset will still accept and relay those transactions. The next step would be to ban nodes that don't follow the centralized rules. Well, you can imagine where that leads.


There are in my opinion only two proper solutions; first is replace-by-fee-secure. Which allows the sender to re-submit his transaction with a higher fee. But it will only be accepted if the outputs remain unchanged (i.e. its not a double spend).
The second is bigger blocks.

With a backlog of more than 400 MB for weeks, which is not going away, we can't wait and discuss how many years from now we will get bigger blocks. We would benefit from them today, not some hypothetical time in the future. So my second point really should be handled first. We're there.

Return to “Bitcoin Discussion”

Who is online

Users browsing this forum: No registered users and 8 guests