如果你是最近才了解Substrate, 那么要恭喜你!
因为Substrate 官网的文档最近做过大的升级, 你可以看到现在的官方文档其实是非常详细的, 比如会有一个专门的章节来介绍区块链的基础知识, 而老版的文档则是直接假定读者已经具备区块链的基础知识了.
而我这一系列虽然不做假定, 但我还是非常推荐各位应该首先去官网看过官方的教程和文档, 因为我的文章更多是从一个实际开发者的角度来理解的, 如果你也是一个开发者, 或许你更加能与我共鸣.
废话少说, 首先, 我们要理解Substrate, 就必须要理解Substrate的技术构成.
我的本职工作是一个架构师, 架构师的一个重要职责, 就是为团队圈定技术方向, 为项目敲定技术选型. 那么, 就从我的工作方向出发, 假设今天我们要开发一个类似Substrate的区块链框架, 我们应该怎么做?
也就是说, 我们试着从一个开发者的角度, 来扮演一下Gavin Woods的角色, 看看如果你要开发一个区块链框架, 你该如何做技术选型?
要回答这个问题, 我们首先要看下当时的区块链世界有哪些突破, 又有哪些痛点; 同时当时的技术大环境里, 又有哪些新技术可用.
当时(2017~2018)的区块链世界中, 最大的突破莫过于2个, 一是比特币的诞生并发展第一次将区块链这一技术带入世界, 开启了区块链时代, 第二则是以太坊开创的智能合约时代, 正是因为智能合约的引入, 区块链才第一次有向实际应用的可能性迈出了一大步, 开启了智能合约时代.
但是几乎所有的其它区块链都是尽可能地模(chao)仿(xi)比特币或者以太坊, 但无论是比特币还是以太坊都存在几个非常严重的难题:
以上就是当时最主要的问题. 要解决这些问题, 有两种方式:
以太坊选择了第一种, 今天的以太坊2.0, 抛弃了PoW方式, 采取的全新的分片模式, 算是很大程度上解决了以上的难题.
而Gavin当时则选择了第二条路, 开发了一种全新的区块链和区块链开发体系, 这就是Substrate和波卡系的由来.
对于上叙3个问题, Substrate分别使用了3个技术来解决:
由此我们可以大致了解, Substrate的技术涉及以下几个方面:

因此, 如果想要深入研究Substrate, 那么对于以上3种技术的了解还是很有必要的. 这其中, Wasm和共识引擎我们将放在不同的章节部分来讲述, libp2p我们则单独用一篇文章来讲解.