dlt-design-patterns
dlt-design-patterns copied to clipboard
Distributed Ledger Technologies / Blockchain : Software Design Patterns
Distributed Ledger Technologies / Blockchain : Software Design Patterns
Written conform to the principles and terminology of Blockchain.
Data Patterns
Merkle Tree
Structure

Instance

Where node[1.1].signature = hash(concatenate(node[1.1.1].toString(),node[1.1.2].toString()))) etc.
Applications
- Git
- Modern File Systems
Merkle Trie / Blockchain
Structure

Instance

Where root[i+1].signature = hash(concatenate(root[i].toString(),block[i].toString())) etc.
Applications
- Blockchain
Block

Applications
- Blockchain
Transaction

Applications
- Blockchain
Behavior Patterns
Singleton

One single instance of:
- data
- behavior
- events
Applications
- Blockchain
(Smart) Contract

Mortal Contract
By default the contracts are immortal. They could trap funds if they cannot be stopped from operation.

Contract Interoperativity
Contract1, 2, 3 are interoperable
Oracle

Observer/Judge
Structure

Usage

A more detailed UML and implementation: ontrack-dapp
Composite Patterns
Twin Contracts
Twin smart contracts usually are born and die together. Also the transcations they initiate are born in synchronicity and atomically in mirror on their respective newtorks.

Contract Factory

Contract of Contracts
A contract that implements contract factory for any number of contracts.
Structure

Usage

Thanks
Diagrams drawn using Nomnoml and JS Sequence Diagrams.