了解substrate
前言
2020年区块链三大事件,都被我们赶上了:
- BTC减半
- filecoin上线
- polkadot上线
而作为开发了3年+的“年轻”明星项目,filecoin和polkadot备受开发人员和币圈关注。下面,我们从开发人员角度去看下substrate
从互联网发展看区块链未来–跨链
我们经历了互联网三个时代:
- web1.0 :只读互联网。用户只能搜索信息,浏览信息
- web2.0: 可读写互联网。只读已经无法满足人们需求,人们需要将文字、图片、视频上传到互联网上,实现信息共享。因此,问答式、交互式门户、博客、百科等网站出现。
- web3.0:价值互联网。web3.0将打造一个新的全球数字经济,创造新的商业模式和市场,与谷歌和Facebook一起破坏平台垄断,并产生大量自下而上的创新。打破数据隔离,让真正有价值的东西流通起来。
跨链是未来
区块链可以解决信任为题
专业化可以解决可扩展问题
可交互可以在可扩展的前提下,解决更广泛的信任问题,是一个更真实的世界
波卡解决下面三个问题:
跨链协作
可扩展性
共享安全
不可能性三角:去中心化、可扩展性、安全性不可能同时达到
而polkadot尝试打通整个区块链沟通协作。
公链和联盟链
公链:公链特点,开发复杂、生态丰富、维护成本高、升级困难、开放、犯错成本高
联盟链:CA准入、开发简单、开发框架单一、功能单一、升级困难、可扩展性低、生态单调
可交互的联盟链
数据共享、全局信任
通过核心链将更多联盟链连接起来
其中核心链是基于substrate,各个联盟链也基于substrate,核心链
polkadot组件
relay chain:中介链,中间大红框
Validators:中介链的区块验证节点
parachain :平行链,周边的红色小圆圈
collators :平行链的区块整理节点
区块整理节点(collators)将平行链的下个区块信息,并将下个区块信息提交给区块验证节点(Validators)盖章和打包,一旦该信息成功被Validators认证,该平行链的信息将会被打包到中介链(relay chain)的区块信息中。
Bridge:桥组件
而relay chain外围的parachain也可以再接一层parachain,那么第一层的parachain就可以作为外一层parachain的relay chain。依此类推,往外无限扩展。
substrate介绍
目标:每个分片专注不同业务
一个区块链节点需要包含哪些组件:
数据库
点对点网络
共识算法
交易处理
***状态转换函数(runtime)***:决定整个区块链当前状态和未来状态
***其它特别函数:零知识证明(zk)、分片等等
区块链的构造组件
核心组件
最内层:区块链构造组件:数据组、加密算法、点对点网络、序列化、共识算法、交易队列
中间层:链逻辑升级、链上治理,即(runtime层)
最外层:dapp ,智能合约
substrate开发的特性
可扩展性
模块化
开源*
自主可控
模块:
polkadot :substrate 之上建立
如何通过substrate构造自己的链
runtime是区块链的链上运行集合,也就是状态转换函数。可以通过选择方式添加runtime组件。runtime组件目前超过40个。
一键链上升级–永不分叉
当substrate本地节点执行一批交易逻辑时,会判断native runtime版本是否与wasm runtime版本一致,如果一致,则在native runtime上进行,如果不一致,则会选择在wasm runtime运行。
全网是否需要升级,需要一个公投,全网公投通过,则需要升级,native runtime也会被强制升级。
而公投需要议会,或者root,不过root在主网上线后会被撤下。议会成员可执行议会职能,非议会成员无法执行议会职能。
note: 使用wasm,升级过程无需节点直接参与。如果不适用wasm,整个网络都需要执行升级操作。
为什么需要链上升级
substrate与企业系统无缝集成
使区块链成为解决方案的一部分。
那么,substrate是什么?
substrate是技术、生态和联盟链之间的桥梁
附官方相关连接
Substrate的官方文档网址是什么? https://substrate.dev/docs
Substrate的recipe网址是什么? https://substrate.dev/recipes/
Substrate的rust docs的网址是什么? https://substrate.dev/rustdocs/v2.0.0-rc2/sc_service
Substrate的tutorial的网址是什么? https://www.substrate.io/tutorials/
Substrate Seminar在每周几进行? 每个星期二14:00UTC