SETP2,Substrate 基础介绍

简介

  • 参考文档:https://zhuanlan.zhihu.com/p/48976310 这里面的所有流程最好看一遍。

互联网发展看区块链未来

  • web1.0 只读互联网
  • web2.0 可读写互联网
  • web3.0 价值互联网

区块链发展现状

  • 公链
开发复杂,生态丰富,维护成本高,升级困难,开放,犯错成本高。
Defi 去中心金融
DAO 去中心和组织
... 完全开源的
  • 联盟链
CA准入否则只能读取,开发简单,开发框架单一,功能单一,升级困难,可扩展性低。
一般都是公司内部业务,所以主要是针对业务开发。
  • 二者问题是,二者相互不关心,因为框架不统一业务也不同。

波卡是什么

  • 为什么跨链是未来。
  • 区块链可以解决信任问题。
  • 专业化可以解决可扩展问题。
  • 可交互可以在可扩展的前提下,解决更广泛的信任问题。
  • 传统区块链根据场景作不同的取舍。
  • 波卡在解决的三个问题:
1、跨链写作。
2、可扩展性。
3、共享安全。
  • 波卡尝试打通整个区块链生态沟通协作。


    image.png
  • 也能沟通协作,波卡也允许无上限拓展。


    image.png
  • Polkadot 的组件,包括:

1、Collators区块整理节点。
2、Parachain平行链。
3、Validators区块链验证节点。
4、Bridge桥。
  • 最终形态,可以打通不同的区块链应用。


    image.png
image.png
  • 联盟链是趋势,公链是未来。


    image.png

Substrate 介绍

  • Substrate 是波卡链中抽象出来的。
  • 区块链包含那些组件:


    image.png
  • 区块链的构造组件很多Substrate提供了所有组件的升级
1、可扩展兴。
2、模块化。
3、开源。
4、自主可控。
  • Substrate 具体包含些什么?
1、核心模块。
2、基本逻辑。
3、p2p网络。
4、共识机制。
5、链上治理。
  • Substrate 之上建立的模块


    image.png
  • Substrate Runtime


    image.png
  • 为什么一定需要链上升级:
1、修复重要的安全漏洞。
2、改变核心规则。
3、添加新功能。
4、修复链上状态。
  • 为什么需要链上升级
1、硬分叉需要的协作陈本极高,而且容易升级失败。
2、没有明确的治理策略和升级时间点。
  • Substrate 一件链上升级,永不分叉,使用Wasm,升级过程无需节点直接参与,如果不使用Wasm,整个网络都需要执行升级操作,也就是说如果Wasm runtime节点的优先级顺序高于Native runtime,那么就会被迫使用Wasm 线上节点,那么本地代码为了效率考虑也会被迫进行升级。


    image.png
  • Substrate 与企业系统无缝集成,使区块链成为解决方案的一部分。


    image.png
  • Substrate是公链技术、生态和联盟链之间的桥梁、通过Substrate分享最先进的区块链技术成果。

  • Substrate 官网:https://substrate.io

  • 中文学习网站:https://space.bilibili.com/67358318 、https://zhuanlan.zhihu.com/substrate 、https://zhuanlan.zhihu.com/v2web3 。

  • 微信公众号:polkabot 中文平台。Polkaworld、Polkabase

  • 如何运行substrate 节点

1、单节点(开发链Dev)
2、多节点(本地链local)
image.png

相关资料:

  • Substrate 的官方文档网址是什么? https://www.substrate.io/
  • Substrate 的 recipe 网址是什么? https://substrate.dev/recipes/ 这个理论上正经应该看一遍。
  • Substrate 的 rust docs的网址是什么?https://substrate.dev/rustdocs/v3.0.0/sc_service/index.html 这个也应该是正经看一遍。
  • Substrate 的 tutorial 的网址是什么?https://substrate.dev/en/tutorials
  • Substrate Seminar在每周几进行?This meet every Tuesday at 14:00UTC,也就是北京时间的每周二 22:00开始,

关注相关开源项目

  • 关注 substrate : https://github.com/paritytech/substrate

    image.png

  • 关注 polkadot : https://github.com/paritytech/polkadot

    image.png

尝试编译 node-template

  • 首先下载代码:从这里:


    image.png
  • git clone https://github.com/substrateCourse/substrate-node-template.git

  • 之后编译代码:

# pwd : /Users/kami/lin-files/work-files/coding/git-fiels/test-substrate/substrate-node-template
cargo clean # 这步骤是可选的
cargo build --release # 实际上我没有添加 --release 主要是为了测试编译时快一点。
  • 编译时如果遇到错误:


    image.png
  • 源码上应该不会有什么问题,从版本思路上觉得可能是编译环境的问题,先看一下源码使用的版本(直接到git上去看Branch分支是v2.0.0) :


    image.png
  • 这个应该对应 nightly-2020-10-06 ,看看我本机的 :rustc --version 好像有点新,我单位的电脑环境和家里的不太一样

    image.png

  • 尝试修改成的版本:

rustup install nightly-2020-10-06 # 安装对应版本
rustup default nightly-2020-10-06 # 默认使用这个版本
  • rustc --version 查看之后的结果:(好像没有10-06,直接用的10-05好吧)

    image.png

  • 重新输入编译命令 cargo build 或者 cargo build --release (我用的debug模式编译主要为了快和出错时的信息提示)

  • 继续编译的时候又遇到错误 Rust WASM toolchain not installed, please install it!

    image.png

  • 此时安装 wasm32-unknown-unknown 即可:安装方法

# 主要是安装这个。
rustup target add wasm32-unknown-unknown 
# 顺便把下面两个一并安装。
cargo install wasm-pack
cargo install https   

  • 继续执行编译命令,我就不信编译不过去 cargo build

  • 编译成功后的截图(编译后会生成 target/release目录):


    image.png
  • 启动 Node-template 节点

# pwd : /Users/kami/lin-files/work-files/coding/git-fiels/test-substrate/substrate-node-template
./target/debug/node-template --dev
  • 启动后的截图:


    image.png
  • 访问Polkadot JS Apps :https://polkadot.js.org/apps/

    image.png

image.png
  • 国内的cargo 镜像源:
image.png

结束

  • 感谢阅读

你可能感兴趣的:(SETP2,Substrate 基础介绍)