10K TPS on Neo and beyond

Testing setup

We’re constantly improving neo-bench which is the tool we use for benchmarking and there have been some changes made since the preview3 version of it. Apart from the new functionality provided (such as building C# node from the source code), there were fixes for the RATE mode and some other corrections. It also now saves a bit more data and can draw more graphics for you.

Single-node performance

We’ve concentrated on the 30 worker threads mode because the 10 worker threads mode tends to underutilize the node a bit and the ‘100’ mode usually doesn’t add much. Below is what we have for a single node with 1M transactions pushed into it:

Four-nodes performance

But single node is single node, let’s also look into the four-nodes setup that has improved too:

RATE mode stability

Remember that shaky TPS graphic for the RATE mode with preview3-compatible NeoGo that jumped from 18 Tx/s to 38 Tx/s and back with every block? Well, it’s not a problem any more, now, with 50 RPS it looks like this for a single node:

Conclusion

  • 10K TPS on Neo is a reality for a single node
  • 2K TPS is a reality for four nodes setup (and probably more if one is to use a better machine to run these tests on)
  • there is still some potential for improvement, but now it mostly depends on block processing optimization rather than on transaction validation/pooling

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store