16

How many transactions per second can the Monero network (theoretically) handle?

Did recent LMDB optimizations improve the speed that CPUs can confirm transactions?

Is the current limiting factor CPU confirmation time, bandwidth of Monero nodes or something else?

Based on test testnet data so far, will RingCT transactions faster be slower than (pre RingCT) confirmations today?

2
  • Bandwidth is NOT the limiting factor, block size and times are. 1700 TPS is a ludicrous claim.
    – Joe Bloe
    Mar 23, 2019 at 20:15
  • That was pre-rct, and was only considering CPU verification time, since it was done when NoodleDoodle was speeding sync up, so this measure was of particular interest at the time. RingCT was much slower. Bullteproofs are in the middle.
    – user36303
    Mar 23, 2019 at 21:59

4 Answers 4

12

Monero transaction confirmations are very quick on modern computers. With LMDB estimates from developers Smooth and NoodleDoodle are that Monero can handle 1700 TPS (up from 1600 TPS pre LMDB).

Confirmation time is definitely not the limiting factor. Many nodes do not have the bandwidth to support 1700 TPS based on current transaction sizes.

Monero can have very large blocks thanks to its adaptive blocksize. However by the time that we reached 1700 TPS memory requirements would also be too much for many nodes.

In order of importance, I would say the TPS limiting factors today bandwidth and memory. LMDB did speed up CPU confirmation time but it was not the limiting factor in TPS even before the improvement.

2
  • > memory requirements would also be too much for many nodes. is the assumption that the memory in the txpool would cause the node to crash? Because moneromooooooo recently made some awesome improvements where the txpool is now stored in the database too.
    – Ginger Ale
    Jul 29, 2017 at 4:14
  • Indeed. The only limiting factors should be network bandwidth and CPU speed now, memory use is no longer a factor.
    – hyc
    Jul 31, 2017 at 13:51
6

Adding to the previous answer, those TPS estimates assume an Intel i7 2600k quad core processor. So roughly 400 TPS per core. That processor is from 2011, so I assume that this figure will improve with newer processors, as well scale with more cores. Note that these are just tx verification times, bandwidth is a whole different issue.

I would say that bandwidth will be the limiting factor for the foreseeable future. The proliferation of fiber internet, as well as the roll out of 5G networks (~2020) will really be what takes max TPS to the next level.

5

Bandwidth is currently the limiting factor.

Assuming an average transaction size of around 15 KiB, nodes can handle ~8 tx/s with every Mbit/s connection speed.

There is no real answer to how many transactions per second the network can "theoretically" handle though. A higher transaction rate means higher requirements, whether it's bandwidth, CPU or disk storage. When those requirements go up, certain people will not be able to run a full node any more, and the network becomes less decentralized.

So if the requirements rise faster than technology and infrastructure can keep up, the Monero network will still be able to handle the transactions. However, it will become increasingly centralized, which is a bad thing.

The scaling issue is about keeping the network as centralized as possible, there's no hard limit.

2
  • 15 kB looks like a huge tx. Can you reference the number?
    – Kozuch
    Dec 14, 2017 at 22:00
  • @Kozuch xmrchain.com - just have a look at the recent transactions.
    – amiuhle
    Dec 14, 2017 at 22:52
0

For a practical answer to this question, one needs practical benchmarking tests. CPU benchmarking tests alone are insufficient to provide a full picture answer of what the real-world network can handle.

I last ran a full sync benchmark test in June 2021: https://blog.lopp.net/2021-altcoin-node-sync-tests/

At that time (it's hard to get an exact cumulative transaction count) there were around 14,500,000 historical transactions in the blockchain. It took my benchmark machine (Core i7 8700 3.2GHz 6 core CPU) 1 day 21 hours 7 minutes to sync. That's 162,420 seconds.

TL;DR I saw a transaction verification throughput of 90 transactions per second.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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