Latest Comparison of 7 Top Public Blockchains

Public BlockchainCMC RankingProgram LanguageConsensus AlgorithmOfficial Released TPSTested Avg. TPSTested Peak TPSEOS6C++DPoS300022002400NEO17C#dBFT100062.373.6TRON11JavaDPoS2000441694Ontology24GoVBFT300028003679WaykiChain99C++DPoS300032005500VeChain28GoPoA1000010001000IOST60GoPoB80008541714

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 MechanismsDPOSBP#21Block Production Speed0.5 BPSTPS2200

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

waykichain

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

NEO

Consensus MechanismsDBFTBP#4Block Production Speed15 BPSTPS62.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 MechanismsDPOSBP#27Block Production Speed1/3 BPSTPS441

 

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 MechanismVBFTBP#5Block Production Speed1/6 BPSTPSStable 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 MechanismDPOSBP#11Block Production Speed10 BPSTPSStable 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 parameterestimated TPSactual TPS20 6532503238 (stable)20 10050005589 (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 MechanismPOABP#Block Production Speed10 BPSTPS1000

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 MechanismPOBBP#17Block Production Speed2 BPSTPS854

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