Polygon Block Performance
Goal:
In this dashboard, the goal is to observe and compare the performance of each blockchain in block production.
Questions:
- What is the average time between blocks on Polygon?
- What was the maximum and minimum recorded time between two blocks?
- How many transactions are done in a block on average?
- How do these numbers compare to L1 such as Flow or Solana, or other L2 such as Arbitrum or Optimism?
Solutions:
To answer this question, I compare Polygon performance with the below blockchains:
Flow, Solana, Optimism, and Arbitrum.
I used core.fact_blocks table for each above schema.
My method is based on this assumption: ==each block_number is unique in core.fact_blocks table.==
So for each block_number
- get it block_timestamp
- find next block_timestamp (use lead function and order by block_number)
- calculate the difference between the two above block_timestamp.
As you can see, there are a lot of spikes in all three charts. As I explained in the warning part, sometimes all blocks may not be recorded. In this case, the time between two blocks is not necessarily two consecutive blocks. So it is normal to see unreal values.
Anyway, according to my analysis:
-
In the normal state, Polygon has the most average time between their blocks along these blockchains.
The order is: Polygon > Flow > Arbitrum > Solana > Optimism
-
In the normal state, Arbitrum has the most maximum time between their blocks along these blockchains.
The order is: Arbitrum > Optimism > Polygon > Solana > Flow
-
The minimum time between Polygon blocks is equal to 2 but the rest is 0.
Conclusion:
- In some networks due to outages or some other reasons, we lost some blocks therefore the time between two blocks increased unexpectedly. for example, a lot of outages happen all the time in Solana, the Arbiterum faced a lot of problems due to the Odyssey campaign. Also, Flow sometimes becomes unavailable due to some updates.
- The order of average bocks time among these blockchains is Polygon > Flow > Arbitrum > Solana > Optimism.
- The order of number of transactions per bock among these blockchains is Solana > Polygon > Flow > Arbitrum > Optimism.
This chart shows the daily average number of transactions in each block.
This chart is precise because I used tx_count column on core.fact_blocks table.
According to my analysis:
The order of blockchains based on the number of transactions on each block is:
Solana > Polygon > Flow > Arbitrum > Optimism
These three bar chart shows the average amount of each daily chart.
- The average time between Solana blocks is minimum and Polygon has maximum block time.
- Flow has maximum block time among others.
- The minimum block times for polygon are constant and equal to two.
This chart shows the average amount of transactions count per block on each blockchain.
In this chart, it is quite clear that the highest number of transactions per block occurs in Solana with an average of 1763.
Next is Polygon, which has approximately 74.8 transactions per block.
Then flow, which has 12.8 transactions in each block, then Arbitrum, which has 1.16 transactions in each block, and finally optimism, which has only one transaction in each block.
I consider two periods for showing results:
- since the beginning of 2022 (Unfortunately data for most of the blockchains started recently so we didn’t have their history)
- Since mid-Jun (All blockchains have data from the middle of June, so the comparison is more logical.)
Based on our assumption, the next block_timestamp must be the next block_number. But there are exceptions. For example, some blocks may not have been recorded, in which case the calculations will not make sense.
This could be because of a network outage or maybe the Flipside data is not complete.
The data of following charts started in the beginning of 2022.
The data of following charts started in mid-Jun to make better comparisons. Also, I filtered the abnormal amount of daily average time between to blocks chart.
For example, I discarded all the data whose difference between blocks was more than 25 seconds.