Project Road Map - Performance analysis and benchmarking of Besu using Caliper with complex workloads
Abstract
The objective of this project is to perform a performance and benchmarking analysis of BESU, a Hyperledger project, in private networks (QBFT, IBFT, CLIQUE) using Hyperledger Caliper. This project aims to identify the strengths and weaknesses of BESU in terms of maximum transactions per second, latency, computation power, hard disk space, etc. Additionally, this project aims to add support for more complex and well-known workloads like ERC20, ERC721 in Caliper, which are used by general Ethereum users. This project will provide valuable insights into the performance of BESU and will help developers optimise it for better performance.
Mentor and Mentee
Mentors: Nischal Sharma and George Tebrean
Mentor's Email: Nischal Sharma, george@web3labs.com
Mentee: Suyash Nayan
Mentee's Email: suyashnyn1@gmail.com
Deliverables
The expected deliverables of this project are:
- A detailed report on the performance of BESU in private networks (QBFT, IBFT2, CLIQUE)
- A set of benchmarks for BESU in private network with different configurations
- Support for ERC20, ERC721, etc complex workloads in Hyperledger Caliper
- Finding and solving bottlenecks in Besu to improve performance
- Documentation on how to use the benchmarking tool and the new workloads
- Documentation of the benchmark results and improvements
Milestones
Evaluation 1
- Create custom workloads
- Review and test the custom workloads data
Evaluation 2
- Workloads integration into Caliper
- Run and Document Benchmarking Tests with different workloads
Evaluation 3
- Tweak and Tune Besu configs and parameters to get better performance
- Find bottlenecks in Besu and create issue tickets
Evaluation 4
- Suggest and Solve the issues in Besu Repo
- Document everything
- Research document which contains the performance metrics comparison between the before and after data.
Timeline
Week # | Week | Activity | Status |
|---|---|---|---|
1-2 | June 14 - June 28 | Onboard Suyash, Reading and getting familiar with Besu | |
3-4 | June 29 - July 14 | Testing of the default workloads with Caliper, Create custom Workloads | |
5-6 | July 15 -Jun 30 | 1st Evaluation and Document work done | |
7-8 | July 31 - Aug 14 | Tweak config and Parameters and Run tests with custom workloads | |
9-10 | Aug 15 - Aug 30 | Tuning of Besu to get better performance | |
11-12 | Aug 31 - Sept 14 | 2nd Evaluation. Find as many bottlenecks in Besu | |
13-14 | Sept 15 - Sept 29 | Find bottlecks and create issues in Besu repo | |
15-16 | Sept 30 - Oct 12 | 3rd Evaluation. Have the implementations ready. Document the possible suggestions for improvement | |
17-18 | Oct 13 - Oct 29 | Start implementing solutions in Besu Repo and test | |
19-20 | Oct 30 - Nov 11 | Rerun Benchmarking test to check improvement in Besu | |
| 21-22 | Nov 12 - Nov 29 | Research document which contains the performance metrics comparison between the before and after data. Final Evaluation |