Based on the testing results, the following conclusions can be drawn for each scenario.
The current throughput of 1,000 tps is “cruise”-mode, meaning that in this mode, resources allocated to the node are more than sufficient and it operates stably. To further increase throughput, platform users can lift a limit of 500 transactions per microblock. This limit was established as recommended for a mixed platform load scenario to avoid the creation of overly large blocks, which in some cases could trigger unstable network interaction and node behavior.
The test confirmed that a throughput of 16 Mbps is a standard regime for platform operation.
In this scenario, blockchain operation imposes extra requirements on computational resources, primarily the disk subsystem. For stable node operation under this scenario, fast HDD or SSD disks are preferable.
To further increase network throughput, horizontal node scaling can be applied. Also, the Waves Enterprise team is constantly working on optimizing resource-consuming operations.
Smart contracts are involved in all business process automation cases on the blockchain. It was therefore vital to evaluate the platform’s throughput while processing smart contracts.
We tested various types of smart contract, with all of them showing changes in throughput, depending on input data.
Based on analysis of resource consumption in the test contours, as well as in the public network’s nodes where smart contracts operate under load, we recommend scaling nodes for memory. Additionally, one problematic area is the operation time of a smart contract itself, as the throughput potential facilitates increasing the number of processed transactions by several dozen times over.
During load testing under this scenario, the network throughput’s dependence on smart contract execution time and payload supplied as arguments was detected.
Predictably, the maximum throughput was achieved for “fast” smart contracts with a small payload of 0.1 КB. Based on our experience, for most business process automation cases on the blockchain, smart contract invocation transactions of 2 KB to 4 KB are used.
Given this, and the fact that network throughput dependence on payload size is non-linear, it’s safe to say that for most cases, throughput will be close to maximum.
For more stable smart contract operation under load, attention should be paid to the allocation of sufficient RAM to the machine on which smart contracts are executed.
Plans for further development
From a platform development viewpoint, smart contract development is one of Waves Enterprise’s priorities, and their speed increases with each release. Currently, several solutions are at the R&D or prototyping stage, and will likely lead to a several-fold increase in network throughput for this scenario.
You will be able to learn more on testing methodology and outcomes in a detailed load testing report that we will publish shortly.