Latest Comparison of 7 Top Public Blockchains

Public Blockchain CMC Ranking Program Language Consensus Algorithm Official Released TPS Tested Avg. TPS Tested Peak TPS
EOS 6 C++ DPoS 3000 2200 2400
NEO 17 C# dBFT 1000 62.3 73.6
TRON 11 Java DPoS 2000 441 694
Ontology 24 Go VBFT 3000 2800 3679
WaykiChain 99 C++ DPoS 3000 3200 5500
VeChain 28 Go PoA 10000 1000 1000
IOST 60 Go PoB 8000 854 1714

Comparison Chart

TPS Background Introduction

Transaction Per Second (TPS) is the number of transactions executed per second. This means, for a duration of one second, we can test how executions can be performed in that time frame. However, due to the uniqueness of different consensus mechanisms, many public blockchains will have different TPS results. Are the TPS results made by public blockchains reliable or trustworthy? In order to discover the actual performance of well-known public chains, we invited senior software developers to write some test scripts.

TPS Test Method

In reference to the top blockchain test methods, the following is the method used for the first test:

1) Unified test environment, including hardware and operating system;

2) Considering the characteristics of the smart contract transactions, the type of transactions tested is just ordinary transfer transactions;

3) In order to avoid the influence of network factors, a single node (with multiple miners) will be used for this test.

EOS

Consensus Mechanisms DPOS
BP# 21
Block Production Speed 0.5 BPS
TPS 2200

Test Environment

AWS Cloud server, model: c5d.xlarge , 4 cores 8G , 100G nvmeSSD, CentOS 7.4
OS: Ubuntu 18

Built with source code, checkout specifies the tag: 45bfc94

Since EOS generates 2 blocks per second, the TPS is around 2200.

NEO

Consensus Mechanisms DBFT
BP# 4
Block Production Speed 15 BPS
TPS 62.3

Test Environment

AWS Cloud server, model: c5d.xlarge, 4 core 8G, 100G nvmeSSD, CentOS 7.4
CPU: Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz
Docker version 1.13.1, build 774336d/1.13.1
Docker-compose version 1.24.0, build 0aa59064
Node mirroring: docker.io/cityofzion/neo-privatenet (2019-01-20 12:01:18)
Built with CityOfZion/neo-scan-docker
Test script based on netcore2.1

Test Result

The three rounds of peaks through the browser:

The first round:

waykichain, blockchain

The second round:

waykichain, blockchain

The third round:

waykichain, blockchain, tps

The highest peak: 1104 /block 73.6 TPS
Mean ≈62.3 TPS

TRON

Consensus Mechanisms DPOS
BP# 27
Block Production Speed 1/3 BPS
TPS 441

 

Test Environment

The node program runs on the local MAC pro
CPU: 4 cores (2.7 GHz Intel Core i7)
Memory: 16 G
SSD: 512 G
Test based on the private test network.

Test Result

waykichain, blockchain, tps

After peaking at 700 TPS, The average = 694 (peak)

blockchain, waykichain, tps

Ontology (ONT)

Consensus Mechanism VBFT
BP# 5
Block Production Speed 1/6 BPS
TPS Stable TPS: 2800; Peak TPS: 3679

Test environment

i7-8700cpu, 32G RAM, 500G mechanical hard disk, Windows 10
Test-based on regtest network.

Test Result

CurrentBlockHeight = 13, solo actor receives block complete event. block height=14 txnum=15628 TPS=2604
CurrentBlockHeight = 55, solo actor receives block complete event. block height=56 txnum=13700 TPS=2283
CurrentBlockHeight = 70, solo actor receives block complete event. block height=71 txnum=17945 TPS=2990
CurrentBlockHeight = 74, solo actor receives block complete event. block height=75 txnum=20000 TPS=3333
CurrentBlockHeight = 97, solo actor receives block complete event. block height=98 txnum=18898 TPS=3150
CurrentBlockHeight = 120, solo actor receives block complete event. block height=122 txnum=22074 TPS=3679
CurrentBlockHeight = 179, solo actor receives block complete event. block height=180 txnum=13310 TPS=2218
CurrentBlockHeight = 180, solo actor receives block complete event. block height=181 txnum=16660 TPS=2777
CurrentBlockHeight = 601, solo actor receives block complete event. block height=602 txnum=19116 TPS=3186
CurrentBlockHeight = 621, solo actor receives block complete event. block height=622 txnum=12269 TPS=2048
CurrentBlockHeight = 635, solo actor receives block complete event. block height=636 txnum=16830 TPS=2805
CurrentBlockHeight = 656, solo actor receives block complete event. block height=657 txnum=17428 TPS=2905
CurrentBlockHeight = 1234, solo actor receives block complete event. block height=1235 txnum=13427 TPS=2238
CurrentBlockHeight = 1236, solo actor receives block complete event. block height=1236 txnum=15936 TPS=2656
CurrentBlockHeight = 1280, solo actor receives block complete event. block height=1281 txnum=20682 TPS=3447
CurrentBlockHeight = 1308, solo actor receives block complete event. block height=1309 txnum=17691 TPS=2949
CurrentBlockHeight = 1404, solo actor receives block complete event. block height=1405 txnum=13278 TPS=2213

The peak reaches 3679 TPS, the lowest is 2048 TPS, and the TPS is stable at around 2800.

WaykiChain (WICC)

Consensus Mechanism DPOS
BP# 11
Block Production Speed 10 BPS
TPS Stable TPS: 3.2k; Peak TPS: 5.5k

Test Environment

Node program version: https://github.com/WaykiChain/WaykiChain
Node program runs under Alibaba Cloud ECS Docker
CPU:8 cores(Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz)
Memory:32 G
SSD:40 G
Host machine OS: Ubuntu 14.04.5 LTS
Docker:version 18.06.1-ce
Docker OS:Ubuntu 14.04.3 LTS
Test based on regtest network.

Test Result

Start common TPS test parameter estimated TPS actual TPS
20 65 3250 3238 (stable)
20 100 5000 5589 (unstable, peak)

Use “./coind -datadir=. getblock <height> | grep txnumber” to query the number of transactions included in the specified block.

Using the starting block 10 and the terminating block 20 in TPS press measurement as shown below.

waykichain, blockchain, tps

Calculated the mean of the transactions for each block of 10 consecutive blocks:

waykichain, blockchain, tps

Because the interval of block production is 10 seconds, TPS = 29639.3/ 10 ≈ 2963

waykichain, blockchain, tps

VeChain (VET)

Consensus Mechanism POA
BP#
Block Production Speed 10 BPS
TPS 1000

Test Environment

Node program runs on Alibaba Cloud ECS Docker
CPU:8 cores(Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz)
Memory:32 G
SSD:40 G
Host machine OS:Ubuntu 14.04.5 LTS
Docker:version 18.06.1-ce
Docker OS:Ubuntu 14.04.6 LTS

Test Result

Stable TPS:1000; Peak TPS: 1000

blockchain, waykichain, cryptocurrency, tps

Each block contains a maximum of 10,000 transactions. The time interval of each block is 10s, so the calculated TPS=1000.

IOST

Consensus Mechanism POB
BP# 17
Block Production Speed 2 BPS
TPS 854

Test Environment

Docker version 18.06.1-ce, build e68fc7a
[email protected]:/# cat /proc/version
Linux version 4.4.0-93-generic ([email protected]) (gcc version 4.8.4 (Ubuntu 4.8.4- 2ubuntu1~14.04.3) ) #116~14.04.1-Ubuntu SMP Mon Aug 14 16:07:05 UTC 2017

The test was based on private test networks.

Test Result

Conducted multiple sets of tests. After the test program runs for 5 mins, through the interface getBlockByNumber scanning, the number of transactions included in each test block is divided by the block production interval time to obtain TPS.

The partial log record selected in a stable test period of about 100s follows, the average TPS is 854.

blockchain, tps, waykichain

Peak =1714.

Though these mainstream public blockchains have their own program language and consensus mechanism, by using different test methods, we can get the tested average TPS and peak TPS. Among these, Ontology and WaykiChain have the higher tested TPS than their officially released TPS.

The competition between public chains is the competition of stability, security, usability, and efficiency, so strengthening the technical security and stability of the entire public chain is vital. High-performance transaction processing capabilities and efficient consensus mechanisms are the essential parts of creating a stable and secure ecosystem environment for blockchain developers and users.

About the Author: Joanna Chow is a prolific writer in the blockchain industry

Source