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
Summary
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.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.