Towards a unified Python programming model for decentralised applications proposal

The motivation behind this project was to contribute to the existing research in the macroprogramming of smart contract systems, with a focus on developing a Python framework for decentralised application systems on the Algorand blockchain. 

The proposed framework utilises a Python abstract syntax tree (AST) parser to generate both on-chain and off-chain code for Algorand blockchain decentralised applications (dApps). The primary objective was to design and build a framework for the domain of smart contract systems to provide a unified view of the entire system, whilst significantly reducing the lines of code and minimising the time required for developing dApps.

The framework was carefully designed to abstract away any low-level code and to provide seamless communication between on-chain and off-chain platforms. The goal was to enable developers to exploit Algorand’s smart contract functionality, whilst minimising the time and effort required to develop dApps. The framework has been designed to support computing and storing data on both on-chain and off-chain platforms through a macroprogramming tag-based approach and Python wrapper classes.

The evaluation of the proposed framework focused on assessing its reliability, efficiency, usability and other criteria for writing decentralised applications for the Algorand blockchain. The results of the evaluation indicated a significant decrease in the lines of code required for writing such systems, when compared to a hand-coded approach, whilst providing a unified view of the entire system. 

The framework proved to be efficient in its performance, with a high degree of usability for developers. The evaluation also collected data from a questionnaire of Algorand users to propose possible improvements to future implementations of the framework, with a view to further enhancing its performance.

Figure 1. Abstract syntax parsing

Figure 2. System design overview

Student: Ivan Abramov
Supervisor: Prof. Joshua Ellul