Substrate介绍: 如何运行和交互

介绍

  • Substrate是parity创建的下一代区块链框架
  • 1.0使用Apache 2.0,商业项目可以不受限制的使用
  • 可以轻松地实现可升级,高效率,创新性的区块链项目
  • 可升级
    • 传统区块链都需要硬分叉或者软分叉
    • 很多项目每半年都有硬分叉要求,方便新功能发布
    • 每次分叉都困难重重,提心吊胆
    • Substrate实现无分叉升级
    • Substrate由两部分组成
      • runtime:包含链上逻辑(区块如何验证,区块头如何生成)
      • client:包含p2p, db, cli,交易池,出块逻辑,wasm解释器
    • 如何实现
      • runtime 代码,通过rustc编译成runtime wasm二进制文件,发送一笔治理模块升级的消息,会把二进制文件存到链上
      • 私有链有管理私钥就行
      • 公钥投票通过就可以升级
    • 升级成功
      • 节点同步区块
      • 获取runtime wasm二进制文件
      • 节点可以在同样的高度升级,保持节点共识一致性
  • 高效率
    • 设计角度以最好执行效率为出发点
    • rust保证安全又有最大自由度。rust内存安全,没有垃圾回收避免了性能问题,强类型系统编译时避免了错误
    • 内置的PoS避免了pow的挖矿高成本,带来了稳定的出块时间和高tps
    • 目前测试网最快确认时间2秒,最终可以控制在4秒内
    • 轻节点
      • Patricia Merkle Tree实现的Tier DB
      • 高效率,轻量级,去中心化,去信任化的方式,验证区块头和链上数据
      • 使得移动端,物联网端和网页端的轻节点实现的可能性
  • 创新性
    • 抽象的模块化接口
    • web assembly解释器使用,runtime可升级,也可以使用智能合约
    • 可以使用不同开发语言,go,c++runtime在开发
    • 第三方库,zero knowledge模块在开发
    • 定制模块,如共识机制,治理模式,p2p,地址格式,交易格式
    • 智能合约

Polkadot生态圈

Substrate介绍: 如何运行和交互_第1张图片
Polkadot生态
  • Polkadot是parity基于Substrate开发的下一代区块链项目
  • PoC-2版本是Substrate的前身,从一个单纯的区块链框架,演化成一个跨链的生态
  • Polkadot是一个通过中继链连接的网络,为了实现跨链沟通
  • 支持私有链,公链,oracles等组件去信任化的交流
  • 包含了relay chain中继链,parachain平行链,bridge转接桥
    • relay chain:达成parachain之间的跨链交流
    • parachain实现业务逻辑,是独立的区块链,有自己的链上数据和交易处理,利用relay chain来保证安全
    • bridges让不在Polkadot中的独立链进行交流,如比特币和以太坊等
    • 架构
    • 目前relay chain的插槽100左右,超过了就需要通过bridges设置二级的relay chain

启动节点

安装rust

curl https://sh.rustup.rs -sSf | sh

安装substrate

// 安装环境和工具,不会安装substrate本身
curl https://getsubstrate.io -sSf | bash -s -- --fast

// clone代码,从源码编译substrate
git clone [email protected]:paritytech/substrate.git
cd substrate
git checkout v1.0
./scripts/init.sh
./scripts/build
cargo build // 把之前的生成的wasm文件注入到编译结果中
cargo build --release // 编译慢,执行快

// 运行
./target/debug/substrate // run,默认加入测试网
./target/debug/substrate --dev // run,本地dev net
// 也可以用cargo run
cargo run   // 加入testnet
cargo run -- --dev // dev net

测试

  • 打开前端
  • 进入 polkadot.js.org/apps/#/explorer
  • 点击settings页面
  • 选择本地节点
  • polkadot.js.org/apps/#/explorer
    • ext 是18个0
  • 一个交易产生4个事件
  • 账户余额低于或等于500会被销户

启动一个Node Name为harry的测试网节点:

cargo run -- --name harry

之后就可以在 https://telemetry.polkadot.io/#list/harry 找到这个节点了。

如何创建项目

curl https://raw.githubusercontent.com/paritytech/substrate-up/dcc2d521b6ba0ef4533dcc5cfc49ec290f9c62a9/substrate-node-new -sSf | sh -s  

你可能感兴趣的:(Substrate介绍: 如何运行和交互)