Abstract

Distributed Ledger Technology (DLT) enables data storage in a decentralized manner among collaborating parties. The software architecture of such solutions encompasses models placed in the relevant architectural views. A lot of research is devoted to smart contracts and consensus algorithms, which are realized by distributed applications and can be positioned within the Logical view. However, we see the need to provide modeling support for the Deployment view of distributed ledger solutions. Especially since the chosen DLT framework has a significant impact on implementation and deployment. Besides, consistency between models and configuration deployment scripts should be ensured. So, we have applied Model-Driven Engineering (MDE) that allows on the transformation of models into more detailed models, source code, or tests. We have proposed Unified Modeling Language (UML) stereotypes and tagged values for distributed ledger deployment modeling and placed them in the UML Profile for Distributed Ledger Deployment. We have also designed the UML2Deployment model-to-code transformation for the R3 Corda DLT framework. A UML Deployment model is the source whereas a Gradle Groovy deployment script is the target of the transformation. We have provided the complete solution by incorporating the transformation into the Visual Paradigm modeling tool. Furthermore, we have designed a dedicated plug-in to validate generated deployment scripts. In the paper, we have shown how to design transformation for generating deployment scripts for the R3 Corda DLT framework with the ability to switch to another one.

Highlights

  • In a distributed ledger there is no central data store

  • We present the overview of our Model-Driven Engineering (MDE) solution to automate the R3 Corda distributed ledger deployment

  • We present the architectural overview of Java application UML2DeploymentCheck that validates distributed ledger deployment configuration files

Read more

Summary

Introduction

In a distributed ledger there is no central data store. A distributed ledger, defined by Xu et al [1], is an append-only store of transactions, which is distributed across many machines. An append-only means that new transactions can be added but existing ones can not be modified or deleted. A new transaction might reverse a previous one, but both of them remain part of the ledger to allow audits and ensure integrity. The ledger is distributed and stored by the nodes of a peer-to-peer (P2P) network where each block is created at a predefined interval in a decentralized fashion employing a consensus algorithm that guarantees data integrity. A consensus algorithm is a primary element of DLT and is used to synchronize a distributed ledger at multiple nodes.

Objectives
Discussion
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call