上周,Gavin在柏林Web3峰会现场演示了一种新框架——Substrate。他使用一台刚启封的Macbook Pro,从编写第一行代码,到发布区块链,用时不足60分钟。Substrate目的是让发布区块链就像发布智能合约一样容易。
Parity的明星项目Polkadot就是基于Substrate构建的——前者是一种由多条链,异构组成的区块链集合,其目的是成为不同区块链间的媒介。Substrate先前的主要目的是让开发者能在Polkadot上快速启动平行链,不过Substrate框架本身还具备发布独立区块链的能力,这让它成为独立于Polkadot的项目,不依赖后者的开发进度,本月晚些时候,Substrate 1.0-beta将会公开发布。
与Express或其他Web应用框架类比,Substrate是用来构建分布式或去中心化系统的,如加密货币项目或消息总线系统。就如大多数Web应用程序不需要重新实现HTTP一样,Gavin Wood认为,所有人都从头构建网络和共识代码,非常浪费精力。使用Substrate来构建新项目,开发者所要做的,就是在代码调用少量函数,就能获得各种密码学模板,以及定制、搭建和发布新区块链所需要的方方面面,“Substrate为区块链开发者提供最大限度的自由,花费最少的精力”。
Substrate在设计时,考虑了支持大多数现有和未来可能出现的区块链应用场景。其技术栈主要由以下几个具备高通用和扩展潜能的部分组成。
1. 对区块链应用架构来说,State Transition Function(STF)代表其核心商业逻辑,STF的功能集合、有何种限制,决定了区块链的应用场景。Substrate运行时采用WebAssembly的一个子集,具有跨平台和轻量的特点。在1.0-beta版本中,开发者可以使用纯Rust、C++和C编写STF;通过WebAssembly支持的其他语言,将在后续引入。
2. 网络部分基于Libp2p,开箱即用。对于需要其他网络消息支持的区块链应用,未来版本的Substrate计划引入一个网络拓扑API。
3. 为了适应快速应用开发,Substrate支持包括Polkadot SHAFT(GRANDPA)在内的多种共识算法。密码学数据库后端及块格式,都可以定制或重写。在1.0-beta版本中,将包含以下几类共识算法,当然开发者还可以通过Substrate API设计自己的共识算法。
Rhododendron
SHAFT/GRANDPA
Aurand
Ouroboros
PoW
Parachain(PoV)
Substrate提供的其他工具还包括:
Polkadot连接
可以热替换和插入的共识机制
可以热升级和插入的STF
Pub/Sub WebSocket JSON-RPC
轻量客户端
交易队列
安全网络
JavaScript实现
Substrate运行时模块库(SRML)
因为具备一系列链上热升级机制,无论修改共识算法还是升级STF,开发者都无需硬分叉。作为例证,今年7月17日,Polkadot的“Krumme Lanke”测试网络进行过公开演示,至今依然正常运行。
创建Substrate运行时模块库(SRML)的目的,是为了帮助开发者更迅速地发布区块链。开发者只需要将一组模块集合,便能实现相应的网络、共识、轻客户端或者其他需要的功能,新功能可以通过创建新模块实现。
SRML之外,Substrate在设计中还额外引入了两层逻辑:
1. 可通过JSON配置的通用区块链节点,用于执行其运行时;
2. 一个精简的区块链内核引擎,用于处理共识、块生成、网络、数据库等功能。
此外,企业和金融敏感用户关注的高级隐私和权限管理,也能轻松加入并通过Substrate进行控制,而无需与Polkadot产生瓜葛,并通过桥接或成为原生Parachain的方式升级。
作者:区块链大本营(ID:blockchain_camp)