Here is a dedicated forum post for keeping track of Nano stress tests, measured primarily in CPS.
Date | Peak | Avg | Env | Other |
---|---|---|---|---|
2021 Jan 22 | 194 | 185 | Prod | v21 mainnet spam, ~80 peers (1, 2) |
2021 Jan 21 | 220 | 150 | Prod | v21 mainnet spam, ~75 peers, hit saturation (1, 2) |
2021 Jan 21 | 122 | 117 | Prod | v21 mainnet spam, ~82 PRs, 261 total nodes (1, 2, 3, 4) |
2020 Dec 18 | 241 | ~150 | Prod | v21 mainnet, 230+ peers, ~80 online PRs, 4 test batches (1, 2, 3, 4, 5) |
2020 Oct 7 | 1726 | ~1200 | Beta | v22db6, ~1200 saturation, 18 nodes. Four tests, at 1000, 1200, 1300 & 1500 BPS (1, 2) |
2020 Sep 3 | 1468 | ~1000 | Beta | v21.2rc1, ~1200 saturation, 33 nodes, avg drops to ~900 post-saturation (1, 2, 3, 4) |
2020 Sep 1 | 1066 | ~950 | Beta | v21.2db1 but w/ more nodes; ~1100 saturation (1, 2, 3) |
2020 Aug 31 | 1465 | 1220 | Beta | v21.2db1, 99% conf-time <1 sec, not saturated (but few nodes) (1, 2, 3, 4) |
2020 Aug 25-27 | 21 | 5-7 | Prod | v21.1, epoch distribution, ~250 ms median conf time (1, 2) |
2020 Aug 18 | 161 | 100 | Prod | v21.1, $10/mo PR (4 cpu, 8GB, ssd) stayed in sync (1, 2, 3) |
2020 July 3 | 93 | 90 | Prod | Half v21 and half v20 nodes. 330 bps peak (1, 2, 3, 4, 5) |
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 | Paper/Lab | Theoretical profile (1, 2) |
BPS vs CPS vs TPS
*For earlier stress tests, the only numbers we have are perceived BPS numbers (not CPS). Perceived BPS 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 CPS
- v21.2db1: 1465+ CPS, ~18-20 nodes
- v21.2db1: ~1100 CPS, ~34 nodes
- v21.2rc1: ~1200 CPS, ~33 nodes
- v22db6: ~1200 CPS, 18 nodes
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:
- Bitcoin has never done >500,000 transactions a day
- Ethereum has never done >1.5 million transactions per day
- PayPal (centralized) was only doing ~5 million transactions per day in 2011 with almost 100,000,000 users
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.
Can Nano scale for the whole world?
It depends on your timescale and adoption rate. It's highly unlikely than any single payment system (cryptocurrency or otherwise) will displace ALL existing payment processors, and it doesn't need to - it takes a LONG time to obtain that many customers. In 2019, 185.5 billion purchases were made via Visa, 131 Billion via UnionPay, 108 billion MasterCard, ~16 billion for Amex/JCB/Discover, totaling ~14000 TPS average. It's highly unlikely that any existing cryptocurrency can (or should) handle that load. Achieving even just Discover-level adoption (~44 million users) would be a huge achievement for any cryptocurrency, and at Discover usage rates that's ~95 TPS average
It's better to start with more realistic targets: for example, achieving 100 million users for any one cryptocurrency. Even Bitcoin is only at ~8 million users per 2018 Chainalysis estimates. 2011 PayPal was doing ~57 TPS average with 100 million customers, 2018 PayPal did ~314 TPS with 267 million active accounts, and 2019 Discover is at ~95 TPS with ~44 million customers. Nano can handle similar loads now, and even without protocol improvements Nano automatically improves roughly in line with Moore's law
Tl;dr, Nano doesn't have to be able to scale for the entire world from day 1, but it's doing remarkably well for a decentralized network vs centralized for-profit systems