Neo St Petersburg Competence Center (SPCC) has released an article documenting the latest Neo3 performance test results following recent improvements to its open benchmarking platform, neo-bench. In the article, the team assesses the potential for Neo to pass the previously theoretical 10,000 TPS as they explore areas to optimize for improved transaction throughput in Neo3 nodes.
The performance tests were run in single- and four-node consensus setups, using thirty worker threads to send a total of one million transactions. The benchmarks were run on a commodity laptop with an i7-8565 CPU and 16GB RAM, this time focusing only on NeoGo.
Average TPS for a single NeoGo node under these circumstances was 10,374 with a LevelDB backend and 11,981 with BadgerDB, both exceeding the 10k TPS milestone for the first time. The four-node tests showed average TPS results of 1,759 and 2000 for LevelDB and BadgerDB respectively.
Though a significant performance difference is observed between single- and four-node setups, the team noted that this is in part due to use of the laptop:
“We run tests on a single machine with just four physical (plus four HT) cores, and in this mode we run five (4 CNs plus 1 RPC) nodes there that accept RPC, distribute transactions via P2P, approve blocks in consensus, and process them. All of these nodes try to get as much CPU power and disk I/O as they can, but the machine is not that powerful.”
Alongside the achievement of 10k TPS for a single node, the results highlight the scaling capabilities of both the Neo3 RPC and mempool in the Go implementation. The tests also help reveal that the current bottleneck in performance lies in block processing. This means that further improvements may be expected as consensus and persistence logic is further optimized.
The full report can be found at the below link: