Nano Stress Tests - Measuring BPS, CPS, & TPS in the real world

Here is a dedicated forum post for keeping track of Nano stress tests, measured primarily in CPS.

Date Peak Avg Env Other
2020 May 18 1853 150 Beta v21db13, The goal of this test was to saturate the nodes and then sustain high throughput, rather than trying to reach the peak limit of CPS (1, 2, 3, 4, 5)
2020 Apr 13 1,295 734+ Beta v21db12 (1, 2, 3)
2020 Mar 13 1,197 734? Beta 6 PRs, some PRs dropped (1, 2, 3)
2020 Mar 13 95 95 Beta 96 bps pre-test; flat avg & 47ms median conf time (1)
2020 Jan 24 744 740 Beta v21db4, just above saturation (1, 2, 3)
2020 Jan 18 600 600 Beta v21db2, below the saturation point (1, 2)
2019 Dec 30 87 55 Prod 8+ hours at 55+ (1, 2, 3, 4)
2019 Dec 21-29 8 7.4 Prod 8+ days at 7+ CPS, median conf time .3 seconds (1, 2, 3)
2019 Dec 19 493 ~200 Beta 700 BPS, hit saturation (1, 2, 3)
2019 Dec 19 498 498 Beta No saturation; <5 sec conf times (1, 2, 3, 4)
2019 Nov 26 48 40 Prod 0.4 avg conf time (1, 2,)
2019 Oct 28 400 89 Beta N/A (1, 2, 3)
2019 Sep 3 N/A 300 Beta 170ms median conf time (1, 2)
2019 Aug 1-5 N/A 8 Prod 4 day test (1, 2)
2019 Aug 3 25 N/A Prod 0.5-0.7 conf times (1)
2019 Jul 10 150 138 Beta 1st test measuring CPS instead of TPS (1)
2019 May 24 80* N/A Beta Last test measuring per-node TPS* (1)
2019 Apr 13 N/A 40* Prod N/A (1)
2018 Aug 23 919* N/A Beta Single node peak (1, 2)
2018 Aug 17 756* 75* Beta N/A (1)
2018 Feb 2 40* N/A Prod N/A (1, 2)
2018 Jan N/A 120* 35* Prod N/A (1)
2018 Jan N/A 306* 105* Prod N/A (1)
2017 N/A N/A 7000 7000 Paper/Lab Theoretical profile (1, 2)

BPS vs CPS vs TPS

*For earlier stress tests, the only numbers we have are TPS numbers (not CPS). TPS was a per-node measurement that represented the perceived network-level transmission rate (BPS), but this measurement was found to be somewhat inaccurate due to peering and propagation differences between nodes. CPS is now the preferred term for describing overall Nano network scalability, and is what listed in the above table for all tests newer than May 24, 2019. The older stress tests listed in the table don't have CPS data, only the original TPS measurement (aka perceived BPS).

It is also important to note that the CPS measurement in Nano is not the exact same thing as the TPS measurement from other cryptocurrencies; CPS/2 is a closer comparison. While Nano transactions do not require a corresponding receive transaction to be considered confirmed (irreversible), there must be a corresponding receive transaction before received funds can be spent again. From the Nano glossary:

  • BPS - Blocks Per Second, the transmission rate of unconfirmed blocks (transactions) on the network
  • CPS - Confirmations Per Second, the rate of confirmed blocks (send or receive)
  • TPS - Transactions Per Second

Beta network saturation points

  • v19rc3 - 83 CPS [1] [2]
  • v19 - 200 CPS
  • v20 - 350 CPS
  • v21db1 - 500 CPS
  • v21db2 - 700 CPS
  • v21db4 - 740 CPS
  • v21db10 - 750+

Additional information

While some of the weaker nodes dropped offline (as expected) during some of these stress tests, the Nano network itself stayed online and functional. One of the biggest issue with testing the production environment is typically generating enough blocks (PoW) to actually stress the network.

Remember that even just 50 TPS (100 CPS) is 4,320,000 transactions per day, and Nano can do that pretty comfortably:

Nano is doing really well imo, and I wouldn't be surprised to see a 1,000+ TPS stress test in the next few years.

11 Likes

I'll link my other post to this.

@Qwahzi Can you make an edit to the second citation link of 2019-11? It is currently scaled down and has lots of compression artifacts. The link below makes it more readable. Cheers.

https://i.imgur.com/e5sXH0a_d.jpg?maxwidth=2048&fidelity=high

2 Likes

Done, thank you for the better link!

2 Likes

Thank you for providing such a very useful summary with all the references!

2 Likes