Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Project Title

Runtime-checked automated programming for chaincode development

Status

PENDING TOC REVIEW

Primary Focus

  RESEARCH

Description 

Can we make ChatGPT write chaincode for us?

The answer is certainly yes, but – for now - the current caveats of “AI-conversational” programming apply: the process is iterative, and we really can’t be sure whether the result is completely right until we test it – and probably also look for execution errors at runtime.

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 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. (We don’t know yet what will work – One-shot/iterative? Requirement set or BDD? Conversational or formal? Etc.)
  4. To create support for translating the specification partially or fully to runtime verification code, which can wrap the chaincode implementation.

Additional Information

Ask ChatGPT for papers, which deal with using neural networks for generating Solidity code! No, really.

And ask it to write you an ERC-20 equivalent chaincode.

And ask it to introduce Fabric MSP-based ownership management.

(Try not to think of Asimov's robopsychology.)

It's not a coding wizard yet, but definitely uncanny.


On the other hand, we expect to experiment with Behavior-Driven Development; this means Gherkin/Cucumber.

Technology/approach for runtime verification (https://en.wikipedia.org/wiki/Runtime_verification) will depend heavily on the results on the "constructive" side - we do not want to make a commitment on this at this point.

Learning Objectives

Expected Outcome

  • A representative ("towards a benchmark") set of smart contract functionality and their key variations, defined in natural language (various token contracts, cross-organizational processes, data recording, etc.).
  • A set of (possibly branching) natural language conversation scripts, and a report on evaluating the capabilities and shortcomings of a selected (expected to be best-of-breed) generative approach.
  • A set of functionally equivalent specifications in a structured approach (we expect this to be a variant of BDD, but there are other options to try).
  • A report on evaluating the capabilities and shortcomings of the structured approach on the selected (expected to be best-of-breed) generative approach, and comparison with the "conversational" approach.
  • At least expected: specification-compliance runtime checking code for the cases of the structured approach (determining the checked properties and a coverage goal is part of the work).
  • In optimal case: automatically generated checker code.

Relation to Hyperledger 

Mentee Skills

Mentee Open Source Contribution Experience

Future plans

Mentor(s) Names and Contact Info

Bertalan Zoltán Péter, PhD student, bpeter@edu.bme.hu, Budapest University of Technology and Economics, Dept. of Measurement and Inf. Systems, Critical Systems Research Group

Imre Kocsis, assistant professor, kocsis.imre@vik.bme.hu, Budapest University of Technology and Economics, Dept. of Measurement and Inf. Systems, Critical Systems Research Group





  • No labels