VS Code Plugin - Project Plan

Project Management

Product: Problem Statement → Problem Description → Impact of the Problem Statement → Current Solutions? → Limitations of Current Solution/s → Propose a new Solution

Solution: Requirements (both Functional and non-Functional) → Functional Architecture → System Architecture → Low Level Designs → Implementation Phase (Estimated Effort for Tasks)

Project Roadmap


Activity CategoryActivityEffortEstimated Time
Learning ActivitiesTechnologies - Virtualization/Containers1 Week1st week of June
Hyperledger Fabric3 Weeksend of June
Problem Statement and AnalysisProblem Description2 Weeks2nd week of July
Impact
Current Solutions - Analysis
Formulate a Proposal
Requirements Gathering and DesignCapture Functional and non-Functional Requirements1 Week3rd week of July
Functional Architecture
System Architecture
LLD1 Weekend of July
ImplementationVS Code Plugin Development - Experiments2 Weeks2nd week of August
Feature Development8 Weeks2nd Week of October
Testing Phase1 Week3rd Week of October
Quality and Metrics1 Weekend of October
Documentation and PresentationsUser Documentation1 Week1st week of November
Present the Project - Public Forums1 Week2nd week of November

Product


Problem Statement
  • As a Hyperledger Fabric smart contract (chaincode) developer, there is no option to debug the code during development.
  • The mechanism to debug the chaincode often involves adding debug log lines and running the chaincode in a test environment.
  • The complexity of running a Hyperledger Fabric environment for testing purpose is complex due to the nature of setting up the network. The developers are expected to learn the deployment and internal operations of the network.
  • If the smart contract is running in a production environment, consuming a specific state database and it fails for a specific scenario, debugging gets more complicated. The developers would typically replicate the scenario on a test network, but they may not be able to do so because of the lacking state database values. Additional debugging code in the smart contract is not feasible due to chaincode operations and involvement of multiple partners.
  • Overall the cost for debugging is high, both the time and the process is complex factoring the number of participants involved.
Problem Description
Impact of the Problem
  • High Cost of Maintenance: Both the time and the process for maintaining the Hyperledger Fabric smart contract in production environment.
  • Specialized Skill: Finding the talent for Hyperledger Fabric smart contract development becomes extremely difficult.
  • Feasibility: Other blockchain protocols such as Ethereum have better tooling for smart contract developers.
Current Solutions

IBM Blockchain Platform Extension

Hyperledger Fabric Debugger: Spydra

Limitations of the Current Solution
Proposal
  • Develop a plugin that can connect to any Hyperledger Fabric runtime. Including a test network brought up locally, a production instance or a cloud instance.
  • If there is some process involved for setting up the debugging capability, then it should be one time.
  • Flexibility to make calls to specific chaincode functions, and accept the values at runtime. Precompose list of values to be supplied.

Solution


Functional Requirements
Non-functional Requirements
Functional Architecture
System Architecture
LLDs
Implementation Plan