
Runtime 构建框架(FRAME) 是一组模块(称为 pallet)和支持库,可简化 runtime 开发。pallet 是 FRAME 中的单个模块,承载特定领域的逻辑。
FRAME 提供了一些与 Substrate Primitives 交互的帮助程序模块,这些模块提供了与核心客户端的接口。
概览下图显示了 FRAME 及其支持库的体系结构概述:

FRAME 架构
Pallets使用 FRAME 进行构建时,Substrate runtime 由几个较小的组件(称为 pallet)组成。一个 Pallet 包含一组类型、存储项目和功能,这些功能定义了 runtime 的一组功能。
系统库系统库[1]为你的区块链提供了基础的类型、存储和功能。所有其他 pallet 都依赖系统库作为 Substrate runtime 的基础。
系统库定义了 Substrate runtime 的所有核心类型,例如:
起源
区块数
帐户 ID
Hash
区块头
版本
等等...
它还具有许多对系统至关重要的存储项目,例如:
Account Nonce
区块 Hash
区块数
事件
等等...
最后,它定义了许多底层函数,这些函数可以访问你的区块链存储,验证外部信息的起源等等。
执行模块Executive pallet[2](执行模块)充当 runtime 的业务流程层。它在运行时将传入的外部调用分派到各个 pallet。
支持库FRAME 支持库[3]是 Rust 宏、类型、特征和函数的集合,这些简化了 Substrate pallet 的开发。
支持宏在编译时进行扩展,以生成 runtime 使用的代码,并减少 pallet 最常见组件的样板代码。
RuntimeRuntime 库将所有这些组件和 pallet 组合在一起。它定义了 runtime 包含的 pallet,并将它们配置为一起工作以构成最终的 runtime。当调用 runtime 时,它将使用 Executive pallet 将这些调用派遣到各个 pallet。
预制模块一些 pallet 具有足够的通用性,可以在许多区块链中重复使用。任何人都可以自由编写和共享有用的 pallet。Substrate 提供了一系列常用的 pallet。让我们来探索它们。
资产资产(Asset) pallet 是用于处理可替换资产的简单、安全的模块。
文档[4]
资源[5]
AuraAura pallet 通过管理离线报告扩展了 Aura 共识。
文档[6]
资源[7]
权限发现core/authority-discovery 使用权限发现(Authority Discovery)pallet 来检索当前权限集合、了解其自身的权限 ID,以及签署和验证与其他权限之间的消息。
文档[8]
资源[9]
AuthorshipAuthorship pallet 跟踪区块的当前出块者和最近的叔区块。
文档[10]
资源[11]
BABEBABE pallet 通过从 VRF 输出中收集链上的随机性并管理 epoch 过渡来扩展 BABE 共识。
文档[12]
资源[13]
余额余额(Balance)pallet 提供用于处理帐户和余额的功能。
文档[14]
资源[15]
集体通过集体(Collective) pallet,一组帐户 ID 可以通过来自专门来源的调度调用来告知其集体的情绪。
文档[16]
资源[17]
合约合约(Contract)pallet 为运行时提供了部署和执行 WebAssembly 智能合约的功能。
文档[18]
资源[19]
民主民主 pallet 提供了处理一般利益相关者投票管理的民主系统。
文档[20]
资源[21]
选举 PhragmenElections Phragmen pallet 是一个基于 Sequential Phragmén 的选举模块。
文档[22]
资源[23]
选举选举(Election) pallet 是对集体成员资格进行权益加权(stake-weighted)选举的模块。
文档[24]
资源[25]
EVMEVM pallet 是用于 Substrate 的以太坊[26]虚拟机(EVM)执行模块。
文档[27]
资源[28]
示例示例(Example) pallet 是一个简单的 pallet 示例,展示了大多数 pallet 共有的概念、API 和结构。
文档[29]
资源[30]
最终性追踪器最终性追踪器(Finality Tracker)pallet 追踪出块者注意到的最后一个最终(finalized)区块。
文档[31]
资源[32]
通用资产通用资产(Generic Asset)pallet 提供了用于处理帐户和资产余额的功能。
文档[33]
资源[34]
GRANDPAGRANDPA pallet 通过管理为本机代码准备的 GRANDPA 权限扩展了 GRANDPA 共识。
文档[35]
资源[36]
“我在线”“我在线(I'm Online)” pallet 允许验证人在每个新会话中散布一次 “心跳(heartbeat)” 交易,以表明该节点处于在线状态。
Docs[37]
Source[38]
索引索引(Indices)pallet 为新创建的帐户分配索引。索引是地址的缩写形式。
文档[39]
资源[40]
成员资格成员资格(Membership)pallet 允许控制一组 “AccountId” 的成员资格,这对于管理集体成员资格很有用。
文档[41]
资源[42]
违规违规(Offences)pallet 会追踪被报告的违规行为。
文档[43]
资源[44]
Randomness Collective FlipRandomity Collective Flip pallet 提供了一个 random 函数,来基于来自先前 81 个块的块散列生成低影响度的随机值。
文档[45]
资源[46]
计分池计分池(Scored Pool)pallet 维护着计分的成员池,其中得分最高的实体成为成员。
文档[47]
资源[48]
SessionSession pallet 允许验证人管理其 session 密钥,提供更改 session 长度的功能,并处理 session 轮换。
文档[49]
资源[50]
StakingStaking(质押)pallet 用于管理网络维护者质押的资金。
文档[51]
资源[52]
SudoSudo pallet 允许单个帐户(称为 “sudo密钥”)执行需要 Root 来源的可调度功能,或指定一个新帐户将其替换为 sudo 密钥。
文档[53]
资源[54]
时间戳时间戳(Timestamp)pallet 提供了获取和设置链上时间的功能。
文档[55]
资源[56]
交易付款交易付款(Transaction Payment)pallet 提供了计算派遣前交易费用的基本逻辑。
文档[57]
资源[58]
财政部财政部(Treasury)pallet 提供了一个可由系统中的利益相关者管理的资金 “储备库”,并提供了从该储备库提出支出建议的结构。
文档[59]
资源[60]
下一步了解更多学习怎样开发定制化 Substrate pallet[61]。
示例跟随 向你的 Substrate runtime 增添 pallet 教程[62]进行学习。
参考资料Visit the reference docs for the System library[63].
Visit the reference docs for the Executive pallet[64].
Visit the reference docs for the FRAME support library[65].
访问系统库[66]的参考文档。
访问 Executive pallet[67] 的参考文档。
访问 FRAME 支持库[68]的参考文档。
参考资料[1]
系统库: https://substrate.dev/rustdocs/master/frame_system/index.html
[2]
Executive pallet: https://substrate.dev/rustdocs/master/frame_executive/index.html
[3]
FRAME 支持库: https://substrate.dev/rustdocs/master/frame_support/index.html
[4]
文档: https://substrate.dev/rustdocs/master/pallet_assets/index.html
[5]
资源: https://github.com/paritytech/substrate/blob/master/frame/assets/src/lib.rs
[6]
文档: https://substrate.dev/rustdocs/master/pallet_aura/index.html
[7]
资源: https://github.com/paritytech/substrate/blob/master/frame/aura/src/lib.rs
[8]
文档: https://substrate.dev/rustdocs/master/pallet_authority_discovery/index.html
[9]
资源: https://github.com/paritytech/substrate/blob/master/frame/authority-discovery/src/lib.rs
[10]
文档: https://substrate.dev/rustdocs/master/pallet_authorship/index.html
[11]
资源: https://github.com/paritytech/substrate/blob/master/frame/authorship/src/lib.rs
[12]
文档: https://substrate.dev/rustdocs/master/pallet_babe/index.html
[13]
资源: https://github.com/paritytech/substrate/blob/master/frame/babe/src/lib.rs
[14]
文档: https://substrate.dev/rustdocs/master/pallet_balances/index.html
[15]
资源: https://github.com/paritytech/substrate/blob/master/frame/balances/src/lib.rs
[16]
文档: https://substrate.dev/rustdocs/master/pallet_collective/index.html
[17]
资源: https://github.com/paritytech/substrate/blob/master/frame/collective/src/lib.rs
[18]
文档: https://substrate.dev/rustdocs/master/pallet_contracts/index.html
[19]
资源: https://github.com/paritytech/substrate/blob/master/frame/contracts/src/lib.rs
[20]
文档: https://substrate.dev/rustdocs/master/pallet_democracy/index.html
[21]
资源: https://github.com/paritytech/substrate/blob/master/frame/democracy/src/lib.rs
[22]
文档: https://substrate.dev/rustdocs/master/pallet_elections_phragmen/index.html
[23]
资源: https://github.com/paritytech/substrate/blob/master/frame/elections-phragmen/src/lib.rs
[24]
文档: https://substrate.dev/rustdocs/master/pallet_elections/index.html
[25]
资源: https://github.com/paritytech/substrate/blob/master/frame/elections/src/lib.rs
[26]
以太坊: https://en.wikipedia.org/wiki/Ethereum
[27]
文档: https://substrate.dev/rustdocs/master/pallet_evm/index.html
[28]
资源: https://github.com/paritytech/substrate/blob/master/frame/evm/src/lib.rs
[29]
文档: https://substrate.dev/rustdocs/master/pallet_example/index.html
[30]
资源: https://github.com/paritytech/substrate/blob/master/frame/example/src/lib.rs
[31]
文档: https://substrate.dev/rustdocs/master/pallet_finality_tracker/index.html
[32]
资源: https://github.com/paritytech/substrate/blob/master/frame/finality-tracker/src/lib.rs
[33]
文档: https://substrate.dev/rustdocs/master/pallet_generic_asset/index.html
[34]
资源: https://github.com/paritytech/substrate/blob/master/frame/generic-asset/src/lib.rs
[35]
文档: https://substrate.dev/rustdocs/master/pallet_grandpa/index.html
[36]
资源: https://github.com/paritytech/substrate/blob/master/frame/grandpa/src/lib.rs
[37]
Docs: https://substrate.dev/rustdocs/master/pallet_im_online/index.html
[38]
Source: https://github.com/paritytech/substrate/blob/master/frame/im-online/src/lib.rs
[39]
文档: https://substrate.dev/rustdocs/master/pallet_indices/index.html
[40]
资源: https://github.com/paritytech/substrate/blob/master/frame/indices/src/lib.rs
[41]
文档: https://substrate.dev/rustdocs/master/pallet_membership/index.html
[42]
资源: https://github.com/paritytech/substrate/blob/master/frame/membership/src/lib.rs
[43]
文档: https://substrate.dev/rustdocs/master/pallet_offences/index.html
[44]
资源: https://github.com/paritytech/substrate/blob/master/frame/offences/src/lib.rs
[45]
文档: https://substrate.dev/rustdocs/master/pallet_randomness_collective_flip/index.html
[46]
资源: https://github.com/paritytech/substrate/blob/master/frame/randomness-collective-flip/src/lib.rs
[47]
文档: https://substrate.dev/rustdocs/master/pallet_scored_pool/index.html
[48]
资源: https://github.com/paritytech/substrate/blob/master/frame/scored-pool/src/lib.rs
[49]
文档: https://substrate.dev/rustdocs/master/pallet_session/index.html
[50]
资源: https://github.com/paritytech/substrate/blob/master/frame/session/src/lib.rs
[51]
文档: https://substrate.dev/rustdocs/master/pallet_staking/index.html
[52]
资源: https://github.com/paritytech/substrate/blob/master/frame/staking/src/lib.rs
[53]
文档: https://substrate.dev/rustdocs/master/pallet_sudo/index.html
[54]
资源: https://github.com/paritytech/substrate/blob/master/frame/sudo/src/lib.rs
[55]
文档: https://substrate.dev/rustdocs/master/pallet_timestamp/index.html
[56]
资源: https://github.com/paritytech/substrate/blob/master/frame/timestamp/src/lib.rs
[57]
文档: https://substrate.dev/rustdocs/master/pallet_transaction_payment/index.html
[58]
资源: https://github.com/paritytech/substrate/blob/master/frame/transaction-payment/src/lib.rs
[59]
文档: https://substrate.dev/rustdocs/master/pallet_treasury/index.html
[60]
资源: https://github.com/paritytech/substrate/blob/master/frame/treasury/src/lib.rs
[61]
开发定制化 Substrate pallet: https://substrate.dev/docs/en/development/module/
[62]
向你的 Substrate runtime 增添 pallet 教程: https://substrate.dev/docs/en/tutorials/adding-a-module-to-your-runtime
[63]
System library: https://substrate.dev/rustdocs/master/frame_system/index.html
[64]
Executive pallet: https://substrate.dev/rustdocs/master/frame_executive/index.html
[65]
FRAME support library: https://substrate.dev/rustdocs/master/frame_support/index.html
[66]
系统库: https://substrate.dev/rustdocs/master/frame_system/index.html
[67]
Executive pallet: https://substrate.dev/rustdocs/master/frame_executive/index.html
[68]
FRAME 支持库: https://substrate.dev/rustdocs/master/frame_support/index.html
原文:https://substrate.dev/docs/en/conceptual/runtime/frame
翻译:PolkaWorld 社区
eToro新增Cosmos与Polkadot质押,扩展加密货币奖励机会
eToro 2025年新增Polkadot与Cosmos Staking,用户可赚取被动收益
Polkadot成为Inter Miami训练套件的主要赞助商,拓展品牌影响力
Polkadot v0.9.22版本已發布,支持切換至新JSON-RPC服務器庫
Parallel發布Polkadot首款DOT流動性質押產品
波卡聚合身份協議Litentry贏得Polkadot網絡第 15 次平行鏈插槽拍賣
波卡周報:14條平行鏈接入Polkadot網絡、32條平行鏈接入Kusama網絡
Polkadot理事會正在投票Motion 168,將最低提名金額降低至10 DOT
Polkadot已確定未來12個月插槽拍賣時間
Polkadot開啟第10次平行鏈插槽拍賣,3月12日啟動第7個租賃期
Equilibrium 將為通過其眾貸平臺 xDOT 參與波卡眾貸的投資者提供 EQ 代幣獎勵,并將推出推薦獎勵
鏈聞周末薦讀|速覽波卡眾貸項目,DeFi「流動性即服務」崛起
波卡生態 DeFi 基礎協議 Bifrost SALP 上線 24 小時 vsDOT 鑄造量突破 2000 萬美元,目前已開啟轉賬功能
基于 Substrate 的區塊鏈查詢節點框架 Subsquid 完成 380 萬美元融資,Hypersphere 領投
幣安鏈上參與波卡眾貸后,Moonbeam 和 Acala 目前排名第一和第二
波卡首批平行鏈插槽拍賣正式開始
插槽流動性協議 Bifrost SALP 已支持 Polkadot 插槽競拍,將于近日開啟 vsDOT 轉賬和交易功能
波卡生態 DeFi 項目 Parallel 的 Auction Loan 產品 TVL 突破 3 億美元,超 600 萬個 DOT 參與
波卡生態元宇宙項目 Bit.Country Pioneer 贏得 Kusama 第 14 個插槽競拍
波卡生態 DeFi 項目 Parallel 的 Auction Loan 產品總鎖倉價值突破 1 億美元,超 1.6 萬名用戶通過其參與波卡眾貸



