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.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
















