From 46624632fb8278b9f9567d461e994a9a7c01e300 Mon Sep 17 00:00:00 2001 From: ZeljkoBenovic Date: Fri, 18 Feb 2022 15:40:29 +0100 Subject: [PATCH 1/6] Added erc20 loadbot results --- docs/get-started/performance-reports.md | 123 ++++++++++++++++++++++++ 1 file changed, 123 insertions(+) diff --git a/docs/get-started/performance-reports.md b/docs/get-started/performance-reports.md index 26659e9..84ad963 100644 --- a/docs/get-started/performance-reports.md +++ b/docs/get-started/performance-reports.md @@ -120,4 +120,127 @@ and since block gas limit & block time are set to sane values that don't consume
+ + + +## February 18th 2022 + +### Summary + +This test was done to measure the SC ERC20 token transfer functionality with heavy loads and speed of the transactions. + +The goal was to check if everything is working as expected during heavy load with ERC20 token transfers. 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 not to strive to reach a maximum possible TPS, +since block gas limit & block time are set to sane values that don't consume much system resources, and would allow this to run on commodity hardware. + +### Results + +| Metric | Value | +| ------ | ----- | +| Transactions per second | 4 | +| Transactions failed | 0 | +| Transactions succeeded | 300 | +| ERC20 transaction run time | 74.143900s | +| SC Deploy time | 4.054110s | + +### Environment + +
+ Host Configuration +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Cloud providerAWS
Instance sizet2.micro
Networkingprivate subnet
Operating systemLinux Ubuntu 20.04 LTS - Focal Fossa
File descriptor limit65535
Max user processes65535
+
+
+
+
+ +
+ Blockchain Configuration +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Polygon Edge versionCommit bd192e4677a2b15e67765c3949c13d1e43d945eb on develop branch
Validator nodes6
Non-validator nodes0
ConsensusIBFT PoA
Block time2s
Block gas limit5242880
Average block utilization4%
+
+
+
+
+ +
+ Loadbot Configuration +
+
+ + + + + + + + + + + + + +
Total Transactions300
Transactions sent per second100
Type of transactionsERC20 to ERC20 transfers
+
+
+
\ No newline at end of file From 71e06dbf163e5393e8ea4a973029b30e0440d97a Mon Sep 17 00:00:00 2001 From: ZeljkoBenovic Date: Wed, 2 Mar 2022 21:27:50 +0100 Subject: [PATCH 2/6] Added ERC20 and ERC721 loadbot results --- docs/get-started/performance-reports.md | 288 +++++++++++++++++++++++- 1 file changed, 279 insertions(+), 9 deletions(-) diff --git a/docs/get-started/performance-reports.md b/docs/get-started/performance-reports.md index 84ad963..cb639dc 100644 --- a/docs/get-started/performance-reports.md +++ b/docs/get-started/performance-reports.md @@ -123,7 +123,7 @@ and since block gas limit & block time are set to sane values that don't consume -## February 18th 2022 +## March 2nd 2022 ### Summary @@ -140,11 +140,11 @@ since block gas limit & block time are set to sane values that don't consume muc | Metric | Value | | ------ | ----- | -| Transactions per second | 4 | +| Transactions per second | 65 | | Transactions failed | 0 | -| Transactions succeeded | 300 | -| ERC20 transaction run time | 74.143900s | -| SC Deploy time | 4.054110s | +| Transactions succeeded | 5000 | +| ERC20 transaction run time | 76.681690s | +| SC Deploy time | 4.048250s | ### Environment @@ -190,7 +190,7 @@ since block gas limit & block time are set to sane values that don't consume muc - + @@ -214,7 +214,7 @@ since block gas limit & block time are set to sane values that don't consume muc - +
Polygon Edge versionCommit bd192e4677a2b15e67765c3949c13d1e43d945eb on develop branchCommit 8a033aa1afb191abdac04636d318f83f32511f3c on develop branch
Validator nodes
Average block utilization4%95%
@@ -229,11 +229,11 @@ since block gas limit & block time are set to sane values that don't consume muc - + - + @@ -243,4 +243,274 @@ since block gas limit & block time are set to sane values that don't consume muc
+ + +
+ Loadbot log + + ````bash + =====[LOADBOT RUN]===== + + [COUNT DATA] + Transactions submitted = 5000 + Transactions failed = 0 + + [APPROXIMATE TPS] + Approximate number of transactions per second = 65 + + [TURN AROUND DATA] + Average transaction turn around = 25.034950s + Fastest transaction turn around = 3.056460s + Slowest transaction turn around = 47.366220s + Total loadbot execution time = 76.681690s + + [CONTRACT DEPLOYMENT DATA] + Contract address = 0x7224Dad537291bb6bA277d3e1cCD48cf87B208E7 + Total execution time = 4.048250s + Blocks required = 1 + + Block #557781 = 1 txns (1055769 gasUsed / 5242880 gasLimit) utilization = 20% + + Average utilization across all blocks: 20% + + [BLOCK DATA] + Blocks required = 29 + + Block #557783 = 178 txns (5212100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557785 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557786 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557787 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557788 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557789 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557791 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557792 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557793 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557794 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557795 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557797 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557798 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557799 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557800 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557801 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557803 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557804 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557805 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557806 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557807 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557809 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557810 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557811 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557812 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557813 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557815 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557816 = 178 txns (5197100 gasUsed / 5242880 gasLimit) utilization = 99% + Block #557817 = 16 txns (474800 gasUsed / 5242880 gasLimit) utilization = 9% + + Average utilization across all blocks: 95% + ```` +
+ + +## March 2nd 2022 + +### Summary + +This test was done to measure the SC ERC721 token transfer functionality with heavy loads and speed of the transactions. + +The goal was to check if everything is working as expected during heavy load with ERC721 token transfers. 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 not to strive to reach a maximum possible TPS, +since block gas limit & block time are set to sane values that don't consume much system resources, and would allow this to run on commodity hardware. + +### Results + +| Metric | Value | +| ------ | ----- | +| Transactions per second | 20 | +| Transactions failed | 0 | +| Transactions succeeded | 2000 | +| ERC721 transaction run time | 97.239920s | +| SC Deploy time | 3.048970s | + +### Environment + +
+ Host Configuration +
+
+
Total Transactions3005000
Transactions sent per second10065
Type of transactions
+ + + + + + + + + + + + + + + + + + + + + + + + +
Cloud providerAWS
Instance sizet2.micro
Networkingprivate subnet
Operating systemLinux Ubuntu 20.04 LTS - Focal Fossa
File descriptor limit65535
Max user processes65535
+ +
+ + + +
+ Blockchain Configuration +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Polygon Edge versionCommit 8a033aa1afb191abdac04636d318f83f32511f3c on develop branch
Validator nodes6
Non-validator nodes0
ConsensusIBFT PoA
Block time2s
Block gas limit5242880
Average block utilization94%
+
+
+
+
+ +
+ Loadbot Configuration +
+
+ + + + + + + + + + + + + +
Total Transactions2000
Transactions sent per second20
Type of transactionsERC721 to ERC721 transfers
+
+
+
+
+ +
+ Loadbot log + + ````bash + =====[LOADBOT RUN]===== + + [COUNT DATA] + Transactions submitted = 2000 + Transactions failed = 0 + + [APPROXIMATE TPS] + Approximate number of transactions per second = 20 + + [TURN AROUND DATA] + Average transaction turn around = 43.034620s + Fastest transaction turn around = 4.007210s + Slowest transaction turn around = 84.184340s + Total loadbot execution time = 97.239920s + + [CONTRACT DEPLOYMENT DATA] + Contract address = 0x79D9167FcCC5087D28B2D0cDA27ffAA23A731F51 + Total execution time = 3.048970s + Blocks required = 1 + + Block #558955 = 1 txns (2528760 gasUsed / 5242880 gasLimit) utilization = 48% + + Average utilization across all blocks: 48% + + [BLOCK DATA] + Blocks required = 46 + + Block #558957 = 44 txns (5104824 gasUsed / 5242880 gasLimit) utilization = 97% + Block #558958 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558959 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558960 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558961 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558962 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558963 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558964 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558965 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558966 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558967 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558968 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558969 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558970 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558971 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558972 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558973 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558974 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558975 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558976 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558977 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558978 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558979 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558980 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558981 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558982 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558983 = 13 txns (1505298 gasUsed / 5242880 gasLimit) utilization = 28% + Block #558984 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558985 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558986 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558987 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558988 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558989 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558990 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558991 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558992 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558993 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558994 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558995 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558996 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558997 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558998 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558999 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #559000 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #559001 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #559002 = 8 txns (929568 gasUsed / 5242880 gasLimit) utilization = 17% + + Average utilization across all blocks: 94% + ````
\ No newline at end of file From 7468d89457c2dfd875ebf7aeac2852c19620c9ee Mon Sep 17 00:00:00 2001 From: ZeljkoBenovic Date: Wed, 2 Mar 2022 21:32:44 +0100 Subject: [PATCH 3/6] log display fix --- docs/get-started/performance-reports.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/get-started/performance-reports.md b/docs/get-started/performance-reports.md index cb639dc..1136fbd 100644 --- a/docs/get-started/performance-reports.md +++ b/docs/get-started/performance-reports.md @@ -140,6 +140,7 @@ since block gas limit & block time are set to sane values that don't consume muc | Metric | Value | | ------ | ----- | +| Transaction type | ERC20 | | Transactions per second | 65 | | Transactions failed | 0 | | Transactions succeeded | 5000 | @@ -248,7 +249,6 @@ since block gas limit & block time are set to sane values that don't consume muc
Loadbot log - ````bash =====[LOADBOT RUN]===== [COUNT DATA] @@ -307,7 +307,7 @@ since block gas limit & block time are set to sane values that don't consume muc Block #557817 = 16 txns (474800 gasUsed / 5242880 gasLimit) utilization = 9% Average utilization across all blocks: 95% - ```` +
@@ -328,6 +328,7 @@ since block gas limit & block time are set to sane values that don't consume muc | Metric | Value | | ------ | ----- | +| Transaction type | ERC721 | | Transactions per second | 20 | | Transactions failed | 0 | | Transactions succeeded | 2000 | @@ -435,8 +436,7 @@ since block gas limit & block time are set to sane values that don't consume muc
Loadbot log - - ````bash + =====[LOADBOT RUN]===== [COUNT DATA] @@ -512,5 +512,5 @@ since block gas limit & block time are set to sane values that don't consume muc Block #559002 = 8 txns (929568 gasUsed / 5242880 gasLimit) utilization = 17% Average utilization across all blocks: 94% - ```` +
\ No newline at end of file From 362cf53e7653820ad2666fef814a3a6924086810 Mon Sep 17 00:00:00 2001 From: ZeljkoBenovic Date: Wed, 2 Mar 2022 21:39:18 +0100 Subject: [PATCH 4/6] removed loadbot header in log --- docs/get-started/performance-reports.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/docs/get-started/performance-reports.md b/docs/get-started/performance-reports.md index 1136fbd..afd49e2 100644 --- a/docs/get-started/performance-reports.md +++ b/docs/get-started/performance-reports.md @@ -234,7 +234,7 @@ since block gas limit & block time are set to sane values that don't consume muc Transactions sent per second - 65 + 200 Type of transactions @@ -249,8 +249,6 @@ since block gas limit & block time are set to sane values that don't consume muc
Loadbot log - =====[LOADBOT RUN]===== - [COUNT DATA] Transactions submitted = 5000 Transactions failed = 0 @@ -422,7 +420,7 @@ since block gas limit & block time are set to sane values that don't consume muc Transactions sent per second - 20 + 200 Type of transactions @@ -437,8 +435,6 @@ since block gas limit & block time are set to sane values that don't consume muc
Loadbot log - =====[LOADBOT RUN]===== - [COUNT DATA] Transactions submitted = 2000 Transactions failed = 0 From 8cb1b718888466b6b0bf5131ed109435285e0bf0 Mon Sep 17 00:00:00 2001 From: ZeljkoBenovic Date: Wed, 2 Mar 2022 21:57:28 +0100 Subject: [PATCH 5/6] log fix --- docs/get-started/performance-reports.md | 150 ++++++++++++------------ 1 file changed, 75 insertions(+), 75 deletions(-) diff --git a/docs/get-started/performance-reports.md b/docs/get-started/performance-reports.md index afd49e2..34d54fc 100644 --- a/docs/get-started/performance-reports.md +++ b/docs/get-started/performance-reports.md @@ -248,7 +248,7 @@ since block gas limit & block time are set to sane values that don't consume muc
Loadbot log - + [COUNT DATA] Transactions submitted = 5000 Transactions failed = 0 @@ -435,78 +435,78 @@ since block gas limit & block time are set to sane values that don't consume muc
Loadbot log - [COUNT DATA] - Transactions submitted = 2000 - Transactions failed = 0 - - [APPROXIMATE TPS] - Approximate number of transactions per second = 20 - - [TURN AROUND DATA] - Average transaction turn around = 43.034620s - Fastest transaction turn around = 4.007210s - Slowest transaction turn around = 84.184340s - Total loadbot execution time = 97.239920s - - [CONTRACT DEPLOYMENT DATA] - Contract address = 0x79D9167FcCC5087D28B2D0cDA27ffAA23A731F51 - Total execution time = 3.048970s - Blocks required = 1 - - Block #558955 = 1 txns (2528760 gasUsed / 5242880 gasLimit) utilization = 48% - - Average utilization across all blocks: 48% - - [BLOCK DATA] - Blocks required = 46 - - Block #558957 = 44 txns (5104824 gasUsed / 5242880 gasLimit) utilization = 97% - Block #558958 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558959 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558960 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558961 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558962 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558963 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558964 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558965 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558966 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558967 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558968 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558969 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558970 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558971 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558972 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558973 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558974 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558975 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558976 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558977 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558978 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558979 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558980 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558981 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558982 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558983 = 13 txns (1505298 gasUsed / 5242880 gasLimit) utilization = 28% - Block #558984 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558985 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558986 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558987 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558988 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558989 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558990 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558991 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558992 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558993 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558994 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558995 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558996 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558997 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558998 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #558999 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #559000 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #559001 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% - Block #559002 = 8 txns (929568 gasUsed / 5242880 gasLimit) utilization = 17% - - Average utilization across all blocks: 94% - + [COUNT DATA] + Transactions submitted = 2000 + Transactions failed = 0 + + [APPROXIMATE TPS] + Approximate number of transactions per second = 20 + + [TURN AROUND DATA] + Average transaction turn around = 43.034620s + Fastest transaction turn around = 4.007210s + Slowest transaction turn around = 84.184340s + Total loadbot execution time = 97.239920s + + [CONTRACT DEPLOYMENT DATA] + Contract address = 0x79D9167FcCC5087D28B2D0cDA27ffAA23A731F51 + Total execution time = 3.048970s + Blocks required = 1 + + Block #558955 = 1 txns (2528760 gasUsed / 5242880 gasLimit) utilization = 48% + + Average utilization across all blocks: 48% + + [BLOCK DATA] + Blocks required = 46 + + Block #558957 = 44 txns (5104824 gasUsed / 5242880 gasLimit) utilization = 97% + Block #558958 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558959 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558960 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558961 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558962 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558963 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558964 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558965 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558966 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558967 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558968 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558969 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558970 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558971 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558972 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558973 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558974 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558975 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558976 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558977 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558978 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558979 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558980 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558981 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558982 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558983 = 13 txns (1505298 gasUsed / 5242880 gasLimit) utilization = 28% + Block #558984 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558985 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558986 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558987 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558988 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558989 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558990 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558991 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558992 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558993 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558994 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558995 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558996 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558997 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558998 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #558999 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #559000 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #559001 = 45 txns (5189970 gasUsed / 5242880 gasLimit) utilization = 98% + Block #559002 = 8 txns (929568 gasUsed / 5242880 gasLimit) utilization = 17% + + Average utilization across all blocks: 94% +
\ No newline at end of file From 5bd952c18c4f893370e43e081622333c601cac94 Mon Sep 17 00:00:00 2001 From: ZeljkoBenovic Date: Thu, 3 Mar 2022 09:37:46 +0100 Subject: [PATCH 6/6] joined erc20 and erc721 results under one section --- docs/get-started/performance-reports.md | 279 +++++++++++------------- 1 file changed, 133 insertions(+), 146 deletions(-) diff --git a/docs/get-started/performance-reports.md b/docs/get-started/performance-reports.md index 34d54fc..2d6eff9 100644 --- a/docs/get-started/performance-reports.md +++ b/docs/get-started/performance-reports.md @@ -6,137 +6,21 @@ All tests were done using the [Polygon Edge Loadbot](../additional-features/stre Every performance report you will find on this page is properly dated, environment clearly described and the testing method clearly explained. -## January 21st 2022 - -### Summary - -This test was done after the TxPool refactor which significantly improved performance (released in [v0.2.0](https://github.com/0xPolygon/polygon-edge/releases/v0.2.0)). - -The goal was to setup a large network consisting of 30 actively participating validators in order to properly stress test the -consensus and TxPool transaction gossiping as all transactions were sent to a single node's JSON-RPC. - -Our aim was not to strive to reach a maximum possible TPS, as the network size negatively impacts the performance, -and since block gas limit & block time are set to sane values that don't consume much system resources, and would allow this to run on commodity hardware. - -### Results - -| Metric | Value | -| ------ | ----- | -| Transactions per second | 344 | -| Transactions failed | 0 | -| Transactions succeeded | 10000 | -| Total run time | 30s | - -### Environment - -
- Host Configuration -
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Cloud providerAWS
Instance sizet2.xlarge
Networkingprivate subnet
Operating systemLinux Ubuntu 20.04 LTS - Focal Fossa
File descriptor limit65535
Max user processes65535
-
-
-
-
- -
- Blockchain Configuration -
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Polygon Edge versionCommit 8377162281d1a2e4342ae27cd4e5367c4364aee2 on develop branch
Validator nodes30
Non-validator nodes0
ConsensusIBFT PoA
Block time2000ms
Block gas limit5242880
-
-
-
-
- -
- Loadbot Configuration -
-
- - - - - - - - - - - - - -
Total Transactions10000
Transactions sent per second400
Type of transactionsEOA to EOA transfers
-
-
-
-
- ## March 2nd 2022 ### Summary -This test was done to measure the SC ERC20 token transfer functionality with heavy loads and speed of the transactions. +This test was done to measure the SC ERC20 and ERC721 token transfer functionality with heavy loads and speed of the transactions. -The goal was to check if everything is working as expected during heavy load with ERC20 token transfers. 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. +The goal was to check if everything is working as expected during heavy load with ERC20 and ERC721 token transfers. 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 not to strive to reach a maximum possible TPS, since block gas limit & block time are set to sane values that don't consume much system resources, and would allow this to run on commodity hardware. -### Results +### Results ERC20 | Metric | Value | | ------ | ----- | @@ -147,7 +31,18 @@ since block gas limit & block time are set to sane values that don't consume muc | ERC20 transaction run time | 76.681690s | | SC Deploy time | 4.048250s | -### Environment +### Results ERC721 + +| Metric | Value | +| ------ | ----- | +| Transaction type | ERC721 | +| Transactions per second | 20 | +| Transactions failed | 0 | +| Transactions succeeded | 2000 | +| ERC721 transaction run time | 97.239920s | +| SC Deploy time | 3.048970s | + +### Environment ERC20
Host Configuration @@ -308,32 +203,7 @@ since block gas limit & block time are set to sane values that don't consume muc
- -## March 2nd 2022 - -### Summary - -This test was done to measure the SC ERC721 token transfer functionality with heavy loads and speed of the transactions. - -The goal was to check if everything is working as expected during heavy load with ERC721 token transfers. 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 not to strive to reach a maximum possible TPS, -since block gas limit & block time are set to sane values that don't consume much system resources, and would allow this to run on commodity hardware. - -### Results - -| Metric | Value | -| ------ | ----- | -| Transaction type | ERC721 | -| Transactions per second | 20 | -| Transactions failed | 0 | -| Transactions succeeded | 2000 | -| ERC721 transaction run time | 97.239920s | -| SC Deploy time | 3.048970s | - -### Environment +### Environment ERC721
Host Configuration @@ -509,4 +379,121 @@ since block gas limit & block time are set to sane values that don't consume muc Average utilization across all blocks: 94% +
+ + +## January 21st 2022 + +### Summary + +This test was done after the TxPool refactor which significantly improved performance (released in [v0.2.0](https://github.com/0xPolygon/polygon-edge/releases/v0.2.0)). + +The goal was to setup a large network consisting of 30 actively participating validators in order to properly stress test the +consensus and TxPool transaction gossiping as all transactions were sent to a single node's JSON-RPC. + +Our aim was not to strive to reach a maximum possible TPS, as the network size negatively impacts the performance, +and since block gas limit & block time are set to sane values that don't consume much system resources, and would allow this to run on commodity hardware. + +### Results + +| Metric | Value | +| ------ | ----- | +| Transactions per second | 344 | +| Transactions failed | 0 | +| Transactions succeeded | 10000 | +| Total run time | 30s | + +### Environment + +
+ Host Configuration +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Cloud providerAWS
Instance sizet2.xlarge
Networkingprivate subnet
Operating systemLinux Ubuntu 20.04 LTS - Focal Fossa
File descriptor limit65535
Max user processes65535
+
+
+
+
+ +
+ Blockchain Configuration +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Polygon Edge versionCommit 8377162281d1a2e4342ae27cd4e5367c4364aee2 on develop branch
Validator nodes30
Non-validator nodes0
ConsensusIBFT PoA
Block time2000ms
Block gas limit5242880
+
+
+
+
+ +
+ Loadbot Configuration +
+
+ + + + + + + + + + + + + +
Total Transactions10000
Transactions sent per second400
Type of transactionsEOA to EOA transfers
+
+
+
\ No newline at end of file