Runtime 总览
Runtime 是用于定义区块链的业务逻辑。 在基于 Substrate 开发的区块链中,runtime 被称为”状态转换函数“;Substrate 开发人员在 runtime 中定义了用于表示区块链 状态的存储项,同时也定义了允许区块链用户对该状态进行更改的函数。
为了能够提供无须分叉的升级功能,Substrate采用了可编译成 WebAssembly (Wasm) 字节码的 runtime 形式。 此外,Substrate 还对 runtime 必须实现的核心基本类型 进行定义。
核心 Substrate 代码库随附有 FRAME 框架,FRAME 是Parity 的 Substrate runtime 开发系统,已经应用于 Kusama 和 Polkadot 等链上。 FRAME 定义了额外的 runtime 基础类型,并提供了一个框架,使得通过编写模块 (称为 "pallets") 来构建 runtime 变得十分容易。 每个 pallet 用于封装特定于该域的逻辑,这些逻辑可表示为一组存储项、事件、错误和可调用函数的集合。 FRAME 开发人员可选择创建自己的 pallet ,也可选择重用包括50多个 Substrate 随附 pallet 在内的现有资源。
本节大部分内容将会重点介绍使用如何使用 FRAME 进行 Substrate runtime 开发。 但是请记住,FRAME 并不是 Substrate runtime 开发可使用的唯一系统。