Hi.

Welcome to my blog. I document my adventures in travel, style, and food. Hope you have a nice stay!

400k tps per second...or not

400k tps per second...or not

The blockchain platform CREDITS claimed an impressive 400k+ tps in tests yesterday, a number that far surpasses the single/double digit figures that Bitcoin and Ethereum currently achieve. 

Unsurprisingly, the headline figure isn't really representative of reality. 

How the testing was done?

How the testing was done?

The platform node was deployed on a virtual machine in Microsoft Hyper-V for x64-based systems. The hardware specifications were the following: Intel® Xeon® E5–2630, 15 MB cache, 2.30 GHz, 7.20 GT/s Intel® QPI, Turbo boost of 2.80 GHz, 8 GB RAM.

The virtual platform configuration involved the creation of 29 nodes and 1 signaling server with the processor speed from 2.2 to 2.8 GHz.

Transalation:

The test was performed with all nodes operating on a single server using virtual machines. This removes a number of issues that blockchains face in the real world, namely the lag and delays that nodes spread over the world causes. It also removes bandwidth restrictions. As all nodes are operating on the same VM/machine it also removes the issue of low performance systems. 

 

The following issues were also absent as not required for testing the system bandwidth:
- Charging of fees for processing to the main and trusted nodes;
- Processing related to smart contracts;

Translation: 

We didn't use smart contracts, as that would have slowed the system down dramatically

The checking of transaction uniqueness was performed without checking the account balance. It affects the speed only to inconsiderable ~1–2%, but we would have to create a lot of different accounts.

Translation: 

The system didn't check for double spending (which is a pretty important step in a live system, as you want to know that people aren't spending the same money twice!)

First, we have proved that our system can handle large transaction volumes from 500 thousand per second, with the prospects of millions of transactions. We are proving the feasibility of processing millions of transactions per second with an average processing time from fractions of a second.

It should be understood that the programming code is not optimized and will later have a huge potential for improvement and optimization.

The average minimum time of passing a transaction record into the database is 1.302 microseconds ( 10 –6 sec) (transfer between nodes, processing and preservation in the storage). Another report about speed of transactions will be given soon)

Translation:

We'd like you to think that we've proved our system can handle up to 500k tps, but really all we've shown is that the absolute maximum we can achieve is 500k tps when every element is optimised and we turn off the elements of the system which might slow this down. 

1.302 microseconds as an average minimum time for transactions is a useless figure and completely unobtainable in any real situation. As pointed out on in a commentary on Reddit, "sending 56 bytes of data 8 feet on gigabit ethernet takes 450 microseconds, or 300 times longer". This hopefully highlights why the claims of a transaction taking 1.302 microseconds is just not going to happen in a live situation. 

 

To be fair to the CREDITS team, they have acknowledged the limitations of the test and I have nothing against the team for performing it - it is important to do so as part of creating a blockchain. It is more the way that this has predictably been used as a sign that blockchains have solved scaling, that CREDITS has done what Ethereum et al have been unable to do by others in the community that needs to be combated, because this test is proof of nothing of the sort. 

Panic and fear

Panic and fear

The difficulty of valuing cryptoassets

The difficulty of valuing cryptoassets