Links

October 10th 2022

Summary

This test was done to measure the SC ERC20 token transfers, SC ERC721 token minting and EOA to EOA transactions functionality with heavy loads and speed of the transactions on the nodes with higher hardware resources.
The goal was to check if everything is working as expected during heavy loads. That was also the reason we’ve introduced gas metrics in the loadbot output, which show us if the blocks are filled with transactions properly.
All transactions were sent to the single node via GRPC API, and the receipts were received via JSON-RPC API. After all transactions were done, gas information was read from each block, using the eth_getBlockByNumber JSON-RPC method.
Our aim was to strive to reach a maximum possible TPS on the hardware resources available. To acheive this, we've modified the block gas limit and block time parameters, to give us the best possible tps results and keep the system integrity and stability.
Production Environments
When configuring a production environment, you need to be carefull if you're trying to acheive high performance of the chain. If block gas limit parameter is set to a high value, block time is set to 1s, and there is a high transaction load on a single node, that node will consume a lot ( if not all available ) RAM and can cause server crash. Use the loadbot to test everything thoroughly, monitor the system resource utilization and set your configuration parameters accordingly.

Results of EOA to EOA transfers

Metric
Value
Transaction type
EOA to EOA
Transactions per second
1428
Transactions failed
0
Transactions succeeded
30000
Total blocks used
15
Total run time
21.374620s

Results of ERC20 token transfers

Metric
Value
Transaction type
ERC20
Transactions per second
1111
Transactions failed
0
Transactions succeeded
50000
Total blocks used
38
ERC20 transaction run time
45.906450s
SC Deploy time
2.006580s

Results of ERC721 token minting

Metric
Value
Transaction type
ERC721
Transactions per second
714
Transactions failed
0
Transactions succeeded
30000
Total blocks used
39
ERC721 transaction run time
42.864140s
SC Deploy time
2.005500s

Environment EOA to EOA

Cloud provider AWS EC2
Instance size c6a.48xlarge
Networking private subnet
Operating system Linux Ubuntu 20.04 LTS - Focal Fossa
File descriptor limit 65535
Max user processes 65535
Exzo Network version Release v0.1.1
Validator nodes 4
Non-validator nodes 0
Consensus IBFT PoA
Block time 1s
Block gas limit 70778880
Max slots 276480
Average block utilization 59.34%
Total Transactions 30000
Transactions sent per second 1428
Type of transactions EOA to EOA transfers
[COUNT DATA]Transactions submitted = 30000Transactions failed = 0[APPROXIMATE TPS]Approximate number of transactions per second = 1428[TURN AROUND DATA]Average transaction turn around = 4.394900sFastest transaction turn around = 1.133980sSlowest transaction turn around = 7.258690sTotal loadbot execution time = 21.374620s[BLOCK DATA]Blocks required = 15Block #110 = 1268 txns (26628000 gasUsed / 70778880 gasLimit) utilization = 37.62%Block #111 = 2744 txns (57624000 gasUsed / 70778880 gasLimit) utilization = 81.41%Block #112 = 2333 txns (48993000 gasUsed / 70778880 gasLimit) utilization = 69.22%Block #113 = 1326 txns (27846000 gasUsed / 70778880 gasLimit) utilization = 39.34%Block #114 = 1852 txns (38892000 gasUsed / 70778880 gasLimit) utilization = 54.95%Block #115 = 2270 txns (47670000 gasUsed / 70778880 gasLimit) utilization = 67.35%Block #116 = 559 txns (11739000 gasUsed / 70778880 gasLimit) utilization = 16.59%Block #117 = 3370 txns (70770000 gasUsed / 70778880 gasLimit) utilization = 99.99%Block #118 = 910 txns (19110000 gasUsed / 70778880 gasLimit) utilization = 27.00%Block #119 = 3132 txns (65772000 gasUsed / 70778880 gasLimit) utilization = 92.93%Block #120 = 1207 txns (25347000 gasUsed / 70778880 gasLimit) utilization = 35.81%Block #121 = 3370 txns (70770000 gasUsed / 70778880 gasLimit) utilization = 99.99%Block #122 = 2734 txns (57414000 gasUsed / 70778880 gasLimit) utilization = 81.12%Block #123 = 2737 txns (57477000 gasUsed / 70778880 gasLimit) utilization = 81.21%Block #124 = 188 txns (3948000 gasUsed / 70778880 gasLimit) utilization = 5.58%[[COUNT DATA]
Transactions submitted = 30000
Transactions failed = 0
[APPROXIMATE TPS]
Approximate number of transactions per second = 1428
[TURN AROUND DATA]
Average transaction turn around = 4.394900s
Fastest transaction turn around = 1.133980s
Slowest transaction turn around = 7.258690s
Total loadbot execution time = 21.374620s
[BLOCK DATA]
Blocks required = 15
Block #110 = 1268 txns (26628000 gasUsed / 70778880 gasLimit) utilization = 37.62%
Block #111 = 2744 txns (57624000 gasUsed / 70778880 gasLimit) utilization = 81.41%
Block #112 = 2333 txns (48993000 gasUsed / 70778880 gasLimit) utilization = 69.22%
Block #113 = 1326 txns (27846000 gasUsed / 70778880 gasLimit) utilization = 39.34%
Block #114 = 1852 txns (38892000 gasUsed / 70778880 gasLimit) utilization = 54.95%
Block #115 = 2270 txns (47670000 gasUsed / 70778880 gasLimit) utilization = 67.35%
Block #116 = 559 txns (11739000 gasUsed / 70778880 gasLimit) utilization = 16.59%
Block #117 = 3370 txns (70770000 gasUsed / 70778880 gasLimit) utilization = 99.99%
Block #118 = 910 txns (19110000 gasUsed / 70778880 gasLimit) utilization = 27.00%
Block #119 = 3132 txns (65772000 gasUsed / 70778880 gasLimit) utilization = 92.93%
Block #120 = 1207 txns (25347000 gasUsed / 70778880 gasLimit) utilization = 35.81%
Block #121 = 3370 txns (70770000 gasUsed / 70778880 gasLimit) utilization = 99.99%
Block #122 = 2734 txns (57414000 gasUsed / 70778880 gasLimit) utilization = 81.12%
Block #123 = 2737 txns (57477000 gasUsed / 70778880 gasLimit) utilization = 81.21%
Block #124 = 188 txns (3948000 gasUsed / 70778880 gasLimit) utilization = 5.58%
[AVERAGE BLOCK UTILIZATION]
Average utilization across all blocks = 59.34%

Environment ERC20

Cloud provider AWS EC2
Instance size c6a.48xlarge
Networking private subnet
Operating system Linux Ubuntu 20.04 LTS - Focal Fossa
File descriptor limit 65535
Max user processes 65535
Exzo Network version Release v0.1.0
Validator nodes 4
Non-validator nodes 0
Consensus IBFT PoA
Block time 1s
Block gas limit 47185920
Max slots 184320
Average block utilization 81.29%
Total Transactions 50000
Transactions sent per second 1111
Type of transactions ERC20 to ERC20 transfers
[COUNT DATA]
Transactions submitted = 50000
Transactions failed = 0
[APPROXIMATE TPS]
Approximate number of transactions per second = 1111
[CONTRACT DEPLOYMENT INFO]
Contract address = 0x33123b7a4420798b1D208ABBac657B7b103edbD9
Total execution time = 2.006580s
[CONTRACT DEPLOYMENT BLOCK DATA]
Blocks required = 1
Block #174 = 1 txns (1055757 gasUsed / 47185920 gasLimit) utilization = 2.24%
[TURN AROUND DATA]
Average transaction turn around = 8.856780s
Fastest transaction turn around = 2.006200s
Slowest transaction turn around = 15.977210s
Total loadbot execution time = 45.906450s
[BLOCK DATA]
Blocks required = 38
Block #176 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #177 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #178 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #179 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #180 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #181 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #182 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #183 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #184 = 688 txns (20055200 gasUsed / 47185920 gasLimit) utilization = 42.50%
Block #185 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #186 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #187 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #188 = 317 txns (9240550 gasUsed / 47185920 gasLimit) utilization = 19.58%
Block #189 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #190 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #191 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #192 = 89 txns (2594350 gasUsed / 47185920 gasLimit) utilization = 5.50%
Block #193 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #194 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #195 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #196 = 795 txns (23174250 gasUsed / 47185920 gasLimit) utilization = 49.11%
Block #197 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #198 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #199 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #200 = 594 txns (17315100 gasUsed / 47185920 gasLimit) utilization = 36.70%
Block #201 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #202 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #203 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #204 = 208 txns (6063200 gasUsed / 47185920 gasLimit) utilization = 12.85%
Block #205 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #206 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #207 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #208 = 30 txns (874500 gasUsed / 47185920 gasLimit) utilization = 1.85%
Block #209 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #210 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #211 = 1618 txns (47164700 gasUsed / 47185920 gasLimit) utilization = 99.96%
Block #212 = 177 txns (5159550 gasUsed / 47185920 gasLimit) utilization = 10.93%
Block #213 = 180 txns (5247000 gasUsed / 47185920 gasLimit) utilization = 11.12%
[AVERAGE BLOCK UTILIZATION]
Average utilization across all blocks = 81.29%

Environment ERC721

Cloud provider AWS EC2
Instance size c6a.48xlarge
Networking private subnet
Operating system Linux Ubuntu 20.04 LTS - Focal Fossa
File descriptor limit 65535
Max user processes 65535
Exzo Network version Release v0.4.1
Validator nodes 4
Non-validator nodes 0
Consensus IBFT PoA
Block time 1s
Block gas limit 94371840
Max slots 1000000
Average block utilization 93.88%
Total Transactions 30000
Transactions sent per second 714
Type of transactions ERC721 token mint
[COUNT DATA]
Transactions submitted = 30000
Transactions failed = 0
[APPROXIMATE TPS]
Approximate number of transactions per second = 714
[CONTRACT DEPLOYMENT INFO]
Contract address = 0x4Ceff7F2f9fC9f150a42AfcabceEDABeB723E56f
Total execution time = 2.005500s
[CONTRACT DEPLOYMENT BLOCK DATA]
Blocks required = 1
Block #59 = 1 txns (2528772 gasUsed / 94371840 gasLimit) utilization = 2.68%
[TURN AROUND DATA]
Average transaction turn around = 13.191620s
Fastest transaction turn around = 2.034710s
Slowest transaction turn around = 23.686180s
Total loadbot execution time = 42.864140s
[BLOCK DATA]
Blocks required = 39
Block #61 = 818 txns (94237644 gasUsed / 94371840 gasLimit) utilization = 99.86%
Block #62 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #63 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #64 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #65 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #66 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #67 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #68 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #69 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #70 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #71 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #72 = 510 txns (58738980 gasUsed / 94371840 gasLimit) utilization = 62.24%
Block #73 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #74 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #75 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #76 = 674 txns (77624892 gasUsed / 94371840 gasLimit) utilization = 82.25%
Block #77 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #78 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #79 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #80 = 179 txns (20621682 gasUsed / 94371840 gasLimit) utilization = 21.85%
Block #81 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #82 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #83 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #84 = 231 txns (26609898 gasUsed / 94371840 gasLimit) utilization = 28.20%
Block #85 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #86 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #87 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #88 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #89 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #90 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #91 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #92 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #93 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #94 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #95 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #96 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #97 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #98 = 819 txns (94322802 gasUsed / 94371840 gasLimit) utilization = 99.95%
Block #99 = 561 txns (64612038 gasUsed / 94371840 gasLimit) utilization = 68.47%
[AVERAGE BLOCK UTILIZATION]
Average utilization across all blocks = 93.88%