Want to know what we did and what results we got? Read our brief report on the test results.
Initial testing conditions
During testing, we evaluated the speed of the basic protocols, measured the number of transactions per second (TPS).
Testing was organized as follows. In order to simulate for testing an environment close to real processes of block interchange in the network, we ran network packet interchange within a virtual private network (VPN).
This was necessary for the following purposes:
– to estimate all the side needs for memory operations and network operations;
– to determine the average processing time of one packet, which will help us estimate the upper limit of theoretically possible TPS.
Results and forecasts, evaluation of transactions speed
On the virtual and real processors, as well as on virtual and real networks, we got approximately similar results for processing one network packet – 0.01-0.02 milliseconds. The number of network packets processed by one processor core was 83 262.87.
If we take a higher-quality processor, for example, Xenon, we can expect a packet processing speed of two and a half times higher, about 200,000 network packets per core. Thus, to copy data back and forth at a speed of 1 000 000 packets per second, we need only 5 cores of the higher-quality Xenon processor. There are 24 cores in the Xenon processor. With this in mind, we can conclude that processes in the network and memory are not a bottleneck of our blockchain. So, we have only one tick needed for processes in the memory and network, and 4-5 ticks to process the data.
Simply put, blockchain administration and maintenance of its basic functionality will take approximately ⅕ – ⅙ of the total system performance. The rest of the system performance will be used to process a variety of data within transactions: payments, messages, audio and video streams etc.
Now let’s move on to estimate the speed of transactions. 5 Ghz Xenon processor core can perform approximately 5 billion ticks per second. Accordingly, 20 “extra” cores give us 100 billion ticks per second.
To perform a single arithmetic operation, 3 – 4 ticks, on average, are required (from several operations per a tick up to 20 ticks per operation). Let’s take conservative rate – 10 ticks per operation. To make a transaction such as checking the kilobyte public key or counting the hash function of the header, etc., 10,000 operations should be enough. 10,000 operations are 100,000 ticks to process a single transaction. Divide 100 billion ticks by 100,000 ticks and get 10 million transactions per second!
See in numbers:
1 operation = 10 ticks
1 transaction = 10,000 operations = 100,000 ticks
100,000,000,000 ticks (20 Xenon cores) : 100,000 (per single transaction) = 1,000,000 TPS
Thus, we estimate the TPS limit of the completed system approximately 1 – 10 million transactions per second.