By: Atif Farid Mohammad PhD
Blockchain Architecture is a framework within which the architect creates and develops system architecture for a business. Within this framework we can define five main dimensions:
- Blockchain Architectures and Disciplines for DLT
- Blockchain Perspectives of the use of DLT
- Specifications for NoSQL Database requirements (Immutability)
- Blocks in an Architecture
- Creation of Blockchain Use-Case
Those dimensions provide the Blockchain fundamentals for the business adaptation of Blockchain methodologies. These assure a meaningful breakup between each other so that they can be expanded independently and still they are extensive enough so that all different approaches to Blockchain Architecture can be conceptualized. With the help of such a Blockchain Framework, the Blockchain Architect can attend to fundamental questions and therefore systematically orientate him/herself in practical implementations.
If you are interested in a Blockchain Training for Architects check out this 3 Day instructor-led course: Blockchain Architecture Course For now let us explore this Blockchain Architectural Framework.
Blockchain Architectures and Disciplines for DLT
The architect should be capable of defining, describing and comparing the diverse kind of Blocks architecture to other architectures even of different subjects and/or professions. Furthermore, due to the high requirements of Blockchain Architecture distinct disciplines of architecture established themselves and has been implemented in the past within an organization. Such as:
- Legacy Software Architecture
- Data architecture
- Architecture of integration
- Network architecture
- Security architecture
- System management architecture
- Enterprise architecture
The architect has to decide which kind of architecture he needs to convert to the Blockchain for the purpose of applying:
Blockchain Perspectives of the use of DLT
Blockchain Architectures of any kind are very complex and often unmanageable as one piece. Therefore, the Blockchain Architect needs to reduce its complexity by only examining and handling manageable parts in terms of Blocks of the ensemble. To do so he/she need to work on so called Blockchain Architecture Layers of Blocks or levels always knowing what kind of connection the layered Blocks have and how each Block of the layer fits to the rest of the Blockchain architecture. On different Block Layers the Blockchain Architect can use different Chaincode. He/She can even adopt different views to the Block Layer. Block views in a Blockchain should lower the complexity for the Blockchain Architect and should make a systematically approach to the Blockchain Architecture possible.
Specifications for NoSQL Database requirements (Immutability)
Blockchain Architectures have numerous specifications to fulfill. Those specifications in turn can be classified by their kinds. For a Blockchain Architect the classes are:
- Chaincode/Smart Contract Specifications by
- An Organization
- A System
- A Block
- The Time of Development
- The Runtime and Organizational Transactions
A Blockchain Architect needs to be aware of the different kinds of specifications in order to design an immutable NoSQL DB (CouchDB) relations.
Blocks in an Architecture
It is vital for a Blockchain Architect to know a diverse variety of Block designing techniques which can be used to create a Blockchain Architecture. These are:
- Classification Techniques regarding their relevance to the business requirements
- Conceptual Principles to concrete technologies of pre-deploying Chaincode/Smart Contract
- Architectural styles and Patterns
- Attribute selection process
- Naming conventions related to the business acumen for privacy within/without
Creation of Blockchain Use-Case
During this action the characterization of the Block’s task and the goal takes place. The Blockchain Architect has the role of a technical adviser to ensure the technical feasibility, by making sure that the Architect has an understanding of the specifications. The Blockchain Architect finds and analyzes the specification of a Block and its related functions and tries to solve inconsistent requirements. A Blockchain Architect is also involved in designing the Blockchain and Side-Chain Architecture.
All of the stakeholders should be provided the draft of the Blocks and Blockchain artifacts to have a good understanding for them. It influences their further work and ability of success. So in this task the Blockchain Architect must make sure that all stakeholders understand the design decisions.
Blockchain Architectural principles, such as a Block Modularity, information hiding for Block’s attributes, a Blockchain Channel Abstraction, Separation of Concerns, etc., which have proven themselves to be useful and constructive in legacy architectural implementations. It doesn’t depend on the use of such principles whether the out coming Blockchain Architecture is a good or a bad one. But the lack of fundamental principles within an architecture is a strong sign that it can be a weak Blockchain Model of a specific Blockchain Architecture. There are possibilities that one principle is conflicting with another and thus the two can’t be combined in a single Blockchain Architecture but this should always be deliberate and the consciously omitting of an appropriate principle should always be well documented.