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 #DateActivityStatus
1 - 3June 5 - June 23Onboarding, getting to know the project goals, and designing a project plan.
  •  
4 - 6June 26 - July 14Getting to know Fabric, its consensus protocol, and defining a set of test chaincodes.
  •  
7 - 8July 17 - July 28Exploring and documenting the TX observability points of Fabric in various scenarios.
  •  
9 - 11July 31 - August 18Getting to know the OpenTelemetry, the Performance Sandbox, and consolidating the technical aspects of observability.
  •  
12 - 20August 21 - October 20Requirement, API, and analysis approach: design, implementation, and documentation of the external service.
  •  
21 - 23October 23 - November 10Getting to know Caliper and integrating the external service into the benchmark run.
  •  
24 - 26November 13 - November 30Finalizing 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 NameGatewayEndorsement PolicyExpected LogsLogs VersionLog Levels
asset-transfer-basicYesDefault Transaction, Endorsement & Gateway Logs2.3, 2.4INFO, DEBUG
asset-transfer-basicNoDefault Transaction & Endorsement Logs2.3, 2.4INFO
asset-transfer-sbeNoAND (All Org Signatures)Endorsement from the peers of all the organizations & Transaction Logs2.3, 2.4INFO
asset-transfer-private-dataYesOR (Any Org Signatures) Endorsement from either of all the organizations & Endorsement Logs2.3, 2.4INFO, DEBUG
  • No labels