Project TitleVS Code Debugger Plugin for Hyperledger Fabric Chaincode
Status

IN PROGRESS

Primary Focus

CODING  RESEARCH

Description 

A VS code extension and toolbox to debugging a chaincode. The extension once installed can be used by developers of chaincode to run and debug from their IDE, to understand how their chaincode behaves. The current process of installing the chaincode, adding the logs, running it through a test network for operational efficiency is not ideal for a faster development cycle. There is also a dependency on number of tools and commands that a developer would need to be aware of before developing the chaincode. The scope of this project is to utilize one of the existing deployment means for the chaincode, then provide a debugger from the VS code through a plugin.

Learning Objectives

  1. Learn how to build a VS code plugin.
  2. Learn Hyperledger Fabric fundamentals, dependencies for the chaincode development.
  3. Learn what debugging means, and different approaches to debugging.
  4. Contribute to a new open source initiative that has potential to be used by a significant developer community.

Expected Outcome and Deliverables

  1. Develop a plugin that can be installed and run on any developer machine.
  2. Ideally, one should be able to develop on any operating system, be it a Mac, Windows, or any of the Linux variant.
  3. Debug the chaincode as the developers are used to writing their code, as opposed to learning administrative aspects. At times reproducing a production scenario is all it takes to fix an issue, and it may get complicated with patch fixes.
  4. Option to initialize the state database so that the debugging can be effective. - This is a futuristic goal to achieve with the project.
  5. Primary goal is for the chaincode to be deployment ready at the end of the development cycle.

The deliverable is the working VS code plugin.

Relation to Hyperledger and Impact on the community

Hyperledger Fabric chaincode developers do a list of mundane tasks to setup a runtime environment. This becomes a redundant activity, then the developer would need to package and perform a chaincode deployment for debugging. The overall experience from a developer can be improved significantly if there is a native debugging interface from the IDE.

Recommended Skills

  1. Fundamentals of Hyperledger Fabric.
  2. TypeScript/JavaScript programming language.
  3. Exposure to containerization, for instance, creating the docker file.
  4. Exposure to working with containers, for instance, exposure to docker-compose, docker-swarm tools.
  5. Exposure to UI development.
  6. Exposure to developing a VS code plugin.

Mentor(s) Names and Contact Info

Name: Arun S M

Email: arun.s.m.cse@gmail.com

discord: arsulegai

Additional Information

The current development is available at https://github.com/arsulegai/fabric-debugger

9 Comments

  1. I was looking for something like this when I worked first with fabric, solidity have multiple tools for such purpose, needed something for chaincodes too. Seems interesting project to work upon.

  2. Hello - this exact tool was available with the IBM Blockchain VSCode extension; that though was terminated as there was no resource left to work on it.
    It provided the features you're looking for. 

    1. Thank you Matthew B White , I will work with the mentee to research.

  3. If it helps, either for inspiration or revival, the archived IBM Blockchain VSCode extension project is here -> https://github.com/IBM-Blockchain/blockchain-vscode-extension

    1. Thank you James Taylor , it helps the mentee with reference implementation and pointers.

  4. Helllo Arun S M  I was going through this project and find it quite interesting as I've some experience in plugin development and debugging, I'm new to LFX mentorship, can you please guide me in what steps i've to take to apply for this and contribute?

    1. Anirudh Chauhan I was unavailable when you sent the message. The LFX mentorship application deadlines are closed and the interviews were conducted. Majority of the information is available in the home page Hyperledger Mentorship Program . The project will be built in open source. Please follow up this space to join community calls and make contributions to the project.

  5. Hi Arun S M , Interested and want to collaborate on this usecase

    1. Thank you Puneet Sivananda , I will work with the selected mentee to put up a work plan. I will also request the mentee to broadcast public meetings information here.