We talked about a common “Blockchain Stack” earlier. Below is an initial stab at a unified stack:
Some points to keep in mind:
– Our goal is to separate “common infrastructure” as much as possible. These are things that anyone who is building decentralized services/applications will need to (re-)implement. The more components we can identity as part of the common infrastructure the better it is.
– The separation of different modules in the stack is logical/functional and is not done from a networking perspective. When people think stack they immediately think Internet stack, and then get confused when Bitcoin/Blockchain itself has a P2P network and DHT has its own P2P network and so on.
– The module divisions and how they’re currently arranged is just an initial stab and we’re actively looking for feedback. Expect things to change. All feedback is welcome.
– Our goal is that it should be possible to replace generic components in the stack with more specific systems/protocols/specifications that have open-source code available e.g., IPFS or Blockstore can go (somewhere) in the storage layer or Passcard can be used for identity and so on.
– We’re currently putting identity / reputation / trade etc all in the “application layer”. The motivation is that just like in the Internet stack HTTP or FTP are considered application level and use the underlying layers, we can build decentralized identity, decentralized marketplaces, decentralized attribution etc at the “application layer” by using the underlying common core.