Short description
The goal of the project is to provide a single entry/exit point to the performance analysis of Fabric by:
- Providing an open, well-designed, and thoroughly documented side-car service for the detailed performance analysis of distributed Fabric transaction traces.
- And integrating it into the Caliper load generation and response measurement process as part of the final report.
The project will heavily build on the PSWG's Performance Sandbox, aiming to "standardize" its flow and methodologies independently of the applied technologies.
Participants
Mentors:
- Haris Javaid, Senior Staff Researcher @ AMD Singapore (Discord: harisjavaid)
- Attila Klenik, Research Fellow @ BME Critical Systems Research Group, ftsrg (Discord: aklenik)
Mentee: Mayank Bondre (Discord: _makb)
Timeline
Week # | Date | Activity | Status |
---|---|---|---|
1 - 3 | June 5 - June 23 | Onboarding, getting to know the project goals, and designing a project plan. | |
4 - 6 | June 26 - July 14 | Getting to know Fabric, its consensus protocol, and defining a set of test chaincodes. | |
7 - 8 | July 17 - July 28 | Exploring and documenting the TX observability points of Fabric in various scenarios. | |
9 - 11 | July 31 - August 18 | Getting to know the OpenTelemetry, the Performance Sandbox, and consolidating the technical aspects of observability. | |
12 - 20 | August 21 - October 20 | Requirement, API, and analysis approach: design, implementation, and documentation of the external service. | |
21 - 23 | October 23 - November 10 | Getting to know Caliper and integrating the external service into the benchmark run. | |
24 - 26 | November 13 - November 30 | Finalizing the results, gathering experience, and preparing the material to bootstrap a performance analysis whitepaper. |
Work Done
1. Study of Hyperledger Fabric Network and its consensus:
I thoroughly explored the architecture and functionality of Hyperledger Fabric networks, gaining insight into components, peer roles, and consensus mechanisms essential for achieving distributed agreement.
2. Log Collection for Insight:
I undertook the task of collecting both INFO and DEBUG level logs, during various network operations - specifically versions 2.3 and 2.4. You can find collected logs here: GitHub Repository
3. Exploration of Performance-related DEBUG LEVEL Logs:
Explored the potential of DEBUG LEVEL logs for uncovering performance insights. By analysing these logs, I aim to identify hidden bottlenecks, resource usage patterns, and optimization opportunities.
4. Analysing Logs related to Gateway Functionality
Chaincode Logging Analysis in Hyperledger Fabric Versions 2.3 and 2.4
The following table showcases the collected logs from deploying various chaincodes from the Hyperledger Fabric samples repository for analysis in versions 2.3 and 2.4.
Repository Link: https://github.com/hyperledger/fabric-samples
Chaincode Name | Gateway | Endorsement Policy | Expected Logs | Logs Version | Log Levels |
---|---|---|---|---|---|
asset-transfer-basic | Yes | Default | Transaction, Endorsement & Gateway Logs | 2.3, 2.4 | INFO, DEBUG |
asset-transfer-basic | No | Default | Transaction & Endorsement Logs | 2.3, 2.4 | INFO |
asset-transfer-sbe | No | AND (All Org Signatures) | Endorsement from the peers of all the organizations & Transaction Logs | 2.3, 2.4 | INFO |
asset-transfer-private-data | Yes | OR (Any Org Signatures) | Endorsement from either of all the organizations & Endorsement Logs | 2.3, 2.4 | INFO, DEBUG |