Project Plan- Runtime-checked automated programming for chaincode development

Short description

Automated programming for other blockchain platforms is an already emerging topic, but Fabric has not been really addressed yet. This is an experimental mentorship with equal weight in research and hands-on coding, with the following goals.

  1. To review existing examples and approaches of automated programming for smart contracts of other platforms (i.e., Solidity).
  2. To explore the technically feasible options of automated chaincode programming for Hyperledger Fabric (incl. ChatGPT) and select one for further work.
  3. To formulate a chaincode specification style which “seems to work well enough” on a set of representative examples with automated programming.
    (We don’t know yet what will work; One-shot or iterative? Requirement set or Behavior-Driven Development (BDD)? Conversational or formal specification? And so on.)
  4. To create support for translating the specification partially or fully to runtime verification code, which can wrap the chaincode implementation.

Participants

Mentors:

  • Bertalan Zoltán Péter , PhD Student @ BME Critical Systems Research Group, ftsrg (Discord: bp99 #0622)
  • Imre Kocsis , Associate Professor @ BME Critical Systems Research Group, ftsrg

Mentee: Tanuj Surve.  (Discord: tanuj5173)

Timeline

Week #DateActivityStatus
1 - 3June 5 - June 23Onboarding, getting to know the project goals, and designing a project plan.
  •  
4 – 7June 26 – July 28Research phase: collection of research papers, review & analysis of existing approaches and tools
  •  
8 – 11July 31 - August 25Technical feasibility analysis: test and evaluate different methods (→ report)
  •  
12 – 14August 28 – September 15Selection of suitable automated programming approach and formulation of best specification style
  •  
15 – 20September 18 – October 27Implementation & Testing phase (experimentation with selected specification technique)
  •  
21 – 24October 30 – November 17Documentation & Evaluation phase
  •