The Architecture and Analytics Platform team at CSIRO Data61 has a strong research background in software engineering and software architecture. We started our blockchain research in 2015. During this time, we participated in many national-level blockchain consultation projects and commercial projects, such as the development of 2 reports on risks and opportunities for using blockchains and smart contracts and the implications of the technology for the Australian economy with the Australian Treasury; Blockchain 2030 report with the Australian Computer Society, Smart Money project with the Commonwealth Bank, Red Belly Blockchain, Laava, ePhyto, Lorikeet, and Ethviewer.
During these projects and our software engineering research in general, we realised the need and use of design patterns in blockchain-based application design. This led us to publish our first blockchain pattern paper at the 23rd European Conference on Pattern Languages of Programs (EuroPLoP) in 2018. The paper summarised a set of patterns for the design of blockchain-based applications based on our research and project experience. Later, in 2020, we published another 2 blockchain pattern papers in the 25th EuroPLoP. One of the papers focused on the patterns for blockchain-based Self-Sovereign Identity (SSI) systems and the other focused on the scenarios and patterns in the context of data migration across different blockchain platforms. Then in the 26th EuroPLoP, we published a set of blockchain-based payment patterns.
These patterns capture knowledge and experience in the extended standard format to help a practitioner structure and design blockchain-based applications. Many other blockchain-related patterns have been documented by both academia and industry.
Architectural patterns are mainly expressed as informal text with unstructured design reasoning. These patterns’ existence is helpful, as their presence means that developers do not need to recreate solutions to common problems. Alternatively, a multitude of patterns leaves a designer confused about when to adopt or adapt patterns. Therefore, in 2021, we proposed a decision model that helps developers and architects select appropriate patterns for blockchain-based applications.
We believe that software architects, developers, system administrators, and leads (technical and project) would find these patterns and decision models useful in their blockchain and distributed-ledger-based application design, development, and support endeavours. In addition to serving as a portal to disseminate our research results, we plan to expand both the pattern collection and decision models based on other’s work where possible. Therefore, we wish to engage in a dialogue about the patterns, known uses, decision models, and our research in general. Please reach us via the details on the Contact Us page.