Skip to main content

Performance Benchmarks

This document presents performance benchmarks and analysis for Supernets, comparing versions 0.6.1, 0.7.0-alpha1, and 0.7.3-beta1 and showcasing significant improvements in transaction throughput, scalability, and efficiency in the latest 0.7.x versions utilizing the PolyBFT consensus algorithm.

Upcoming benchmarks

Upcoming performance benchmarks will be available for v0.8.x and 0.9.x releases shortly.

Test Environment

The performance tests were conducted in a controlled environment to ensure accuracy and consistency in the results. The environment setup includes the following components:

Network Configuration

  • Network: Polygon Edge
  • Consensus Algorithm: IBFT (0.6.x versions) and PolyBFT (0.7.x versions)

Instance Types

The tests utilized various Amazon Web Services (AWS) instance types to evaluate the impact of varying compute resources on network performance:

  • t2.xlarge
  • t2.micro
  • c5.2xlarge
  • c6a.48xlarge
  • x2iezn.2xlarge
  • c6a.xlarge
General instance specifications
  • t2.xlarge
    • vCPU: 4
    • Memory: 16 GiB
    • Network Performance: Up to 5 Gigabit
    • EBS-Optimized: Up to 2,750 Mbps
  • t2.micro
    • vCPU: 1
    • Memory: 1 GiB
    • Network Performance: Low to Moderate
    • EBS-Optimized: Not available
  • c5.2xlarge
    • vCPU: 8
    • Memory: 16 GiB
    • Network Performance: Up to 10 Gigabit
    • EBS-Optimized: Up to 3,500 Mbps
  • c6a.48xlarge
    • vCPU: 192
    • Memory: 768 GiB
    • Network Performance: 50 Gigabit
    • EBS-Optimized: 14,000 Mbps
  • x2iezn.2xlarge
    • vCPU: 8
    • Memory: 64 GiB
    • Network Performance: Up to 25 Gigabit
    • EBS-Optimized: Up to 3,500 Mbps
  • c6a.xlarge
    • vCPU: 4
    • Memory: 16 GiB
    • Network Performance: Up to 10 Gigabit
    • EBS-Optimized: Up to 4,750 Mbps

Transaction Types

The tests were performed using three different types of transactions to assess the network's capability to handle various use cases:

  • EOA to EOA: Representing simple value transfers between user accounts.
  • ERC20: Token transfers, simulating the exchange of tokens on the network.
  • ERC721: Non-fungible token (NFT) transfers representing the exchange of unique digital assets.

Performance Metrics

The following key performance metrics were considered during the tests:

  • Transactions per second (TPS) sent: The number of transactions submitted to the network per second.
  • Transactions per second (TPS) mined: The number of transactions successfully processed and included in the blockchain per second.
  • Gas per transaction: The amount of gas consumed by each transaction, representing the computational cost.
  • Gas per second: The total amount consumed per second indicates the network's overall computational capacity.

Performance Observations

General comparison of 0.6.x (IBFT) and 0.7.x (PolyBFT) Versions
  • Higher Transactions Per Second (TPS): The 0.7.x versions consistently demonstrate higher TPS rates, both sent and mined, than the 0.6.x versions. This improvement indicates that the newer versions can process more transactions in a shorter period.

  • Enhanced Scalability: The 0.7.x versions significantly increase the block gas limit, suggesting that the network can handle more complex transactions and support larger smart contracts. This increased gas limit contributes to the overall scalability of the network

Summary of test results

Transaction TypeTPS SentTPS MinedGas per SecondGas per TransactionInstance Type(s)
EOA to EOA2,6002,52553,025,00021,000x2iezn.2xlarge
ERC201,30072432,385,65029,150x2iezn.2xlarge, c6a.48xlarge
ERC72180057482,222,812115,158x2iezn.2xlarge, c5.2xlarge
EOA to EOA transaction tests
VersionValidatorsConsensusInstance TypeBlock TimeBlock Gas LimitToolTransactionsTPS SentTPS MinedGas per txGas per sec
v0.6.14ibftx2iezn.2xlarge1200,000,000polycli30,0001,9001,66621,00034,986,000
v0.7.0-alpha14ibftx2iezn.2xlarge1200,000,000polycli30,0001,9001,66621,00034,986,000
v0.7.0-alpha14polybftx2iezn.2xlarge1200,000,000polycli30,0001,8001,76421,00037,044,000
v0.7.0-alpha14polybftc6a.48xlarge170,778,880Loadbot30,0001,42849121,00010,311,000
v0.7.0-alpha14polybftc6a.48xlarge1200,000,000polycli30,0001,9001,87521,00039,375,000
e6f620fd4polybftx2iezn.2xlarge2200,000,000polycli100,0002,2502,12721,00044,667,000
v0.7.0-alpha24polybftx2iezn.2xlarge2200,000,000polycli100,0002,3002,22221,00046,662,000
v0.7.3-beta14polybftx2iezn.2xlarge2200,000,000polycli476,0002,2002,07821,00043,638,000
v0.7.3-beta14polybftc6a.xlarge2200,000,000polycli476,0002,20075621,00015,876,000
v0.7.3-beta14polybftc6a.xlarge550,000,000polycli100,00047540021,0008,400,000
v0.7.3-beta14polybftx2iezn.2xlarge5200,000,000polycli500,0002,6002,52521,00053,025,000
ERC20 transaction tests
VersionValidatorsConsensusInstance TypeBlock TimeBlock Gas LimitToolTransactionsTPS SentTPS MinedGas per txGas per sec
v0.6.14ibftx2iezn.2xlarge180,000,000polycli50,00070071428,25820,176,212
v0.7.0-alpha14ibftx2iezn.2xlarge150,000,000polycli50,00070070428,25819,893,632
v0.7.0-alpha14polybftx2iezn.2xlarge150,000,000polycli50,00070070428,25819,893,632
v0.7.0-alpha14polybftc6a.48xlarge147,185,920Loadbot50,0001,11160229,15017,548,300
v0.7.0-alpha14polybftc6a.48xlarge1200,000,000polycli50,00070068428,25819,328,472
e6f620fd4polybftx2iezn.2xlarge2200,000,000polycli50,0001,30069728,25819,695,826
v0.7.1-alpha24polybftx2iezn.2xlarge2200,000,000polycli50,00065066728,24018,836,080
v0.7.3-beta14polybftx2iezn.2xlarge2200,000,000polycli50,00060054923,44612,871,854
v0.7.3-beta14polybftc6a.xlarge2200,000,000polycli50,00060028523,4466,682,110
v0.7.3-beta14polybftc6a.xlarge550,000,000polycli50,00042519423,4464,548,524
v0.7.3-beta14polybftx2iezn.2xlarge545,000,000polycli100,00075072428,31720,501,508
ERC721 transaction tests
VersionValidatorsConsensusInstance TypeBlock TimeBlock Gas LimitToolTypeTransactionsTPS SentTPS MinedGas per txGas per sec
v0.6.14ibftx2iezn.2xlarge1100,000,000polycliERC72130,00070069748,11333,534,761
v0.7.0-alpha14ibftx2iezn.2xlarge1100,000,000polycliERC72130,00070069748,11333,534,761
v0.7.0-alpha14polybftx2iezn.2xlarge1100,000,000polycliERC72130,00070068148,11332,764,953
v0.7.0-alpha14polybftc6a.48xlarge194,371,840LoadbotERC72130,000714428115,15849,287,624
v0.7.0-alpha14polybftc6a.48xlarge1200,000,000polycliERC72130,00070052648,11325,307,438
e6f620fd4polybftx2iezn.2xlarge2200,000,000polycliERC72150,00080057448,11327,616,862
v0.7.1-alpha24polybftx2iezn.2xlarge2200,000,000polycliERC72150,00075067548,00032,400,000
v0.7.3-beta14polybftx2iezn.2xlarge2200,000,000polycliERC72150,00060047150,10523,599,455
v0.7.3-beta14polybftc6a.xlarge2200,000,000polycliERC72150,00060025750,10512,876
v0.7.3-beta14polybftc6a.xlarge550,000,000polycliERC72150,00020014550,1057,265,225
v0.7.3-beta14polybftx2iezn.2xlarge545,000,000polycliERC721100,00065053150,10526,605,755

Upon analyzing the performance benchmarks, several improvements are evident in the 0.7.x versions compared to 0.6.x versions. These improvements can be attributed to the introduction of Supernets and the transition from the IBFT consensus mechanism to PolyBFT. The key benefits and improvements observed in the 0.7.x versions are as follows.

Table 1: Comparing 0.6.1, 0.7.0-alpha1, and 0.7.3-beta1

VersionConsensusInstance TypeBlock Gas LimitTransactionsTPS SentTPS MinedGas per txGas per sec
0.6.1IBFTx2iezn.2xlarge200,000,00030,0001,9001,66621,00034,986,000
0.7.0-alpha2PolyBFTx2iezn.2xlarge200,000,000100,0002,3002,22221,00046,662,000
0.7.3-beta1PolyBFTx2iezn.2xlarge200,000,000500,0002,6002,52521,00053,025,000

Table 1 compares the performance for three different versions (0.6.1, 0.7.0-alpha1, and 0.7.3-beta1) using the same instance type (x2iezn.2xlarge) and block gas limit (200,000,000).

  • v0.6.1, which uses the IBFT consensus algorithm, has slightly lower performance metrics than v0.7.0-alpha2, which uses the PolyBFT consensus algorithm. v0.6.1 processed 30,000 transactions at a rate of 1,900 TPS sent and 1,666 TPS mined, while v0.7.0-alpha2 processed 100,000 transactions at a rate of 2,300 TPS sent and 2,222 TPS mined. They both had the same gas usage per transaction (21,000) but different gas usage per second (34,986,000 for v0.6.1 and 46,662,000 for v0.7.0-alpha2). This indicates that the transition from IBFT to PolyBFT in the alpha release provided significant improvements in performance.

  • v0.7.3-beta1 shows even more improved performance compared to the previous two versions. This version has a significant increase in the number of transactions processed (500,000) and a higher TPS sent (2,600), and TPS mined (2,525). Despite the significantly increased throughput, the gas usage per transaction remains constant at 21,000. The gas usage per second has also increased to 53,025,000, reflecting the higher transaction throughput. Overall, the beta release shows a significant improvement in performance over the earlier alpha release.