Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 7

Substrate 区块链进阶

第三节 Substrate Kitties ( 下 )

Junius Zhou 周俊

junius@parity.io

获取帮助 : https://substrate.dev
课程内容

● Substrate 链上升级和数据迁移
● Pallet 功能复用
● Pallet Kitties 测试代码开发
● UI 前端开发
● sudo 和 membership 介绍
● 作业讲解
3.1 链上升级和数据迁移

1. 为什么 substrate 能升级


Substrate 把 runtime 都编译成 WASM ,并保存在链上
Client 读取 WASM 的代码,通过 WASM Executor 来进行状态转变
当新的 WASM 代码设置到链上之后,新的 runtime 逻辑就生效了

2. 升级的过程
升级 spec 版本号
编译新的 WASM,WASM_TARGET_DIRECTORY=$(pwd)
通过 Sudo 或者链上治理来更新 WASM
3.1 数据迁移

1.substrate 链上数据存储
所有的数据都是放在一个 Key,Value 的数据库中
原始数据的 Key : Twox128(module_prefix) ++ Twox128(storage_prefix)
Map 类型数据的 Key : Twox128(module_prefix) ++ Twox128(storage_prefix) ++ hasher(encode(key)

2. 什么情况数据迁移
模块名字改变,变量名字改变, Key 改变, hash 算法改变,值类型改变
3.2 Pallet 功能复用
应用基本的软件设计的最佳实践

1. 模块之间做到尽量的解除耦合

2. 面向接口的编程

3. 模块可以很好的被复用

4. pallet 应该是可以任意组合的
课后作业

1. Pallet Kitties 的单元测试,尽量覆盖所有的方法和错误

2. 基于 Poldadot js 的 UI 开发,通过前端可以和链完成交互

https://github.com/SubstrateCourse/advance-5
Questions?

官网文档: substrate.dev
知乎专栏: parity.link/zhihu

You might also like