FRAME pallet
⚠️ Update Notice:
Please read Substrate to Polkadot SDK page first.
FRAME 开发环境提供模块(称为 pallet)和支持库,您可以使用、修改和扩展这些模块和库来构建运行时逻辑,以满足区块链的需求。
本节概述了预定义的 pallet,并提供了指向 Rust API 参考文档的链接,您可以在其中找到有关每个 pallet 接口的详细信息。
系统 pallet
FRAME 系统 pallet 对于 Substrate 运行时至关重要,并提供所有其他 pallet 都依赖的核心功能。
系统 pallet 名称 | 用途 |
---|---|
frame_benchmarking | 包含用于基准测试和测试的常见运行时模式。 |
frame_executive | 通过将传入的函数调用发送到运行时中的相应 pallet 来协调这些调用。 |
frame_support | 提供 Rust 宏、类型、特性和模块,这些宏、类型、特性和模块在编译时会为 pallet 结构生成样板代码。 |
frame_system | 定义 Substrate 原语、存储项和区块链核心函数的低级类型。所有其他 pallet 都依赖于 frame_system crate。 |
功能性 pallet
Substrate 开发框架包含许多功能性 pallet,这些 pallet 提供您可能认为通常对区块链的组合组件有用的功能。 这些功能性 pallet 是预先构建的,并且可以免费使用,使社区能够共享、重用和改进接口以解决常见用例。
下表重点介绍了一些最常用的可用 pallet。 但是,提供专门功能的 pallet 的数量以及它们提供这些功能的方式会经常发生变化。 您应该检查 Rust 文档 以获取 pallet 的最新列表以及有关使用它们的详细信息。
预构建 pallet 名称 | 用途 |
---|---|
pallet_alliance | 初始化一个集体,供社区成员加入,以努力建立针对不良行为的规则,并为为生态系统做出贡献的团队提供认可和影响力。 |
pallet_assets | 提供处理可替代资产的简单安全的方法。 |
pallet_atomic_swap | 启用将资金从来源发送到目标。使用证明允许目标声明交换。如果在指定时间段内未声明交换,则发送者可以取消它。 |
pallet_aura | 通过管理离线报告来扩展权限轮 (Aura) 共识模型。 |
pallet_authority_discovery | 检索当前的权威集,了解其自身的权威 ID,并签署和验证与其他权威之间的消息。 |
pallet_authorship | 跟踪区块的当前作者和最近的叔块。 |
pallet_babe | 通过从 VRF 输出收集链上随机性和管理纪元转换来扩展 BABE 共识。 |
pallet_balances | 提供处理帐户和余额的功能。 |
pallet_bounties | 管理执行指定工作或实现指定目标的奖励。 |
pallet_collective | 允许一组帐户 ID 通过来自专用来源的已调度调用来表达其集体意愿。 |
pallet_contracts | 提供运行时部署和执行 WebAssembly 智能合约的功能。 |
pallet_contracts_primitives | 提供 pallet_contracts crate 用于智能合约的常用定义。 |
pallet_democracy | 提供一个民主系统,用于处理一般利益相关者投票的管理。 |
pallet_election_provider_multi_phase | 使选举提供者能够进行包含签名和未签名阶段的选举。 |
pallet_elections_phragmen | 提供基于 顺序 Phragmén 的选举模块。 |
pallet_example_basic | 演示适用于大多数 pallet 的概念、API 和结构。 |
pallet_example_offchain_worker | 演示适用于大多数链下工作者的概念、API 和结构。 |
pallet_grandpa | 通过管理为本机代码准备的 GRANDPA 权威集来扩展 GRANDPA 共识。 |
pallet_identity | 启用允许从指定来源添加多个注册者的联合命名系统。注册者可以设置费用以提供身份验证服务。 |
pallet_im_online | 允许验证者在每个新会话中传播心跳事务以表明节点在线。 |
pallet_indices | 为新创建的帐户分配索引。索引是地址的简短形式。 |
pallet_lottery | 配置允许网络参与者购买彩票的彩票。 |
pallet_membership | 允许控制一组 AccountId 的成员资格,这对于管理集体的成员资格很有用。 |
pallet_multisig | 启用多签名调度。 |
pallet_nicks | 演示链上简化的帐户命名。它没有尝试创建名称层次结构、成为 DNS 替代方案或提供反向查找。 |
pallet_offences | 跟踪报告的违规行为。 |
pallet_proxy | 允许帐户授予其他帐户权限,以便从其签名的来源调度各种类型的调用。 |
pallet_randomness_collective_flip | 提供一个 random 函数,该函数可用于测试,并根据前 81 个区块的区块哈希生成低影响随机值。此 pallet 不适用于生产环境。 |
pallet_recovery | 为用户提供社交恢复工具,如果他们的私钥或其他身份验证机制丢失,则可以使用此工具访问他们的帐户。此 pallet 使帐户所有者能够识别可以代表所有者行动以恢复对帐户访问权限的可信方。 |
pallet_scheduler | 公开在指定区块号或指定周期内调度调度的功能。这些已调度的调度可以命名或匿名,并且可以取消。 |
pallet_scored_pool | 维持一个计分会员池,其中得分最高的实体成为成员。 |
pallet_session | 允许验证者管理其会话密钥,提供更改会话长度的函数,并处理会话轮换。 |
pallet_society | 为用户参与和维护会员协会提供经济激励。 |
pallet_staking | 管理网络维护者已抵押的资金。 |
pallet_sudo | 允许单个帐户(称为 sudo 密钥)执行需要 Root 来源的已调度函数,或指定一个新帐户来替换它们作为 sudo 密钥。 |
pallet_timestamp | 提供获取和设置链上时间的功能。 |
pallet_transaction_payment | 提供计算预调度交易费用的基本逻辑。 |
pallet_treasury | 提供一个资金储备,系统中的利益相关者可以管理该储备,并提供一个从该储备中提出支出提案的结构。 |
pallet_uniques | 提供管理不可替代集合和项目的方法。 |
pallet_utility | 提供一个用于管理调度的无状态辅助模块。 |
pallet_vesting | 对帐户的锁定余额施加线性曲线。此模块确保存在锁定机制,以防止余额因除交易费用支付以外的任何原因而低于未归属金额。 |
Parachain pallet
除了通常对任何区块链都很有用的功能性 pallet 之外,还有一些预构建的 pallet 提供专门针对旨在连接到中继链的区块链的功能。 以下 pallet 提供 Parachain 开发的功能。
预构建 pallet 名称 | 用途 |
---|---|
cumulus-pallet-aura-ext | 为 Parachain 提供 AURA 共识。 |
pallet-collator-selection | 管理 Parachain 中的 collator。 |
cumulus-pallet-dmp-queue | 实现用于接收来自中继链的消息的消息队列。 |
cumulus-pallet-parachain-system | 提供基于 cumulus 的 Parachain 的基本功能。 |
cumulus-pallet-solo-to-para | 启用从单链到 Parachain 的迁移。 |
cumulus-pallet-xcm | 为 Parachain 添加对跨链消息传递 (XCMP) 的支持。 |
cumulus-pallet-xcmp-queue | 使 XCMP 传输层能够处理传入和传出的消息发送和调度、排队、信号和背压。 |
其他信息
有关任何 pallet 的详细信息,请参阅 Rust 生成的 API 文档或各个 pallet 的源代码。
ON THIS PAGE