Skip to content
This repository has been archived by the owner on Jul 11, 2022. It is now read-only.

Commit

Permalink
joined erc20 and erc721 results under one section
Browse files Browse the repository at this point in the history
  • Loading branch information
ZeljkoBenovic committed Mar 3, 2022
1 parent 8cb1b71 commit 5bd952c
Showing 1 changed file with 133 additions and 146 deletions.
279 changes: 133 additions & 146 deletions docs/get-started/performance-reports.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

<details>
<summary>Host Configuration</summary>
<div>
<div>
<table>
<tr>
<td>Cloud provider</td>
<td>AWS</td>
</tr>
<tr>
<td>Instance size</td>
<td>t2.xlarge</td>
</tr>
<tr>
<td>Networking</td>
<td>private subnet</td>
</tr>
<tr>
<td>Operating system</td>
<td>Linux Ubuntu 20.04 LTS - Focal Fossa</td>
</tr>
<tr>
<td>File descriptor limit</td>
<td>65535</td>
</tr>
<tr>
<td>Max user processes</td>
<td>65535</td>
</tr>
</table>
</div>
<br/>
</div>
</details>

<details>
<summary>Blockchain Configuration</summary>
<div>
<div>
<table>
<tr>
<td>Polygon Edge version</td>
<td>Commit <a href="https://github.com/0xPolygon/polygon-edge/commit/8377162281d1a2e4342ae27cd4e5367c4364aee2">8377162281d1a2e4342ae27cd4e5367c4364aee2</a> on develop branch</td>
</tr>
<tr>
<td>Validator nodes</td>
<td>30</td>
</tr>
<tr>
<td>Non-validator nodes</td>
<td>0</td>
</tr>
<tr>
<td>Consensus</td>
<td>IBFT PoA</td>
</tr>
<tr>
<td>Block time</td>
<td>2000ms</td>
</tr>
<tr>
<td>Block gas limit</td>
<td>5242880</td>
</tr>
</table>
</div>
<br/>
</div>
</details>

<details>
<summary>Loadbot Configuration</summary>
<div>
<div>
<table>
<tr>
<td>Total Transactions</td>
<td>10000</td>
</tr>
<tr>
<td>Transactions sent per second</td>
<td>400</td>
</tr>
<tr>
<td>Type of transactions</td>
<td>EOA to EOA transfers</td>
</tr>
</table>
</div>
<br/>
</div>
</details>


## 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 |
| ------ | ----- |
Expand All @@ -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

<details>
<summary>Host Configuration</summary>
Expand Down Expand Up @@ -308,32 +203,7 @@ since block gas limit & block time are set to sane values that don't consume muc

</details>


## 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

<details>
<summary>Host Configuration</summary>
Expand Down Expand Up @@ -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%

</details>


## 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

<details>
<summary>Host Configuration</summary>
<div>
<div>
<table>
<tr>
<td>Cloud provider</td>
<td>AWS</td>
</tr>
<tr>
<td>Instance size</td>
<td>t2.xlarge</td>
</tr>
<tr>
<td>Networking</td>
<td>private subnet</td>
</tr>
<tr>
<td>Operating system</td>
<td>Linux Ubuntu 20.04 LTS - Focal Fossa</td>
</tr>
<tr>
<td>File descriptor limit</td>
<td>65535</td>
</tr>
<tr>
<td>Max user processes</td>
<td>65535</td>
</tr>
</table>
</div>
<br/>
</div>
</details>

<details>
<summary>Blockchain Configuration</summary>
<div>
<div>
<table>
<tr>
<td>Polygon Edge version</td>
<td>Commit <a href="https://github.com/0xPolygon/polygon-edge/commit/8377162281d1a2e4342ae27cd4e5367c4364aee2">8377162281d1a2e4342ae27cd4e5367c4364aee2</a> on develop branch</td>
</tr>
<tr>
<td>Validator nodes</td>
<td>30</td>
</tr>
<tr>
<td>Non-validator nodes</td>
<td>0</td>
</tr>
<tr>
<td>Consensus</td>
<td>IBFT PoA</td>
</tr>
<tr>
<td>Block time</td>
<td>2000ms</td>
</tr>
<tr>
<td>Block gas limit</td>
<td>5242880</td>
</tr>
</table>
</div>
<br/>
</div>
</details>

<details>
<summary>Loadbot Configuration</summary>
<div>
<div>
<table>
<tr>
<td>Total Transactions</td>
<td>10000</td>
</tr>
<tr>
<td>Transactions sent per second</td>
<td>400</td>
</tr>
<tr>
<td>Type of transactions</td>
<td>EOA to EOA transfers</td>
</tr>
</table>
</div>
<br/>
</div>
</details>

0 comments on commit 5bd952c

Please sign in to comment.